diff --git a/.env b/.env index efb2f5d69bde57e4bc3e44f4afd39839031bd74f..181a23a961ba8e5a22cc93f78a4bcd8ee216ae81 100644 --- a/.env +++ b/.env @@ -1,29 +1,8 @@ -# Reference documentation https://docs.docker.com/compose/environment-variables/ -# Focus default variables as production, to allow direct download and run in production -# Required external variables that must be defined externally are those that have no value - -#### development related #### - -TZ=Madrid -DOCKER_REGISTRY_PREFIX=optima-piacere-docker.artifact.tecnalia.com/ -PROJECT_NAME=piacere-sh -COMPOSE_PROJECT_VERSION=master - +ADMIN_USER=admin +ADMIN_PASSWORD=projectPassword HTTPS_PORT=443 -SERVER_HOST= -ADMIN_PASSWORD= -BUILD_PROFILE=prod - -# https://docs.docker.com/compose/reference/envvars/#compose_file#compose_project_name -# these are docker-compose related environment variables -COMPOSE_PROJECT_NAME=piacere-sh-master -COMPOSE_FILE=docker-compose.yaml:docker-compose-traefik-selfsigned.yaml:docker-compose-expose.yaml:docker-compose-redirect-http.yaml - -#### Buiding related -DOCKER_REGISTRY_CACHE_PREFIX=piacerebuild.tri.lan:5000/ -DOCKER_REGISTRY_CACHE_VERSION=latest - -#### Development related, useful when docker-compose-dev.yaml is included #### - -#### when using docker-compose-traefik-tecnalia-selfsigned.yaml -CERTIFICATE_SIGNING_KEY_PASSPHRASE= \ No newline at end of file +SERVER_HOST=ci.piacere.digital.tecnalia.dev +COMPOSE_PROJECT_NAME=sh +IMAGE_SH_GATEWAY=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-gateway:y3 +IMAGE_SH_BACKEND=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-backend:y3 +COMPOSE_FILE=docker-compose.yaml:docker-compose-traefik-network-external.yaml:release/docker-compose.yaml diff --git a/.env.build b/.env.build deleted file mode 100644 index e503ad4bca4084dded430a10238d524e9b8757d4..0000000000000000000000000000000000000000 --- a/.env.build +++ /dev/null @@ -1,27 +0,0 @@ -# Reference documentation https://docs.docker.com/compose/environment-variables/ -# Focus default variables as production, to allow direct download and run in production -# Required external variables that must be defined externally are those that have no value - -DEVSVC_BASE_PATH=development-services/ - -#### Production related #### - -DOCKER_REGISTRY_PREFIX=optima-piacere-docker-dev.artifact.tecnalia.com -PROJECT_NAME= -COMPOSE_PROJECT_VERSION=y1 - -TZ=Madrid -ADMIN_PASSWORD=piacerePassword -HTTPS_PORT=8443 -SERVER_HOST=192.168.56.1.nip.io - -# https://docs.docker.com/compose/reference/envvars/#compose_file#compose_project_name -# these are docker-compose related environment variables -COMPOSE_PROJECT_NAME=piacere-production - -#### Build related #### -DOCKER_BUILDKIT=1 -COMPOSE_DOCKER_CLI_BUILD=1 -COMPOSE_FILE=docker-compose-sh.yaml:build/docker-compose-sh.yaml:docker-compose-traefik-selfsigned.yaml:docker-compose-jhipster-registry.yaml:development-services/build/docker-compose-keycloak-setup.yaml -EXTRA_CA_URL=https://git.code.tecnalia.com/smartdatalab/ca/-/raw/master/ca.crt.pem - diff --git a/.env.gen b/.env.gen new file mode 100644 index 0000000000000000000000000000000000000000..9af19c5006d97b391ff39b8edfabe22010d3834d --- /dev/null +++ b/.env.gen @@ -0,0 +1,110 @@ +# Reference documentation https://docs.docker.com/compose/environment-variables/ +# Focus default variables as production, to allow direct download and run in production +# Required external variables that must be defined externally are those that have no value + +#### Environments managed #### +# this is the default environment if needed uncomment and adjust +# some conventions on environment prefixes +# - development: purpouse is to cache build and start the setup locally using cache images exposing dev ports (i.e 3306, 5432, 8086, ...) for debug and development purposes. It is the default behaviour (local:run-build-cache) +# - release: purpouse is to generate images (that do not use BUILDKIT_INLINE_CACHE 1) tagged for the clients/pilots usage (release:run-build-release) +# - prod: purpose is to generate non building docker-compose that uses the release to deploy on generic client (prod:run-release) +# - test: the purpouse is to test from the cache images the correct behaviour without exposing ports (test:run-cache) +# types of building +# - run-build-cache: it focuses in the generation of images with BUILDKIT_INLINE_CACHE 1 for its usage in the cache-from for subsequent build, for each compose-file in compose-file build it finds build/cache the same name to add it to the build, it will use cache from. +# - run-build-release: it focuses in the generation of images for distribution it avoid using BUILDKIT_INLINE_CACHE 1 to reduce the size, it will use cache from. +# - build-cache: it focuses in the generation of images with BUILDKIT_INLINE_CACHE 1 for its usage in the cache-from for subsequent build, for each compose-file in compose-file build it finds build/cache the same name to add it to the build, it will use cache from. +# - build-release: it focuses in the generation of images for distribution it avoid using BUILDKIT_INLINE_CACHE 1 to reduce the size, it will not use cache from. +# - run-cache: it runs using cache images +# - run-release: it runs using release images +# default enviroment +# __ENVIRONMENTS=development:run-build-cache +# to add more enviroments use split with ";" +__ENVIRONMENTS=development:run-build-cache;prod:run-release;release:build-release + +#### Modules managed #### +# this will create individual docker composes that enables the individual usage of the modules through the docker-compose command and specific env files i.e. +# __MODULES=traefik;step-ca +# will enable the following docker-compose commands +# docker-compose --env-file .env/modules/traefik/prod ----project-directory . up -d +# __MODULES=traefik;step-ca +__MODULES=sh + +#### default environment #### +# __DEFAULT_ENVIRONMENT=.envs/global/prod + +#### default environment #### +# __DEFAULT_DEVELOPMENT_ENVIRONMENT=.envs/global/development + +#### default release environment #### +# __DEFAULT_RELEASE_ENVIRONMENT=.envs/global/release + +#### Common image related #### +DOCKER_REGISTRY_CACHE_PREFIX=cache.euve.digital.tecnalia.dev:5000 +DOCKER_REGISTRY_CACHE_VERSION=latest + +#### Common Build related #### +# DOCKER_BUILDKIT and COMPOSE_DOCKER_CLI_BUILD do not have effect here, we leave them as documentation +# DOCKER_BUILDKIT=1 +# COMPOSE_DOCKER_CLI_BUILD=1 + +### Common Traefik related ### +TRAEFIK_NETWORK_NAME=traefik_network +TRAEFIK_HTTPS_ENTRYPOINT_NAME=websecure +# TRAEFIK_HTTP_ENTRYPOINT_NAME=web + +#### Common Production related #### +ADMIN_USER=admin +ADMIN_PASSWORD=projectPassword +# to calculate password hash `openssl passwd -apr1 $ADMIN_PASSWORD` +# ADMIN_PASSWORD_HASH='$apr1$chTuJ7f9$.Ul8E16QYHtydKw.ehzZC.' +# to calculate password bcrypt hash `sudo apt-get update; sudo apt-get install -y apache2-utils; htpasswd -bnBC 12 "" $ADMIN_PASSWORD | tr -d ':\n'` +# ADMIN_PASSWORD_BCRYPT_HASH='$2y$12$NxJ.FkLgDZWWjc15y9bhX./GOTp67krCxWPanJLyCjofKyIN.zS96' +# HTTPS_PORT must be 443 if you use step-ca +HTTPS_PORT=443 +# server host is configured during the sync based on _ENV_LOCAL_ and _ENV_DEPLOY, _ENV_LOCAL_ will be used for test and release unless _ENV_RELEASE_ or _ENV_TEST_ specified +# SERVER_HOST=project.org +SERVER_HOST=ci.piacere.digital.tecnalia.dev + +#### Platform Specific #### +TZ=Madrid +EXTRA_CA_URL=https://git.code.tecnalia.com/smartdatalab/ca/-/raw/master/ca.crt.pem + +#### Common docker-compose related #### +# https://docs.docker.com/compose/reference/envvars/#compose_file#compose_project_name +# these are docker-compose related environment variables +COMPOSE_PROJECT_NAME=sh +# _ENV_LOCAL_COMPOSE_FILE_BASE= # These are oriented for local vagrant usually it contains local traefik configuration, dev services, etc +# _ENV_RELEASE_COMPOSE_FILE_BASE= # These are oriented for tagging relevant images for upload to official release repositories +# _ENV_DEPLOY_COMPOSE_FILE_BASE= # These are oriented for final deployment it contains production traefik configuration, etc +# _ENV_TEST_COMPOSE_FILE_BASE= # These are oriented for testing +# COMPOSE_FILE_BASE= # (MANDATORY) These are those main services of the project, that will apply to all the scenarios + +COMPOSE_FILE_BASE= + +COMPOSE_FILE= +# COMPOSE_FILE Is generated automatically + +__sh__COMPOSE_FILE_BASE=docker-compose.yaml +__sh__COMPOSE_FILE_BASE_NETWORK=docker-compose-traefik-network-external.yaml + +__sh__SH_CONFIG_PATH= +__sh__SH_BASE_PATH= + +__sh_development__SERVER_HOST=192.168.56.1.nip.io +__sh_development__COMPOSE_FILE_BASE_EXPOSE_DEV=docker-compose-dev-expose.yaml +__sh_development__COMPOSE_FILE_BASE_LOCAL_JHIPSTER_REGISTRY_VOLUMES=docker-compose-jhipster-registry-volumes.yaml +__sh_development__COMPOSE_FILE_BASE_LOCAL_JHIPSTER_REGISTRY=git/jhipster-registry/docker-compose.yaml +__sh_development__COMPOSE_FILE_BASE_LOCAL_JHIPSTER_REGISTRY_DEV=git/jhipster-registry/docker-compose-dev.yaml +__sh_development__JHIPSTER_REGISTRY_CONFIG_PATH=git/jhipster-registry/ + +__sh__IMAGE_SH_MYSQL=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-mysql:y3 +__sh__IMAGE_SH_GATEWAY=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-gateway:y3 +__sh__IMAGE_SH_BACKEND=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-backend:y3 +__sh__IMAGE_SH_MYSQL_CACHE=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-mysql:y3 +__sh__IMAGE_SH_GATEWAY_CACHE=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-gateway:y3 +__sh__IMAGE_SH_BACKEND_CACHE=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-backend:y3 + +__sh_release__COMPOSE_FILE_BASE_PIACERE_BUILD=piacere-build/docker-compose.yaml +__sh_release__COMPOSE_FILE_BASE_PIACERE_RELEASE=release/docker-compose.yaml +__sh_release__COMPOSE_FILE_BASE_ARTIFACTORY=docker-compose-artifactory.yaml +__sh_release__COMPOSE_FILE_BASE_TRAEFIK_NETWORK=docker-compose-traefik-network-internal.yaml diff --git a/.env.int b/.env.int deleted file mode 100644 index c964f54ab962221077bd823c5c951f2c7e7b4640..0000000000000000000000000000000000000000 --- a/.env.int +++ /dev/null @@ -1,32 +0,0 @@ -# Reference documentation https://docs.docker.com/compose/environment-variables/ -# Focus default variables as production, to allow direct download and run in production -# Required external variables that must be defined externally are those that have no value - -DEVSVC_BASE_PATH=development-services/ -DEVSVC_SETUP_BASE_PATH= - -#### Production related #### - -DOCKER_REGISTRY_PREFIX=optima-piacere-docker-dev.artifact.tecnalia.com -PROJECT_NAME= -COMPOSE_PROJECT_VERSION=y1 - -TZ=Madrid -ADMIN_PASSWORD=piacerePassword -HTTPS_PORT=8443 -SERVER_HOST=192.168.56.1.nip.io -KEYCLOAK_URL=https://auth.192.168.56.1.nip.io:8443 - -# https://docs.docker.com/compose/reference/envvars/#compose_file#compose_project_name -# these are docker-compose related environment variables -COMPOSE_PROJECT_NAME=piacere-production - -#### Build related #### -DOCKER_BUILDKIT=1 -COMPOSE_DOCKER_CLI_BUILD=1 -EXTRA_CA_URL=https://git.code.tecnalia.com/smartdatalab/ca/-/raw/master/ca.crt.pem - -#### Development related #### -# CERTIFICATE_SIGNING_KEY_PASSPHRASE= - -COMPOSE_FILE=docker-compose-sh.yaml:build/docker-compose-sh.yaml:docker-compose-jhipster-registry.yaml:docker-compose-dev.yaml:development-services/docker-compose-traefik-tecnalia-selfsigned.yaml:docker-compose-expose.yaml:docker-compose-redirect-http.yaml:development-services/build/docker-compose-traefik-tecnalia-selfsigned.yaml:development-services/docker-compose.yaml:development-services/docker-compose-expose.yaml:development-services/docker-compose-redirect-http.yaml:development-services/build/docker-compose.yaml diff --git a/.envs/global/development b/.envs/global/development new file mode 100644 index 0000000000000000000000000000000000000000..67a08029aba4ff0c85985184cebf1c29b0b4566d --- /dev/null +++ b/.envs/global/development @@ -0,0 +1,13 @@ +DOCKER_REGISTRY_CACHE_PREFIX=cache.euve.digital.tecnalia.dev:5000 +DOCKER_REGISTRY_CACHE_VERSION=latest +TRAEFIK_NETWORK_NAME=traefik_network +TRAEFIK_HTTPS_ENTRYPOINT_NAME=websecure +ADMIN_USER=admin +ADMIN_PASSWORD=projectPassword +HTTPS_PORT=443 +SERVER_HOST=192.168.56.1.nip.io +COMPOSE_PROJECT_NAME=sh +SH_CONFIG_PATH= +SH_BASE_PATH= +JHIPSTER_REGISTRY_CONFIG_PATH=git/jhipster-registry/ +COMPOSE_FILE=docker-compose.yaml:docker-compose-traefik-network-external.yaml:docker-compose-dev-expose.yaml:docker-compose-jhipster-registry-volumes.yaml:git/jhipster-registry/docker-compose.yaml:git/jhipster-registry/docker-compose-dev.yaml:build/docker-compose.yaml:build/inline-cache/docker-compose.yaml:build/image/docker-compose.yaml diff --git a/.envs/global/prod b/.envs/global/prod new file mode 100644 index 0000000000000000000000000000000000000000..181a23a961ba8e5a22cc93f78a4bcd8ee216ae81 --- /dev/null +++ b/.envs/global/prod @@ -0,0 +1,8 @@ +ADMIN_USER=admin +ADMIN_PASSWORD=projectPassword +HTTPS_PORT=443 +SERVER_HOST=ci.piacere.digital.tecnalia.dev +COMPOSE_PROJECT_NAME=sh +IMAGE_SH_GATEWAY=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-gateway:y3 +IMAGE_SH_BACKEND=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-backend:y3 +COMPOSE_FILE=docker-compose.yaml:docker-compose-traefik-network-external.yaml:release/docker-compose.yaml diff --git a/.envs/global/release b/.envs/global/release new file mode 100644 index 0000000000000000000000000000000000000000..1344e5f7b63d386ab7421b518d6b16a41c69a010 --- /dev/null +++ b/.envs/global/release @@ -0,0 +1,16 @@ +DOCKER_REGISTRY_CACHE_PREFIX=cache.euve.digital.tecnalia.dev:5000 +DOCKER_REGISTRY_CACHE_VERSION=latest +TRAEFIK_NETWORK_NAME=traefik_network +ADMIN_USER=admin +ADMIN_PASSWORD=projectPassword +HTTPS_PORT=443 +SERVER_HOST=ci.piacere.digital.tecnalia.dev +COMPOSE_PROJECT_NAME=sh +SH_BASE_PATH= +IMAGE_SH_MYSQL=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-mysql:y3 +IMAGE_SH_GATEWAY=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-gateway:y3 +IMAGE_SH_BACKEND=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-backend:y3 +IMAGE_SH_MYSQL_CACHE=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-mysql:y3 +IMAGE_SH_GATEWAY_CACHE=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-gateway:y3 +IMAGE_SH_BACKEND_CACHE=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-backend:y3 +COMPOSE_FILE=docker-compose.yaml:docker-compose-traefik-network-external.yaml:piacere-build/docker-compose.yaml:release/docker-compose.yaml:docker-compose-artifactory.yaml:docker-compose-traefik-network-internal.yaml:build/docker-compose.yaml diff --git a/.envs/modules/sh/development b/.envs/modules/sh/development new file mode 100644 index 0000000000000000000000000000000000000000..67a08029aba4ff0c85985184cebf1c29b0b4566d --- /dev/null +++ b/.envs/modules/sh/development @@ -0,0 +1,13 @@ +DOCKER_REGISTRY_CACHE_PREFIX=cache.euve.digital.tecnalia.dev:5000 +DOCKER_REGISTRY_CACHE_VERSION=latest +TRAEFIK_NETWORK_NAME=traefik_network +TRAEFIK_HTTPS_ENTRYPOINT_NAME=websecure +ADMIN_USER=admin +ADMIN_PASSWORD=projectPassword +HTTPS_PORT=443 +SERVER_HOST=192.168.56.1.nip.io +COMPOSE_PROJECT_NAME=sh +SH_CONFIG_PATH= +SH_BASE_PATH= +JHIPSTER_REGISTRY_CONFIG_PATH=git/jhipster-registry/ +COMPOSE_FILE=docker-compose.yaml:docker-compose-traefik-network-external.yaml:docker-compose-dev-expose.yaml:docker-compose-jhipster-registry-volumes.yaml:git/jhipster-registry/docker-compose.yaml:git/jhipster-registry/docker-compose-dev.yaml:build/docker-compose.yaml:build/inline-cache/docker-compose.yaml:build/image/docker-compose.yaml diff --git a/.envs/modules/sh/prod b/.envs/modules/sh/prod new file mode 100644 index 0000000000000000000000000000000000000000..181a23a961ba8e5a22cc93f78a4bcd8ee216ae81 --- /dev/null +++ b/.envs/modules/sh/prod @@ -0,0 +1,8 @@ +ADMIN_USER=admin +ADMIN_PASSWORD=projectPassword +HTTPS_PORT=443 +SERVER_HOST=ci.piacere.digital.tecnalia.dev +COMPOSE_PROJECT_NAME=sh +IMAGE_SH_GATEWAY=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-gateway:y3 +IMAGE_SH_BACKEND=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-backend:y3 +COMPOSE_FILE=docker-compose.yaml:docker-compose-traefik-network-external.yaml:release/docker-compose.yaml diff --git a/.envs/modules/sh/release b/.envs/modules/sh/release new file mode 100644 index 0000000000000000000000000000000000000000..1344e5f7b63d386ab7421b518d6b16a41c69a010 --- /dev/null +++ b/.envs/modules/sh/release @@ -0,0 +1,16 @@ +DOCKER_REGISTRY_CACHE_PREFIX=cache.euve.digital.tecnalia.dev:5000 +DOCKER_REGISTRY_CACHE_VERSION=latest +TRAEFIK_NETWORK_NAME=traefik_network +ADMIN_USER=admin +ADMIN_PASSWORD=projectPassword +HTTPS_PORT=443 +SERVER_HOST=ci.piacere.digital.tecnalia.dev +COMPOSE_PROJECT_NAME=sh +SH_BASE_PATH= +IMAGE_SH_MYSQL=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-mysql:y3 +IMAGE_SH_GATEWAY=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-gateway:y3 +IMAGE_SH_BACKEND=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-backend:y3 +IMAGE_SH_MYSQL_CACHE=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-mysql:y3 +IMAGE_SH_GATEWAY_CACHE=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-gateway:y3 +IMAGE_SH_BACKEND_CACHE=optima-piacere-docker-dev.artifact.tecnalia.com/wp6/sh-backend:y3 +COMPOSE_FILE=docker-compose.yaml:docker-compose-traefik-network-external.yaml:piacere-build/docker-compose.yaml:release/docker-compose.yaml:docker-compose-artifactory.yaml:docker-compose-traefik-network-internal.yaml:build/docker-compose.yaml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..551a267ba6382731dbadec15621c4f487aa00556 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,157 @@ +include: + - project: piacere/private/t23-ci-setup + ref: main + file: + - gitlab-ci-scripts/utils.gitlab-ci.yml + + # Image tag variables generation job ------------- + # Stage: variable-generation --------------------- + - gitlab-ci-scripts/generate-variables.gitlab-ci.yml + + # Downstream t23-ci-setup pipeline trigger job --- + # Stage: integration-tests-publish-deploy -------- + - gitlab-ci-scripts/trigger-downstream.gitlab-ci.yml + +variables: + # ------------------------ + # Component image tag data + # ------------------------ + COMPONENT_WP: wp6 + + SH_MYSQL_IMAGE_NAME: sh-mysql + SH_BACKEND_IMAGE_NAME: sh-backend + SH_GATEWAY_IMAGE_NAME: sh-gateway + + # ------------------------------------------ + # Space-separated component image abbreviation list + # used to generate image tags and related variables. + # It is also passed to the downstream integration tests, + # publication and deployment pipeline + # ------------------------------------------ + IMAGE_NAMES: "$SH_MYSQL_IMAGE_NAME $SH_BACKEND_IMAGE_NAME $SH_GATEWAY_IMAGE_NAME" + +stages: + - variable-generation +# - quality +# - unit-tests + - build +# - security + - integration-tests-publish-deploy + +# Job bases ------------------------- + +# .maven-job-base: &maven-job-base +# image: maven:3.8.1-jdk-11 +# variables: +# MAVEN_REPO_DIR: ".m2/repository" +# MAVEN_OPTS: "-Dmaven.repo.local=${CI_PROJECT_DIR}/${MAVEN_REPO_DIR}" +# tags: +# - docker +# cache: +# paths: +# - "$MAVEN_REPO_DIR" + +# .unit-tests-job-base: &unit-tests-job-base +# <<: *maven-job-base +# stage: unit-tests + +# Quality jobs ------------------------- + +# TODO: Quality jobs + +# Unit tests jobs ------------------------ + +# run-sh-backend-tests: +# <<: *unit-tests-job-base +# script: +# # Install the PRC client package. +# - cd git/sh-backend/clients/prc +# - 'mvn $MAVEN_OPTS -f pom.xml -DskipTests -Dmaven.test.skip=true install' + +# # Run the sh-backend tests. +# - cd ${CI_PROJECT_DIR}/git/sh-backend +# - 'mvn $MAVEN_OPTS verify -DskipITs -Pprod,api-docs,no-liquibase' + +# run-sh-gateway-tests: +# <<: *unit-tests-job-base +# script: +# - cd git/sh-gateway +# # TODO: Skipping tests, as they seem broken. +# #- 'mvn $MAVEN_OPTS verify -Pprod,api-docs,no-liquibase -Dskip.npm -Dskip.yarn -Dskip.bower +# # -Dskip.grunt -Dskip.gulp -Dskip.jspm -Dskip.karma -Dskip.webpack' + +# Build jobs ---------------------- + +.build-docker-compose: + # image: docker/compose:1.29.2 # this is too old + image: docker:23.0.1 + stage: build + services: + # - docker:20.10.21-dind # not sure if this is the latest + - docker:dind + variables: + GIT_DEPTH: 1 + GIT_SUBMODULE_STRATEGY: recursive + GIT_SUBMODULE_DEPTH: 1 + DOCKER_BUILDKIT: 1 + COMPOSE_DOCKER_CLI_BUILD: 1 + DOCKER_COMPOSE_PATH: "." + DOCKER_COMPOSE_ENV_FILE_CACHE: ".envs/global/release" + DOCKER_COMPOSE_ENV_FILE: ".envs/global/release" + before_script: + - !reference [.artifactory-login] + script: + - apk add docker-compose + - cd $DOCKER_COMPOSE_PATH + - docker-compose --env-file $DOCKER_COMPOSE_ENV_FILE_CACHE --project-directory ./ pull || true + - docker-compose --env-file $DOCKER_COMPOSE_ENV_FILE_CACHE --project-directory ./ config + - docker-compose --env-file $DOCKER_COMPOSE_ENV_FILE --project-directory ./ build + - docker-compose --env-file $DOCKER_COMPOSE_ENV_FILE --project-directory ./ push + - docker-compose --env-file $DOCKER_COMPOSE_ENV_FILE --project-directory ./ config | grep image + tags: + - docker + +build-temp-docker-compose: + extends: + - .build-docker-compose + variables: + IMAGE_SH_MYSQL: "$TMP_IMAGE_SH_MYSQL" + IMAGE_SH_BACKEND: "$TMP_IMAGE_SH_BACKEND" + IMAGE_SH_FRONTEND: "$TMP_IMAGE_SH_FRONTEND" + +build-release-docker-compose: + extends: + - .build-docker-compose + when: manual + +# Security job in tests stage------------------------ + +# security-trivy-sh-mysql: +# stage: security +# variables: +# TMP_IMAGE: "$TMP_IMAGE_SH_MYSQL" +# trigger: !reference [.trigger-security-trivy] +# needs: +# - job: build-temp-docker-compose +# - job: generate-variables +# artifacts: true + +# security-trivy-sh-backend: +# stage: security +# variables: +# TMP_IMAGE: "$TMP_IMAGE_SH_BACKEND" +# trigger: !reference [.trigger-security-trivy] +# needs: +# - job: build-temp-docker-compose +# - job: generate-variables +# artifacts: true + +# security-trivy-sh-gateway: +# stage: security +# variables: +# TMP_IMAGE: "$TMP_IMAGE_SH_GATEWAY" +# trigger: !reference [.trigger-security-trivy] +# needs: +# - job: build-temp-docker-compose +# - job: generate-variables +# artifacts: true diff --git a/.gitmodules b/.gitmodules index f4475b66ee152601059f0bd22f43325cfac522de..aa0366cad9bc01c1ca8d7071bf7c829f6773be3f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "development-services"] - path = development-services - url = ../../../../smartdatalab/libraries/docker-compose/development-services.git +[submodule "git/jhipster-registry"] + path = git/jhipster-registry + url = ../../../../smartdatalab/libraries/docker-compose/jhipster-registry-deploy.git diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..a043ebb460993cc3910eccc085b4eb218e16abde --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2022 Tecnalia + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/build/docker-compose-sh.yaml b/build/docker-compose-sh.yaml deleted file mode 100644 index e7e2911af3ea5a6591f383dd3449ba9a966391eb..0000000000000000000000000000000000000000 --- a/build/docker-compose-sh.yaml +++ /dev/null @@ -1,26 +0,0 @@ -# This configuration is intended for development purpose, it's **your** responsibility to harden it for production -version: '3.8' -services: - - sh-mysql: - build: - context: ${SH_BUILD_RELATIVE_FOLDER}git/sh-mysql - dockerfile: Dockerfile - - sh-gateway: - build: - context: ${SH_BUILD_RELATIVE_FOLDER}git/sh-gateway - dockerfile: Dockerfile - args: - BUILDKIT_INLINE_CACHE: 1 - EXTRA_CA_URL: ${EXTRA_CA_URL:?err} - - sh-backend: - build: - context: ${SH_BUILD_RELATIVE_FOLDER}git/sh-backend - dockerfile: Dockerfile - args: - BUILDKIT_INLINE_CACHE: 1 - EXTRA_CA_URL: ${EXTRA_CA_URL:?err} - - \ No newline at end of file diff --git a/build/docker-compose.yaml b/build/docker-compose.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f7fb5a2d57621b0a023929f15884db706d9640f8 --- /dev/null +++ b/build/docker-compose.yaml @@ -0,0 +1,15 @@ +services: + + sh-gateway: + build: + context: ${SH_BASE_PATH}git/sh-gateway + dockerfile: Dockerfile + cache_from: + - ${DOCKER_REGISTRY_CACHE_PREFIX}/piacere/sh-gateway:${DOCKER_REGISTRY_CACHE_VERSION:?err} + + sh-backend: + build: + context: ${SH_BASE_PATH}git/sh-backend + dockerfile: Dockerfile + cache_from: + - ${DOCKER_REGISTRY_CACHE_PREFIX}/piacere/sh-backend:${DOCKER_REGISTRY_CACHE_VERSION:?err} diff --git a/build/image/docker-compose.yaml b/build/image/docker-compose.yaml new file mode 100644 index 0000000000000000000000000000000000000000..80d146ffc643394c77f11807a75946467218b8b1 --- /dev/null +++ b/build/image/docker-compose.yaml @@ -0,0 +1,8 @@ +services: + + sh-gateway: + image: ${DOCKER_REGISTRY_CACHE_PREFIX}/piacere/sh-gateway:${DOCKER_REGISTRY_CACHE_VERSION:?err} + + sh-backend: + image: ${DOCKER_REGISTRY_CACHE_PREFIX}/piacere/sh-backend:${DOCKER_REGISTRY_CACHE_VERSION:?err} + diff --git a/build/inline-cache/docker-compose.yaml b/build/inline-cache/docker-compose.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5745f6b8467113e7d86a9cb9ddd483b08621c581 --- /dev/null +++ b/build/inline-cache/docker-compose.yaml @@ -0,0 +1,11 @@ +services: + + sh-gateway: + build: + args: + BUILDKIT_INLINE_CACHE: 1 # For multistage docker + + sh-backend: + build: + args: + BUILDKIT_INLINE_CACHE: 1 # For multistage docker diff --git a/central-config/jhipster/application.yml b/data/jhipster-registry/central-config/sh/application.yml similarity index 100% rename from central-config/jhipster/application.yml rename to data/jhipster-registry/central-config/sh/application.yml diff --git a/central-config/sh/shBackend.yml b/data/jhipster-registry/central-config/sh/shBackend.yml similarity index 89% rename from central-config/sh/shBackend.yml rename to data/jhipster-registry/central-config/sh/shBackend.yml index 359956928022e1ce0a934c65bf16501968cb355c..133489334541f9fa334228a2148308980b1d8b6c 100644 --- a/central-config/sh/shBackend.yml +++ b/data/jhipster-registry/central-config/sh/shBackend.yml @@ -17,6 +17,30 @@ global: mysql: url: ${GLOBAL_MYSQL_URL:mysql://sh-mysql:3306/shBackend?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true} +application: + webhook: + keep-last-requests: 10 + strategy: + repeat_not_before: PT24H # https://www.geeksforgeeks.org/duration-parsecharsequence-method-in-java-with-examples/ +# dissable eureka + +prc: + url: ${PRC_URL:http://prc:8000} + +iop: + url: ${IOP_URL:http://iop-optimizer:8081} + +dmc: + url: ${DMC_URL:http://dmc:80} + +icg: + url: ${ICG_URL:http://icg:5000} + +isr: + url: ${ISR_URL:https://scanner.xopera.piacere.esilab.org} + username: ${ISR_USERNAME:admin} + password: ${ISR_PASSWORD:admin} + management: metrics: export: @@ -46,7 +70,7 @@ spring: jpa: # Replace by 'prod, faker' to add the faker context and have sample data loaded in production liquibase: - contexts: prod + contexts: prod, startup thymeleaf: cache: true sleuth: @@ -117,6 +141,10 @@ kafka: '[value.deserializer]': com.piacere.selfhealing.backend.serde.SelfHealingMessageDeserializer '[group.id]': sh-self-healing '[auto.offset.reset]': earliest + '[max.poll.interval.ms]': 2000000 + '[max.poll.records]': 10 + '[session.timeout.ms]': 300000 + producer: selfHealingMessage: enabled: true diff --git a/central-config/sh/shGateway.yml b/data/jhipster-registry/central-config/sh/shGateway.yml similarity index 99% rename from central-config/sh/shGateway.yml rename to data/jhipster-registry/central-config/sh/shGateway.yml index b60f735518366ad05546ec414261db2c555fdb18..91f2021f01d9e1fd9eab64c031c58a79e959e1cc 100644 --- a/central-config/sh/shGateway.yml +++ b/data/jhipster-registry/central-config/sh/shGateway.yml @@ -15,7 +15,7 @@ #logging: # file: -# name: logs/iec-backend.log +# name: logs/sh-backend.log # level: # ROOT: TRACE diff --git a/docker-compose-artifactory.yaml b/docker-compose-artifactory.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5eeb43972fd2d13783ee355a07ee1422579789b5 --- /dev/null +++ b/docker-compose-artifactory.yaml @@ -0,0 +1,13 @@ +services: + sh-mysql: + build: + labels: + com.jfrog.artifactory.retention.maxCount: 6 + sh-gateway: + build: + labels: + com.jfrog.artifactory.retention.maxCount: 6 + sh-backend: + build: + labels: + com.jfrog.artifactory.retention.maxCount: 6 diff --git a/docker-compose-dev-expose.yaml b/docker-compose-dev-expose.yaml new file mode 100644 index 0000000000000000000000000000000000000000..efb9d98b2114e3a2b1da37d944ab9a26a2c12585 --- /dev/null +++ b/docker-compose-dev-expose.yaml @@ -0,0 +1,10 @@ +services: + jhipster-registry: + ports: + - 8761:8761 + sh-mysql: + ports: + - 3306:3306 + sh-kafka: + ports: + - 9092:9092 diff --git a/docker-compose-dev.yaml b/docker-compose-dev.yaml deleted file mode 100644 index 80b771b3684c2a5431a60b0832ab79e07c3aab7a..0000000000000000000000000000000000000000 --- a/docker-compose-dev.yaml +++ /dev/null @@ -1,14 +0,0 @@ -version: '3.8' - -services: - traefik: - networks: - default: - aliases: - - jhipster-registry.${SERVER_HOST} - - jhipster-registry: - labels: - - "traefik.enable=true" - - "traefik.http.routers.jhipster-registry.entrypoints=websecure" - - "traefik.http.routers.jhipster-registry.rule=Host(`jhipster-registry.${SERVER_HOST:?err}`)" diff --git a/docker-compose-expose.yaml b/docker-compose-expose.yaml deleted file mode 100644 index 5ad955c50445188734ce111dda2269d99f197dd6..0000000000000000000000000000000000000000 --- a/docker-compose-expose.yaml +++ /dev/null @@ -1,7 +0,0 @@ -version: "3.8" - -services: - ## Common structure - traefik: - ports: - - ${HTTPS_PORT:?err}:${HTTPS_PORT:?err} diff --git a/docker-compose-jhipster-network-external.yaml b/docker-compose-jhipster-network-external.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6c74fe5a4d459981dbdb2d95b4121f8395cde6a4 --- /dev/null +++ b/docker-compose-jhipster-network-external.yaml @@ -0,0 +1,4 @@ +networks: + jhipster_network: + name: jhipster_network + external: true diff --git a/docker-compose-jhipster-registry-volumes.yaml b/docker-compose-jhipster-registry-volumes.yaml new file mode 100644 index 0000000000000000000000000000000000000000..160be9bb7a7e9f064082d349082c64ff7df12234 --- /dev/null +++ b/docker-compose-jhipster-registry-volumes.yaml @@ -0,0 +1,5 @@ +services: + jhipster-registry: + volumes: + - ./${JHIPSTER_REGISTRY_CONFIG_PATH}data/jhipster-registry/central-config/jhipster-registry:/central-config/jhipster-registry + - ./${SH_CONFIG_PATH}data/jhipster-registry/central-config/sh:/central-config/sh diff --git a/docker-compose-redirect-http.yaml b/docker-compose-redirect-http.yaml deleted file mode 100644 index 90f79504668efe6447cf288c3b6bd3db4a3fab9b..0000000000000000000000000000000000000000 --- a/docker-compose-redirect-http.yaml +++ /dev/null @@ -1,14 +0,0 @@ -version: "3.8" - -services: - traefik: - labels: - # global redirect to https - - "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)" - - "traefik.http.routers.http-catchall.entrypoints=web" - - "traefik.http.routers.http-catchall.middlewares=redirect-to-https" - - "traefik.http.routers.http-catchall.service=api@internal" - - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" - - "traefik.http.middlewares.redirect-to-https.redirectscheme.port=${HTTPS_PORT:?err}" - ports: - - 80:80 diff --git a/docker-compose-traefik-aliases.yaml b/docker-compose-traefik-aliases.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1b906d3c39828ef4df22fb7c206121b029beb9fb --- /dev/null +++ b/docker-compose-traefik-aliases.yaml @@ -0,0 +1,6 @@ +services: + traefik: + networks: + traefik_network: + aliases: + - sh.${SERVER_HOST} diff --git a/docker-compose-traefik-network-external.yaml b/docker-compose-traefik-network-external.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6149618e9408dec1168a12175ab70e38c67cc86c --- /dev/null +++ b/docker-compose-traefik-network-external.yaml @@ -0,0 +1,4 @@ +networks: + traefik_network: + name: traefik_network + external: true diff --git a/docker-compose-traefik-network-internal.yaml b/docker-compose-traefik-network-internal.yaml new file mode 100644 index 0000000000000000000000000000000000000000..0d7a2cf849a8488fdbe66d2cd423e4777a3e2bce --- /dev/null +++ b/docker-compose-traefik-network-internal.yaml @@ -0,0 +1,3 @@ +networks: + traefik_network: + name: ${TRAEFIK_NETWORK_NAME:?err} diff --git a/docker-compose-traefik-selfsigned.yaml b/docker-compose-traefik-selfsigned.yaml deleted file mode 100644 index 42c8f328ffe42c2aa0a93bb3d9a91f7d4ae7b6c7..0000000000000000000000000000000000000000 --- a/docker-compose-traefik-selfsigned.yaml +++ /dev/null @@ -1,30 +0,0 @@ -version: "3.8" - -services: - ## Common structure - traefik: - image: traefik:v2.5.2 - restart: always - hostname: ${SERVER_HOST} - command: - --api=true - --api.insecure=true - --serverstransport.insecureskipverify=true - --ping=true - --providers.docker=true - --providers.docker.constraints="Label(`com.docker.compose.project`, `${COMPOSE_PROJECT_NAME}`)" - --providers.docker.exposedbydefault=false - --entrypoints.web.address=:80 - --entrypoints.websecure.address=:${HTTPS_PORT:?err} - --entrypoints.websecure.http.tls=true - # --log.level=DEBUG - volumes: - - /var/run/docker.sock:/var/run/docker.sock - networks: - default: - aliases: - - ${SERVER_HOST:?err} - -networks: - default: - \ No newline at end of file diff --git a/docker-compose-sh.yaml b/docker-compose.yaml similarity index 78% rename from docker-compose-sh.yaml rename to docker-compose.yaml index f51e20955ff9774bb8a02368526257423acc830a..63ce3874f855904bb421dda3d88391f06a88fc4e 100644 --- a/docker-compose-sh.yaml +++ b/docker-compose.yaml @@ -1,67 +1,67 @@ -# This configuration is intended for development purpose, it's **your** responsibility to harden it for production -version: '3.8' -services: - traefik: - networks: - default: - aliases: - - sh.${SERVER_HOST} - - sh-mysql: - image: ${DOCKER_REGISTRY_PREFIX}${PROJECT_NAME}/wp5/sh-mysql:${COMPOSE_PROJECT_VERSION:?err} - restart: always - volumes: - - sh-mysql_data:/var/lib/mysql - - sh-gateway: - image: ${DOCKER_REGISTRY_PREFIX}${PROJECT_NAME}/wp5/sh-gateway:${COMPOSE_PROJECT_VERSION:?err} - restart: always - depends_on: - - jhipster-registry - environment: - GLOBAL_PASSWORD: ${ADMIN_PASSWORD} - # GLOBAL_REGISTRY_URL: http://admin:${ADMIN_PASSWORD}@jhipster-registry:8761 - JHIPSTER_CORS_ALLOWEDORIGINS: "https://sh.${SERVER_HOST:?err}:${HTTPS_PORT}" - # Unlike the Jhipster registry, for some reason it cannot work without oidc info - labels: - - "traefik.enable=true" - - "traefik.http.routers.sh-gateway.rule=Host(`sh.${SERVER_HOST:?err}`)" - - "traefik.http.routers.sh-gateway.entrypoints=websecure" - - sh-backend: - image: ${DOCKER_REGISTRY_PREFIX}${PROJECT_NAME}/sh-backend:${COMPOSE_PROJECT_VERSION:?err} - restart: always - depends_on: - - jhipster-registry - environment: - GLOBAL_PASSWORD: ${ADMIN_PASSWORD} - SPRING_PROFILES_ACTIVE: prod,api-docs - # GLOBAL_REGISTRY_URL: http://admin:${ADMIN_PASSWORD}@jhipster-registry:8761 - # Unlike the Jhipster registry, for some reason it cannot work without oidc info - # SPRING_PROFILES_ACTIVE: prod,api-docs,no-liquibase - # MANAGEMENT_METRICS_EXPORT_PROMETHEUS_ENABLED: "true" - - sh-kafka: - image: confluentinc/cp-kafka:5.5.5 - # If you want to expose these ports outside your dev PC, - # remove the "127.0.0.1:" prefix - restart: always - environment: - KAFKA_BROKER_ID: 1 - KAFKA_ZOOKEEPER_CONNECT: sh-zookeeper:2181 - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://sh-kafka:29092,PLAINTEXT_HOST://sh-kafka:9092 # based on this https://rmoff.net/2018/08/02/kafka-listeners-explained/ as we are not going to externalize in principle it seems that there is no need for this. but the docker requires them to run. - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT # also required to run the docker - # KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 # the docker defaults to 3 - KAFKA_ADVERTISED_HOST_NAME: sh-kafka - - sh-zookeeper: - image: confluentinc/cp-zookeeper:5.5.5 - restart: always - environment: - ZOOKEEPER_CLIENT_PORT: 2181 # this is the default it is not needed, but it is required in the docker - # ZOOKEEPER_TICK_TIME: 2000 this is the default it is not needed - - -volumes: - sh-mysql_data: \ No newline at end of file +services: + sh-mysql: + restart: always + volumes: + - sh-mysql_data:/var/lib/mysql + networks: + traefik_network: + command: mysqld --lower_case_table_names=1 --skip-ssl --character_set_server=utf8mb4 --explicit_defaults_for_timestamp + image: mysql:8.0.26 + environment: + - MYSQL_ALLOW_EMPTY_PASSWORD=yes + + sh-gateway: + restart: always + environment: + GLOBAL_PASSWORD: ${ADMIN_PASSWORD} + # GLOBAL_REGISTRY_URL: http://admin:${ADMIN_PASSWORD}@jhipster-registry:8761 + JHIPSTER_CORS_ALLOWEDORIGINS: "https://sh.${SERVER_HOST:?err}:${HTTPS_PORT}" + # Unlike the Jhipster registry, for some reason it cannot work without oidc info + networks: + traefik_network: + labels: + - "traefik.docker.network=traefik_network" + - "traefik.enable=true" + - "traefik.http.routers.sh-gateway.rule=Host(`sh.${SERVER_HOST:?err}`)" + - "traefik.http.routers.sh-gateway.entrypoints=websecure" + + sh-backend: + restart: always + environment: + GLOBAL_PASSWORD: ${ADMIN_PASSWORD} + SPRING_PROFILES_ACTIVE: prod,api-docs + PRC_URL: ${PRC_URL:-http://192.168.56.1:8000} + # GLOBAL_REGISTRY_URL: http://admin:${ADMIN_PASSWORD}@jhipster-registry:8761 + # Unlike the Jhipster registry, for some reason it cannot work without oidc info + # SPRING_PROFILES_ACTIVE: prod,api-docs,no-liquibase + # MANAGEMENT_METRICS_EXPORT_PROMETHEUS_ENABLED: "true" + networks: + traefik_network: + + sh-kafka: + image: confluentinc/cp-kafka:5.5.5 + # If you want to expose these ports outside your dev PC, + # remove the "127.0.0.1:" prefix + restart: always + environment: + KAFKA_BROKER_ID: 1 + KAFKA_ZOOKEEPER_CONNECT: sh-zookeeper:2181 + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://sh-kafka:29092,PLAINTEXT_HOST://sh-kafka:9092 # based on this https://rmoff.net/2018/08/02/kafka-listeners-explained/ as we are not going to externalize in principle it seems that there is no need for this. but the docker requires them to run. + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT # also required to run the docker + # KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 # the docker defaults to 3 + KAFKA_ADVERTISED_HOST_NAME: sh-kafka + networks: + traefik_network: + + sh-zookeeper: + image: confluentinc/cp-zookeeper:5.5.5 + restart: always + environment: + ZOOKEEPER_CLIENT_PORT: 2181 # this is the default it is not needed, but it is required in the docker + # ZOOKEEPER_TICK_TIME: 2000 this is the default it is not needed + networks: + traefik_network: + +volumes: + sh-mysql_data: diff --git a/git/jhipster-registry/.env b/git/jhipster-registry/.env new file mode 100644 index 0000000000000000000000000000000000000000..075570c3fb77fec304603973244a85b2a2e02a1b --- /dev/null +++ b/git/jhipster-registry/.env @@ -0,0 +1,7 @@ +ADMIN_USER=admin +ADMIN_PASSWORD=projectPassword +HTTPS_PORT=443 +SERVER_HOST=ci.piacere.digital.tecnalia.dev +COMPOSE_PROJECT_NAME=jhipster-registry +JHIPSTER_REGISTRY_CONFIG_PATH= +COMPOSE_FILE=docker-compose.yaml:docker-compose-volumes.yaml:docker-compose-traefik-network-external.yaml diff --git a/git/jhipster-registry/.env.gen b/git/jhipster-registry/.env.gen new file mode 100644 index 0000000000000000000000000000000000000000..4f7bfb679d5535efb93a30553b38d0beef297620 --- /dev/null +++ b/git/jhipster-registry/.env.gen @@ -0,0 +1,93 @@ +# Reference documentation https://docs.docker.com/compose/environment-variables/ +# Focus default variables as production, to allow direct download and run in production +# Required external variables that must be defined externally are those that have no value + +#### Environments managed #### +# this is the default environment if needed uncomment and adjust +# some conventions on environment prefixes +# - development: purpouse is to cache build and start the setup locally using cache images exposing dev ports (i.e 3306, 5432, 8086, ...) for debug and development purposes. It is the default behaviour (local:run-build-cache) +# - release: purpouse is to generate images (that do not use BUILDKIT_INLINE_CACHE 1) tagged for the clients/pilots usage (release:run-build-release) +# - prod: purpose is to generate non building docker-compose that uses the release to deploy on generic client (prod:run-release) +# - test: the purpouse is to test from the cache images the correct behaviour without exposing ports (test:run-cache) +# types of building +# - run-build-cache: it focuses in the generation of images with BUILDKIT_INLINE_CACHE 1 for its usage in the cache-from for subsequent build, for each compose-file in compose-file build it finds build/cache the same name to add it to the build, it will use cache from. +# - run-build-release: it focuses in the generation of images for distribution it avoid using BUILDKIT_INLINE_CACHE 1 to reduce the size, it will use cache from. +# - build-cache: it focuses in the generation of images with BUILDKIT_INLINE_CACHE 1 for its usage in the cache-from for subsequent build, for each compose-file in compose-file build it finds build/cache the same name to add it to the build, it will use cache from. +# - build-release: it focuses in the generation of images for distribution it avoid using BUILDKIT_INLINE_CACHE 1 to reduce the size, it will not use cache from. +# - run-cache: it runs using cache images +# - run-release: it runs using release images +# default enviroment +# __ENVIRONMENTS=development:run-build-cache +# to add more enviroments use split with ";" +__ENVIRONMENTS=development:run-build-cache;prod:run-release;release:build-release + +#### Modules managed #### +# this will create individual docker composes that enables the individual usage of the modules through the docker-compose command and specific env files i.e. +# __MODULES=traefik;step-ca +# will enable the following docker-compose commands +# docker-compose --env-file .env/modules/traefik/prod ----project-directory . up -d +# __MODULES=traefik;step-ca +__MODULES=jhipster-registry + +#### default environment #### +# __DEFAULT_ENVIRONMENT=.envs/global/prod + +#### default environment #### +# __DEFAULT_DEVELOPMENT_ENVIRONMENT=.envs/global/development + +#### default release environment #### +# __DEFAULT_RELEASE_ENVIRONMENT=.envs/global/release + +#### Common image related #### +DOCKER_REGISTRY_CACHE_PREFIX=cache.euve.digital.tecnalia.dev:5000 +DOCKER_REGISTRY_CACHE_VERSION=latest + +#### Common Build related #### +# DOCKER_BUILDKIT and COMPOSE_DOCKER_CLI_BUILD do not have effect here, we leave them as documentation +# DOCKER_BUILDKIT=1 +# COMPOSE_DOCKER_CLI_BUILD=1 + +### Common Traefik related ### +TRAEFIK_NETWORK_NAME=traefik_network +TRAEFIK_HTTPS_ENTRYPOINT_NAME=websecure +# TRAEFIK_HTTP_ENTRYPOINT_NAME=web + +#### Common Production related #### +ADMIN_USER=admin +ADMIN_PASSWORD=projectPassword +# to calculate password hash `openssl passwd -apr1 $ADMIN_PASSWORD` +# ADMIN_PASSWORD_HASH='$apr1$chTuJ7f9$.Ul8E16QYHtydKw.ehzZC.' +# to calculate password bcrypt hash `sudo apt-get update; sudo apt-get install -y apache2-utils; htpasswd -bnBC 12 "" $ADMIN_PASSWORD | tr -d ':\n'` +# ADMIN_PASSWORD_BCRYPT_HASH='$2y$12$NxJ.FkLgDZWWjc15y9bhX./GOTp67krCxWPanJLyCjofKyIN.zS96' +# HTTPS_PORT must be 443 if you use step-ca +HTTPS_PORT=443 +# server host is configured during the sync based on _ENV_LOCAL_ and _ENV_DEPLOY, _ENV_LOCAL_ will be used for test and release unless _ENV_RELEASE_ or _ENV_TEST_ specified +# SERVER_HOST=project.org +SERVER_HOST=ci.piacere.digital.tecnalia.dev + +#### Platform Specific #### +# TZ=Madrid + +#### Common docker-compose related #### +# https://docs.docker.com/compose/reference/envvars/#compose_file#compose_project_name +# these are docker-compose related environment variables +COMPOSE_PROJECT_NAME=jhipster-registry +# _ENV_LOCAL_COMPOSE_FILE_BASE= # These are oriented for local vagrant usually it contains local traefik configuration, dev services, etc +# _ENV_RELEASE_COMPOSE_FILE_BASE= # These are oriented for tagging relevant images for upload to official release repositories +# _ENV_DEPLOY_COMPOSE_FILE_BASE= # These are oriented for final deployment it contains production traefik configuration, etc +# _ENV_TEST_COMPOSE_FILE_BASE= # These are oriented for testing +# COMPOSE_FILE_BASE= # (MANDATORY) These are those main services of the project, that will apply to all the scenarios + +COMPOSE_FILE_BASE= + +COMPOSE_FILE= +# COMPOSE_FILE Is generated automatically + +__jhipster-registry__COMPOSE_FILE_BASE=docker-compose.yaml +__jhipster-registry__COMPOSE_FILE_BASE_VOLUMES=docker-compose-volumes.yaml +__jhipster-registry__COMPOSE_FILE_BASE_NETWORK=docker-compose-traefik-network-external.yaml +__jhipster-registry__JHIPSTER_REGISTRY_CONFIG_PATH= + +__jhipster-registry_development__SERVER_HOST=192.168.56.1.nip.io +__jhipster-registry_development__COMPOSE_FILE_BASE_DEV=docker-compose-dev.yaml + diff --git a/git/jhipster-registry/.envs/global/development b/git/jhipster-registry/.envs/global/development new file mode 100644 index 0000000000000000000000000000000000000000..e515efebae0e50be3992649c85599712f5724e70 --- /dev/null +++ b/git/jhipster-registry/.envs/global/development @@ -0,0 +1,9 @@ +TRAEFIK_NETWORK_NAME=traefik_network +TRAEFIK_HTTPS_ENTRYPOINT_NAME=websecure +ADMIN_USER=admin +ADMIN_PASSWORD=projectPassword +HTTPS_PORT=443 +SERVER_HOST=192.168.56.1.nip.io +COMPOSE_PROJECT_NAME=jhipster-registry +JHIPSTER_REGISTRY_CONFIG_PATH= +COMPOSE_FILE=docker-compose.yaml:docker-compose-volumes.yaml:docker-compose-traefik-network-external.yaml:docker-compose-dev.yaml diff --git a/git/jhipster-registry/.envs/global/prod b/git/jhipster-registry/.envs/global/prod new file mode 100644 index 0000000000000000000000000000000000000000..075570c3fb77fec304603973244a85b2a2e02a1b --- /dev/null +++ b/git/jhipster-registry/.envs/global/prod @@ -0,0 +1,7 @@ +ADMIN_USER=admin +ADMIN_PASSWORD=projectPassword +HTTPS_PORT=443 +SERVER_HOST=ci.piacere.digital.tecnalia.dev +COMPOSE_PROJECT_NAME=jhipster-registry +JHIPSTER_REGISTRY_CONFIG_PATH= +COMPOSE_FILE=docker-compose.yaml:docker-compose-volumes.yaml:docker-compose-traefik-network-external.yaml diff --git a/git/jhipster-registry/.envs/modules/jhipster-registry/development b/git/jhipster-registry/.envs/modules/jhipster-registry/development new file mode 100644 index 0000000000000000000000000000000000000000..e515efebae0e50be3992649c85599712f5724e70 --- /dev/null +++ b/git/jhipster-registry/.envs/modules/jhipster-registry/development @@ -0,0 +1,9 @@ +TRAEFIK_NETWORK_NAME=traefik_network +TRAEFIK_HTTPS_ENTRYPOINT_NAME=websecure +ADMIN_USER=admin +ADMIN_PASSWORD=projectPassword +HTTPS_PORT=443 +SERVER_HOST=192.168.56.1.nip.io +COMPOSE_PROJECT_NAME=jhipster-registry +JHIPSTER_REGISTRY_CONFIG_PATH= +COMPOSE_FILE=docker-compose.yaml:docker-compose-volumes.yaml:docker-compose-traefik-network-external.yaml:docker-compose-dev.yaml diff --git a/git/jhipster-registry/.envs/modules/jhipster-registry/prod b/git/jhipster-registry/.envs/modules/jhipster-registry/prod new file mode 100644 index 0000000000000000000000000000000000000000..075570c3fb77fec304603973244a85b2a2e02a1b --- /dev/null +++ b/git/jhipster-registry/.envs/modules/jhipster-registry/prod @@ -0,0 +1,7 @@ +ADMIN_USER=admin +ADMIN_PASSWORD=projectPassword +HTTPS_PORT=443 +SERVER_HOST=ci.piacere.digital.tecnalia.dev +COMPOSE_PROJECT_NAME=jhipster-registry +JHIPSTER_REGISTRY_CONFIG_PATH= +COMPOSE_FILE=docker-compose.yaml:docker-compose-volumes.yaml:docker-compose-traefik-network-external.yaml diff --git a/git/jhipster-registry/.gitmodules b/git/jhipster-registry/.gitmodules new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/git/jhipster-registry/README.md b/git/jhipster-registry/README.md new file mode 100644 index 0000000000000000000000000000000000000000..6abb59c3fdaf1b68cefe7cba45d81821145e8d71 --- /dev/null +++ b/git/jhipster-registry/README.md @@ -0,0 +1,31 @@ +# development-services + +This docker-compose file generalizes some services that we use in tecnalia to monitor and debug containers in integration servers. +* traefik dashboard +* traefik api +* portainer +* keycloak to provide sso access to services + +In future +* monitoring with telegraf +* monitoring db and render with infuxdb and grafana (this requires resources) + +## Use +This docker compose is not planned to be used alone but as a resource in another docker compose projects by extending DOCKER_FILE variable. + +```bash +export DOCKER_FILE=[...];path/docker-compose-tecnalia-selfsigned.yaml;path/docker-compose-dev.yaml +``` + +## Resources +Besides the docker-composes we also provide some additional resources: +* traefik examples using the official or our customized traefik + +## How to access +the entrypoints for the services will be in subdomains, asuming a base domain such as 192.168.56.1.nip.io: +* https://traefik.192.168.56.1.nip.io:8443/ to access traefik dashboard +* https://traefik.192.168.56.1.nip.io:8443/api/http/routers to access traefik api +* https://portainer.192.168.56.1.nip.io:8443/ to access portainer +* https://auth.192.168.56.1.nip.io:8443/ to access keycloak +* ... + diff --git a/central-config/sh/application.yml b/git/jhipster-registry/data/jhipster-registry/central-config/jhipster-registry/application.yml similarity index 100% rename from central-config/sh/application.yml rename to git/jhipster-registry/data/jhipster-registry/central-config/jhipster-registry/application.yml diff --git a/central-config/jhipster/registry.yml b/git/jhipster-registry/data/jhipster-registry/central-config/jhipster-registry/jhipster-registry.yml similarity index 100% rename from central-config/jhipster/registry.yml rename to git/jhipster-registry/data/jhipster-registry/central-config/jhipster-registry/jhipster-registry.yml diff --git a/git/jhipster-registry/docker-compose-dev-expose.yaml b/git/jhipster-registry/docker-compose-dev-expose.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e957f73b3aece7bc3477c15931decc8bbf2c810d --- /dev/null +++ b/git/jhipster-registry/docker-compose-dev-expose.yaml @@ -0,0 +1,4 @@ +services: + portainer: + ports: + - 8086:8086 diff --git a/git/jhipster-registry/docker-compose-dev.yaml b/git/jhipster-registry/docker-compose-dev.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fc8545f38ade3fb74dfe0dc7e783e14710d24078 --- /dev/null +++ b/git/jhipster-registry/docker-compose-dev.yaml @@ -0,0 +1,8 @@ +services: + + jhipster-registry: + labels: + - "traefik.enable=true" + - "traefik.docker.network=${TRAEFIK_NETWORK_NAME:?err}" + - "traefik.http.routers.jhipster-registry.entrypoints=${TRAEFIK_HTTPS_ENTRYPOINT_NAME:?err}" + - "traefik.http.routers.jhipster-registry.rule=Host(`jhipster-registry.${SERVER_HOST:?err}`)" diff --git a/git/jhipster-registry/docker-compose-heathcheck-kill.yaml b/git/jhipster-registry/docker-compose-heathcheck-kill.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3f35e2c4b08670b3ede5fc65ade59a0e0d30f3aa --- /dev/null +++ b/git/jhipster-registry/docker-compose-heathcheck-kill.yaml @@ -0,0 +1,10 @@ +# for some reason after a reboot the jhipster frezees and requires to be reboot +# this is not an elegant way to manage the issue +services: + jhipster-registry: + healthcheck: + test: curl -f --retry 6 --max-time 5 --retry-delay 10 --retry-max-time 60 "http://sh-gateway:8080/management/health" || bash -c 'kill -s 15 -1 && (sleep 10; kill -s 9 -1)' + interval: 5m #5m + timeout: 2s #2m + retries: 1 + start_period: 45s #45s diff --git a/git/jhipster-registry/docker-compose-oidc.yaml b/git/jhipster-registry/docker-compose-oidc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5a9bc7fa2ce393947561b42619497a3758948bc9 --- /dev/null +++ b/git/jhipster-registry/docker-compose-oidc.yaml @@ -0,0 +1,8 @@ +services: + + jhipster-registry: + environment: + SPRING_PROFILES_ACTIVE: prod,oauth2 + SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OIDC_ISSUER_URI: ${KEYCLOAK_URL}/auth/realms/jhipster + SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_ID: jhipster-registry + SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_SECRET: jhipster-registry diff --git a/git/jhipster-registry/docker-compose-tecnalia-ca.yaml b/git/jhipster-registry/docker-compose-tecnalia-ca.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7fe22c95ba652df0043f20f9fa91cb80299f4f06 --- /dev/null +++ b/git/jhipster-registry/docker-compose-tecnalia-ca.yaml @@ -0,0 +1,7 @@ +services: + + jhipster-registry: + command: + - /bin/sh + - -c + - ( [ -f /ca.pem ] || ( curl -s ${EXTRA_CA_URL:?err} --output /ca.pem && openssl x509 -in /ca.pem -text && keytool -import -noprompt -trustcacerts -alias ca -file /ca.pem -cacerts -storepass changeit ) ) && echo \"The JHipster Registry will start in $${JHIPSTER_SLEEP}s...\" && sleep $${JHIPSTER_SLEEP} && java $${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /jhipster-registry.jar diff --git a/git/jhipster-registry/docker-compose-traefik-aliases.yaml b/git/jhipster-registry/docker-compose-traefik-aliases.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ed822855fe22740a011f5522f0654bb12135018a --- /dev/null +++ b/git/jhipster-registry/docker-compose-traefik-aliases.yaml @@ -0,0 +1,6 @@ +services: + traefik: + networks: + traefik_network: + aliases: + - jhipster-registry.${SERVER_HOST} diff --git a/git/jhipster-registry/docker-compose-traefik-network-external.yaml b/git/jhipster-registry/docker-compose-traefik-network-external.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6149618e9408dec1168a12175ab70e38c67cc86c --- /dev/null +++ b/git/jhipster-registry/docker-compose-traefik-network-external.yaml @@ -0,0 +1,4 @@ +networks: + traefik_network: + name: traefik_network + external: true diff --git a/git/jhipster-registry/docker-compose-volumes.yaml b/git/jhipster-registry/docker-compose-volumes.yaml new file mode 100644 index 0000000000000000000000000000000000000000..07c6801260ffaea6c26136157380903af6502528 --- /dev/null +++ b/git/jhipster-registry/docker-compose-volumes.yaml @@ -0,0 +1,4 @@ +services: + jhipster-registry: + volumes: + - ./${JHIPSTER_REGISTRY_CONFIG_PATH}data/jhipster-registry/central-config/jhipster-registry:/central-config/jhipster-registry diff --git a/docker-compose-jhipster-registry.yaml b/git/jhipster-registry/docker-compose.yaml similarity index 67% rename from docker-compose-jhipster-registry.yaml rename to git/jhipster-registry/docker-compose.yaml index 9ed6fe30eb609b7c84f9f6a69ce1491f0d161b08..f80fa3b35df92329850ae77fee2764bcf2a75fc7 100644 --- a/docker-compose-jhipster-registry.yaml +++ b/git/jhipster-registry/docker-compose.yaml @@ -1,26 +1,16 @@ -version: '3.8' - -services: - - traefik: - networks: - default: - aliases: - - jhipster-registry.${SERVER_HOST} - - jhipster-registry: - image: jhipster/jhipster-registry:v6.8.0 - restart: always - environment: - SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_TYPE: native - # usually LOCATION use to point to file:./central-config, but, looking forward to the possibility to use a unique jhipster-registry for all the project we use the label feature that allow us to contain multiple configurations organized in folders sh, sh, iop - SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_SEARCH_LOCATIONS: file:./central-config/{label} - # if we migrate to a single jhipster-registry for all project we will need create a new folder global to hold the jhipster-registry configuration and assing global as LABEL - SPRING_CLOUD_CONFIG_LABEL: jhipster - SPRING_CLOUD_CONFIG_NAME: registry - GLOBAL_PASSWORD: ${ADMIN_PASSWORD} - JHIPSTER_CORS_ALLOWEDORIGINS: "https://jhipster-registry.${SERVER_HOST:?err}:${HTTPS_PORT}" - volumes: - - ./central-config/jhipster:/central-config/jhipster - - ./central-config/sh:/central-config/sh - +services: + jhipster-registry: + image: jhipster/jhipster-registry:v6.8.0 + restart: always + environment: + SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_TYPE: native + # usually LOCATION use to point to file:./central-config, but, looking forward to the possibility to use a unique jhipster-registry for all the project we use the label feature that allow us to contain multiple configurations organized in folders iec, sh, iop + SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_SEARCH_LOCATIONS: file:./central-config/{label} + # if we migrate to a single jhipster-registry for all project we will need create a new folder global to hold the jhipster-registry configuration and assing global as LABEL + SPRING_CLOUD_CONFIG_LABEL: jhipster-registry + SPRING_CLOUD_CONFIG_NAME: jhipster-registry + GLOBAL_PASSWORD: ${ADMIN_PASSWORD} + JHIPSTER_CORS_ALLOWEDORIGINS: "https://jhipster-registry.${SERVER_HOST:?err}:${HTTPS_PORT}" + networks: + traefik_network: + diff --git a/git/selfHealingService.jdl b/git/selfHealingService.jdl new file mode 100644 index 0000000000000000000000000000000000000000..7317eff80bfe421747cc932cea67bdf95da42b1d --- /dev/null +++ b/git/selfHealingService.jdl @@ -0,0 +1,134 @@ +// https://www.jhipster.tech/jdl/applications#available-application-configuration-options +application { + config { + applicationType gateway + authenticationType jwt + baseName shgateway + buildTool maven + cacheProvider no + clientFramework angularX + clientPackageManager npm + clientTheme none + databaseType sql + devDatabaseType mysql + dtoSuffix DTO + jhiPrefix jhi + jwtSecretKey "MDBhMjI4YTczOWZlZjFhOTMzMDMyNmI1OGFiODViZjFkMzlkMzI1ZDJjZmNiOGM1YmVlNDJjNDhkNDQ3Mzk4YjEyZmIxZmYzODRhMWZmMDE0MDZlYjViOTNlNjk1Y2I1M2ZjYWQ3NmJkOGZlOWVhNDRjZTZkODgyZDNlOWRjZDI=" + languages [en] + messageBroker false + nativeLanguage en + packageName com.piacere.selfhealing.gateway + prodDatabaseType mysql + reactive true + searchEngine false + serverPort 8080 + serviceDiscoveryType eureka + skipClient false + skipServer false + skipUserManagement false + testFrameworks [] + websocket false + } + entities * +} + +application { + config { + applicationType microservice + authenticationType jwt + baseName shbackend + buildTool maven + cacheProvider hazelcast + clientPackageManager npm + databaseType sql + devDatabaseType mysql + dtoSuffix DTO + jhiPrefix jhi + jwtSecretKey "MDBhMjI4YTczOWZlZjFhOTMzMDMyNmI1OGFiODViZjFkMzlkMzI1ZDJjZmNiOGM1YmVlNDJjNDhkNDQ3Mzk4YjEyZmIxZmYzODRhMWZmMDE0MDZlYjViOTNlNjk1Y2I1M2ZjYWQ3NmJkOGZlOWVhNDRjZTZkODgyZDNlOWRjZDI=" + languages [en] + messageBroker kafka + nativeLanguage en + packageName com.piacere.selfhealing.backend + prodDatabaseType mysql + reactive false + searchEngine false + serverPort 8081 + serviceDiscoveryType eureka + skipClient true + skipUserManagement true + testFrameworks [] + websocket false + } + entities SelfHealingMessage, EventType, Strategy, Deployment, StrategyApplication +} + +enum Status { + PENDING("Pending") + PROCESSED("Processed") + IGNORED("Ignored") + ERROR("Error") +} +/** +* Messages received definition +* +* @author Tecnalia +*/ +entity SelfHealingMessage { + timestamp Instant /** message timestamp */ + origin String required /** message origin component */ + deploymentId String /** id of app related to message */ + status Status /** status of the message */ + error TextBlob /** error description if status error */ +} + +/** +* type of events managed by self-healing +* +* @author Tecnalia +*/ +entity EventType { + code String required /** event type code */ + description String /** event type description */ +} + +/** +* strategys managed by self-healing +* +* @author Tecnalia +*/ +entity Strategy { + code String required /** strategy code */ + description String /** strategy description */ + configuration TextBlob /** business process modelling annotation to propose*/ +} + +/** +* deployment of self-healing +* +* @author Tecnalia +*/ +entity Deployment { + deploymentId String required /** deployment id */ + workingPath TextBlob /** business process modelling annotation to propose*/ +} + +/** +* strategyApplication of self-healing +* +* @author Tecnalia +*/ +entity StrategyApplication { + timestamp Instant /** strategyApplication timestamp */ + summary TextBlob /** json with summary of strategyApplication */ +} + +relationship ManyToOne { + SelfHealingMessage{eventType(code)} to EventType + StrategyApplication{strategy(code)} to Strategy + StrategyApplication{deploymentId} to Deployment + EventType{strategy(code)} to Strategy +} + +// skipClient * +microservice SelfHealingMessage, EventType, Strategy, Deployment, StrategyApplication with shBackend +clientRootFolder SelfHealingMessage with shBackend diff --git a/git/sh-backend/.dockerignore b/git/sh-backend/.dockerignore deleted file mode 100644 index 59b782addde73800d41eea002face0296ffcf246..0000000000000000000000000000000000000000 --- a/git/sh-backend/.dockerignore +++ /dev/null @@ -1,3 +0,0 @@ -target -node_modules -Dockerfile \ No newline at end of file diff --git a/git/sh-backend/.husky/pre-commit b/git/sh-backend/.husky/pre-commit deleted file mode 100644 index 45cf320f2a4f5930681eb665a57066defad9af63..0000000000000000000000000000000000000000 --- a/git/sh-backend/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -npm exec --no lint-staged \ No newline at end of file diff --git a/git/sh-backend/.jhipster/Deployment.json b/git/sh-backend/.jhipster/Deployment.json new file mode 100644 index 0000000000000000000000000000000000000000..45862034a449362e2528be181e820ed8b11df4e6 --- /dev/null +++ b/git/sh-backend/.jhipster/Deployment.json @@ -0,0 +1,33 @@ +{ + "name": "Deployment", + "fields": [ + { + "fieldName": "deploymentId", + "fieldType": "String", + "javadoc": "deployment id", + "fieldValidateRules": ["required", "unique"] + }, + { + "fieldName": "bundle", + "fieldType": "byte[]", + "javadoc": "information about the deployment zip bundle", + "fieldTypeBlobContent": "any", + "fieldValidateRules": ["required"] + } + ], + "relationships": [], + "javadoc": "deployment of self-healing\\n\\n@author Tecnalia", + "entityTableName": "deployment", + "dto": "no", + "pagination": "no", + "service": "no", + "jpaMetamodelFiltering": false, + "fluentMethods": true, + "readOnly": false, + "embedded": false, + "applications": ["shBackend"], + "microserviceName": "shBackend", + "clientRootFolder": "shBackend", + "databaseType": "sql", + "changelogDate": "20231227191841" +} diff --git a/git/sh-backend/.jhipster/EventType.json b/git/sh-backend/.jhipster/EventType.json index 1c9c850fcc385aff25bdbd126398434c4479e2ca..0287dbe906225a247cea2bb7b736752521012521 100644 --- a/git/sh-backend/.jhipster/EventType.json +++ b/git/sh-backend/.jhipster/EventType.json @@ -5,7 +5,7 @@ "fieldName": "code", "fieldType": "String", "javadoc": "event type code", - "fieldValidateRules": ["required"] + "fieldValidateRules": ["required", "unique"] }, { "fieldName": "description", @@ -20,6 +20,13 @@ "otherEntityRelationshipName": "eventType", "relationshipName": "strategy", "otherEntityField": "code" + }, + { + "relationshipType": "many-to-one", + "otherEntityName": "deployment", + "otherEntityRelationshipName": "eventType", + "relationshipName": "deployment", + "otherEntityField": "deploymentId" } ], "javadoc": "type of events managed by self-healing\\n\\n@author Tecnalia", @@ -31,10 +38,9 @@ "fluentMethods": true, "readOnly": false, "embedded": false, - "applications": "*", - "skipClient": true, + "applications": ["shBackend"], "microserviceName": "shBackend", "clientRootFolder": "shBackend", "databaseType": "sql", - "changelogDate": "20211028090037" + "changelogDate": "20231227191641" } diff --git a/git/sh-backend/.jhipster/SelfHealingMessage.json b/git/sh-backend/.jhipster/SelfHealingMessage.json index d0c73024ddd5dcc993e3f8c651f74b24f51a8c79..f7a674707f4062599f96be88ce9f5976ede7b3c8 100644 --- a/git/sh-backend/.jhipster/SelfHealingMessage.json +++ b/git/sh-backend/.jhipster/SelfHealingMessage.json @@ -1,6 +1,11 @@ { "name": "SelfHealingMessage", "fields": [ + { + "fieldName": "timestamp", + "fieldType": "Instant", + "javadoc": "message timestamp" + }, { "fieldName": "origin", "fieldType": "String", @@ -8,25 +13,21 @@ "fieldValidateRules": ["required"] }, { - "fieldName": "applicationId", + "fieldName": "deploymentId", "fieldType": "String", "javadoc": "id of app related to message" }, - { - "fieldName": "timestamp", - "fieldType": "Instant", - "javadoc": "message timestamp" - }, { "fieldName": "status", "fieldType": "Status", "javadoc": "status of the message", - "fieldValues": "PENDING (Pending),PROCESSED (Processed),ERROR (Error)" + "fieldValues": "PENDING (Pending),PROCESSED (Processed),IGNORED (Ignored),ERROR (Error)" }, { "fieldName": "error", - "fieldType": "String", - "javadoc": "error description if status error" + "fieldType": "byte[]", + "javadoc": "error description if status error", + "fieldTypeBlobContent": "text" } ], "relationships": [ @@ -34,12 +35,11 @@ "relationshipType": "many-to-one", "otherEntityName": "eventType", "otherEntityRelationshipName": "selfHealingMessage", - "relationshipValidateRules": "required", "relationshipName": "eventType", "otherEntityField": "code" } ], - "javadoc": "Messages received definition\\n\\n@author Tecnalia", + "javadoc": "Messages received definition https:\\n\\n@author Tecnalia", "entityTableName": "self_healing_message", "dto": "no", "pagination": "no", @@ -48,10 +48,9 @@ "fluentMethods": true, "readOnly": false, "embedded": false, - "applications": "*", - "skipClient": true, + "applications": ["shBackend"], "microserviceName": "shBackend", "clientRootFolder": "shBackend", "databaseType": "sql", - "changelogDate": "20211028090036" + "changelogDate": "20231227191541" } diff --git a/git/sh-backend/.jhipster/SelfHealingResponse.json b/git/sh-backend/.jhipster/SelfHealingResponse.json deleted file mode 100644 index 96edabf20478aefc08fd9e2a02c1c0d7596ea174..0000000000000000000000000000000000000000 --- a/git/sh-backend/.jhipster/SelfHealingResponse.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "SelfHealingResponse", - "fields": [ - { - "fieldName": "processed", - "fieldType": "Boolean", - "javadoc": "message processed ack", - "fieldValidateRules": ["required"] - }, - { - "fieldName": "error", - "fieldType": "String", - "javadoc": "error description in case of processed false" - } - ], - "relationships": [ - { - "relationshipType": "one-to-one", - "otherEntityName": "selfHealingMessage", - "otherEntityRelationshipName": "selfHealingResponse", - "relationshipValidateRules": "required", - "relationshipName": "selfHealingMessage", - "ownerSide": true - } - ], - "javadoc": "Response messages definition\\n\\n@author Tecnalia", - "entityTableName": "self_healing_response", - "dto": "no", - "pagination": "no", - "service": "no", - "jpaMetamodelFiltering": false, - "fluentMethods": true, - "readOnly": false, - "embedded": false, - "applications": "*", - "skipClient": true, - "microserviceName": "shBackend", - "clientRootFolder": "shBackend", - "databaseType": "sql", - "changelogDate": "20211028090039" -} diff --git a/git/sh-backend/.jhipster/Strategy.json b/git/sh-backend/.jhipster/Strategy.json index 5cc4f3f985bed3819713e0b19795f3bd801e469b..0921e74e8e1d2eb4d51aa4eaaf5aaff9d0753340 100644 --- a/git/sh-backend/.jhipster/Strategy.json +++ b/git/sh-backend/.jhipster/Strategy.json @@ -5,7 +5,7 @@ "fieldName": "code", "fieldType": "String", "javadoc": "strategy code", - "fieldValidateRules": ["required"] + "fieldValidateRules": ["required", "unique"] }, { "fieldName": "description", @@ -13,18 +13,19 @@ "javadoc": "strategy description" }, { - "fieldName": "bpmn", - "fieldType": "String", - "javadoc": "business process modelling annotation to propose" + "fieldName": "configuration", + "fieldType": "byte[]", + "javadoc": "business process modelling annotation to propose", + "fieldTypeBlobContent": "text" } ], "relationships": [ { - "relationshipType": "one-to-many", - "otherEntityName": "eventType", + "relationshipType": "many-to-one", + "otherEntityName": "deployment", "otherEntityRelationshipName": "strategy", - "relationshipName": "eventType", - "otherEntityField": "code" + "relationshipName": "deployment", + "otherEntityField": "deploymentId" } ], "javadoc": "strategys managed by self-healing\\n\\n@author Tecnalia", @@ -36,10 +37,9 @@ "fluentMethods": true, "readOnly": false, "embedded": false, - "applications": "*", - "skipClient": true, + "applications": ["shBackend"], "microserviceName": "shBackend", "clientRootFolder": "shBackend", "databaseType": "sql", - "changelogDate": "20211028090038" + "changelogDate": "20231227191741" } diff --git a/git/sh-backend/.jhipster/StrategyApplication.json b/git/sh-backend/.jhipster/StrategyApplication.json new file mode 100644 index 0000000000000000000000000000000000000000..8a7a9f87cedb38e390b3a61c8835318008a30983 --- /dev/null +++ b/git/sh-backend/.jhipster/StrategyApplication.json @@ -0,0 +1,52 @@ +{ + "name": "StrategyApplication", + "fields": [ + { + "fieldName": "timestamp", + "fieldType": "Instant", + "javadoc": "strategyApplication timestamp" + }, + { + "fieldName": "summary", + "fieldType": "byte[]", + "javadoc": "json with summary of strategyApplication", + "fieldTypeBlobContent": "text" + }, + { + "fieldName": "bundle", + "fieldType": "byte[]", + "javadoc": "optional bundle with strategyApplication resources", + "fieldTypeBlobContent": "any" + } + ], + "relationships": [ + { + "relationshipType": "many-to-one", + "otherEntityName": "strategy", + "otherEntityRelationshipName": "strategyApplication", + "relationshipName": "strategy", + "otherEntityField": "code" + }, + { + "relationshipType": "many-to-one", + "otherEntityName": "deployment", + "otherEntityRelationshipName": "strategyApplication", + "relationshipName": "deployment", + "otherEntityField": "deploymentId" + } + ], + "javadoc": "strategyApplication of self-healing\\n\\n@author Tecnalia", + "entityTableName": "strategy_application", + "dto": "no", + "pagination": "no", + "service": "no", + "jpaMetamodelFiltering": false, + "fluentMethods": true, + "readOnly": false, + "embedded": false, + "applications": ["shBackend"], + "microserviceName": "shBackend", + "clientRootFolder": "shBackend", + "databaseType": "sql", + "changelogDate": "20231227191941" +} diff --git a/git/sh-backend/.lintstagedrc.js b/git/sh-backend/.lintstagedrc.js deleted file mode 100644 index dad28939e21bc7e81a00f901e97b88bc3f133d00..0000000000000000000000000000000000000000 --- a/git/sh-backend/.lintstagedrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - '{,src/**/}*.{md,json,yml,html,java}': ['prettier --write'], -}; diff --git a/git/sh-backend/.yo-rc-global.json b/git/sh-backend/.yo-rc-global.json deleted file mode 100644 index 310ae751124e59421532670fc14bfabf4ec2a408..0000000000000000000000000000000000000000 --- a/git/sh-backend/.yo-rc-global.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "generator-jhipster:7.2.0": { - "promptValues": { - "packageName": "com.piacere.selfhealing.backend", - "nativeLanguage": "en" - } - } -} diff --git a/git/sh-backend/.yo-rc.json b/git/sh-backend/.yo-rc.json index dc4cccaad40e4e87e0914cce63c6311c7733e7b3..34da01864fd1444f372b9998072253a6e9203c53 100644 --- a/git/sh-backend/.yo-rc.json +++ b/git/sh-backend/.yo-rc.json @@ -1,44 +1,52 @@ { "generator-jhipster": { - "applicationType": "microservice", + "authenticationType": "jwt", + "cacheProvider": "hazelcast", + "serverPort": "8081", + "serviceDiscoveryType": "eureka", + "skipUserManagement": true, "baseName": "shBackend", - "jhipsterVersion": "7.2.0", + "buildTool": "maven", + "databaseType": "sql", + "devDatabaseType": "mysql", + "enableHibernateCache": true, + "enableSwaggerCodegen": false, + "enableTranslation": true, + "jhiPrefix": "jhi", + "languages": ["en"], + "messageBroker": "kafka", + "prodDatabaseType": "mysql", + "searchEngine": false, "skipClient": true, - "withAdminUi": false, - "skipUserManagement": true, + "testFrameworks": [], + "websocket": false, + "enableGradleEnterprise": false, + "gradleEnterpriseHost": "", + "applicationType": "microservice", + "clientPackageManager": "npm", + "dtoSuffix": "DTO", + "jwtSecretKey": "MDBhMjI4YTczOWZlZjFhOTMzMDMyNmI1OGFiODViZjFkMzlkMzI1ZDJjZmNiOGM1YmVlNDJjNDhkNDQ3Mzk4YjEyZmIxZmYzODRhMWZmMDE0MDZlYjViOTNlNjk1Y2I1M2ZjYWQ3NmJkOGZlOWVhNDRjZTZkODgyZDNlOWRjZDI=", + "nativeLanguage": "en", + "packageName": "com.piacere.selfhealing.backend", + "packageFolder": "com/piacere/selfhealing/backend", + "reactive": false, + "jhipsterVersion": "7.2.0", + "entitySuffix": "", + "applicationIndex": 0, + "entities": ["SelfHealingMessage", "EventType", "Strategy", "Deployment", "StrategyApplication"], "skipServer": false, "skipCheckLengthOfIdentifier": false, "skipFakeData": false, - "jhiPrefix": "jhi", - "entitySuffix": "", - "dtoSuffix": "DTO", - "testFrameworks": [], "blueprints": [], "otherModules": [], "pages": [], - "creationTimestamp": 1633014842153, - "serviceDiscoveryType": "eureka", - "reactive": false, - "authenticationType": "jwt", - "packageName": "com.piacere.selfhealing.backend", - "serverPort": "8081", - "cacheProvider": "hazelcast", - "enableHibernateCache": false, - "databaseType": "sql", - "devDatabaseType": "mysql", - "prodDatabaseType": "mysql", - "buildTool": "maven", - "serverSideOptions": ["messageBroker:kafka"], - "websocket": false, - "searchEngine": false, - "messageBroker": "kafka", - "enableSwaggerCodegen": false, - "enableTranslation": false, - "nativeLanguage": "en", - "jwtSecretKey": "YTEwNjM0NWQ5NmI1M2ExZDRmMjAzOGVlYzIyZWVlNzY1ZDRmY2Q0NWEzODUyMzYxMjYyOTA1ZjlhMGQzNjVmMzE5ZDhkNGYyMDY1ZjdhZjBiNTc3YjBkZmViMjRhMTY5NDM5Mzk2ODZkMjI5MDFkNDJkMzFkNWQ2MGNlMzU1NmE=", - "enableGradleEnterprise": false, - "languages": ["en", "fr"], - "lastLiquibaseTimestamp": 1635411639000, - "entities": ["SelfHealingMessage", "EventType", "Strategy", "SelfHealingResponse"] + "clientFramework": "angularX", + "clientTheme": "none", + "clientThemeVariant": "", + "withAdminUi": false, + "creationTimestamp": 1703704481448, + "monorepository": true, + "skipCommitHook": true, + "lastLiquibaseTimestamp": 1703704781000 } } diff --git a/git/sh-backend/Dockerfile b/git/sh-backend/Dockerfile index 51bc22fbbd56e2f255d49fcb023803a638306f4f..5152fbaada3807d15ed40e4af41ab562acc604b7 100644 --- a/git/sh-backend/Dockerfile +++ b/git/sh-backend/Dockerfile @@ -1,40 +1,45 @@ FROM maven:3.8.1-jdk-11 as builder + +COPY clients /home/clients +RUN cd /home/clients/prc && \ + mvn -f pom.xml -DskipTests install + WORKDIR /code COPY pom.xml /code/pom.xml # this does not seem to work as expected RUN mvn -Pprod,dev,api-docs dependency:resolve-plugins dependency:go-offline -B # https://github.com/qaware/go-offline-maven-plugin proposes an alternative that seems to work better, but not perfectly as there are two dependencies taht I need to download manually RUN \ - mvn -DgroupId=org.glassfish.jaxb -DartifactId=jaxb-runtime -Dversion=2.3.3 dependency:get && \ + mvn -DgroupId=org.glassfish.jaxb -DartifactId=jaxb-runtime -Dversion=2.3.3 dependency:get && \ mvn -DgroupId=org.jboss.logging -DartifactId=jboss-logging -Dversion=3.4.1.Final dependency:get && \ - mvn -Pprod,api-docs,no-liquibase de.qaware.maven:go-offline-maven-plugin:resolve-dependencies -B + mvn -Pprod,api-docs de.qaware.maven:go-offline-maven-plugin:resolve-dependencies -B COPY package.json /code/package.json COPY package-lock.json /code/package-lock.json # RUN \ -# mvn -o -DnodeVersion=v14.16.0 -DnpmVersion=7.8.0 -Pprod,api-docs,no-liquibase com.github.eirslett:frontend-maven-plugin:install-node-and-npm com.github.eirslett:frontend-maven-plugin:npm -Dmaven.test.skip=true +# mvn -o -DnodeVersion=v14.16.0 -DnpmVersion=7.8.0 -Pprod,api-docs com.github.eirslett:frontend-maven-plugin:install-node-and-npm com.github.eirslett:frontend-maven-plugin:npm -Dmaven.test.skip=true COPY *.* /code/ COPY .* /code/ # https://pkg.go.dev/path/filepath#Match -RUN mvn -o generate-resources -Pprod,api-docs,no-liquibase -Dmaven.test.skip=true +RUN mvn -o generate-resources -Pprod,api-docs -Dmaven.test.skip=true COPY [^Dockerfile]* /code/ -# copy all except docker file +# copy all except docker file COPY src/main /code/src/main COPY src /code/src # copy remaining content on main and src # https://github.com/eirslett/frontend-maven-plugin#skipping-execution -RUN mvn -o package spring-boot:repackage -Pprod,api-docs,no-liquibase -DskipTests -Dskip.npm -Dskip.yarn -Dskip.bower -Dskip.grunt -Dskip.gulp -Dskip.jspm -Dskip.karma -Dskip.webpack && \ +RUN mvn -o package spring-boot:repackage -Pprod,api-docs -DskipTests -Dskip.npm -Dskip.yarn -Dskip.bower -Dskip.grunt -Dskip.gulp -Dskip.jspm -Dskip.karma -Dskip.webpack && \ mv ./target/*.jar /backend.jar FROM adoptopenjdk:11-jre-hotspot ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \ JAVA_OPTS="-Xmx512m -Xms256m" \ JHIPSTER_SLEEP=10 \ - RUN_PROFILE=prod,api-docs,no-liquibase + RUN_PROFILE=prod,api-docs EXPOSE 8081 @@ -42,8 +47,7 @@ ARG EXTRA_CA_URL RUN /bin/bash -c "[ -z $EXTRA_CA_URL ] || ( curl -s $EXTRA_CA_URL --output /ca.pem && keytool -import -noprompt -trustcacerts -alias ca -file /ca.pem -cacerts -storepass changeit )" # to check if ca is installed keytool -list -cacerts -alias ca --storepass changeit -COPY --from=builder /backend.jar . +COPY --from=builder /backend.jar . CMD echo "The backend will start in ${JHIPSTER_SLEEP}s..." && \ sleep $JHIPSTER_SLEEP && \ java $JAVA_OPTS -Dspring.profiles.active=$RUN_PROFILE -jar /backend.jar - \ No newline at end of file diff --git a/git/sh-backend/clients/prc/.github/workflows/maven.yml b/git/sh-backend/clients/prc/.github/workflows/maven.yml new file mode 100644 index 0000000000000000000000000000000000000000..23ce5efa4d6e13b22a086746e64f9a1e75908223 --- /dev/null +++ b/git/sh-backend/clients/prc/.github/workflows/maven.yml @@ -0,0 +1,30 @@ +# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven +# +# This file is auto-generated by OpenAPI Generator (https://openapi-generator.tech) + +name: Java CI with Maven + +on: + push: + branches: [ main, master ] + pull_request: + branches: [ main, master ] + +jobs: + build: + name: Build FastAPI + runs-on: ubuntu-latest + strategy: + matrix: + java: [ '8' ] + steps: + - uses: actions/checkout@v2 + - name: Set up JDK + uses: actions/setup-java@v2 + with: + java-version: ${{ matrix.java }} + distribution: 'temurin' + cache: maven + - name: Build with Maven + run: mvn -B package --no-transfer-progress --file pom.xml diff --git a/git/sh-backend/clients/prc/.openapi-generator-ignore b/git/sh-backend/clients/prc/.openapi-generator-ignore new file mode 100644 index 0000000000000000000000000000000000000000..7484ee590a3894506cf063799b885428f95a71be --- /dev/null +++ b/git/sh-backend/clients/prc/.openapi-generator-ignore @@ -0,0 +1,23 @@ +# OpenAPI Generator Ignore +# Generated by openapi-generator https://github.com/openapitools/openapi-generator + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/git/sh-backend/clients/prc/.openapi-generator/FILES b/git/sh-backend/clients/prc/.openapi-generator/FILES new file mode 100644 index 0000000000000000000000000000000000000000..60c74ed9a1f99b2f73bf204914268757d640b57b --- /dev/null +++ b/git/sh-backend/clients/prc/.openapi-generator/FILES @@ -0,0 +1,55 @@ +.github/workflows/maven.yml +.gitignore +.travis.yml +README.md +api/openapi.yaml +build.gradle +build.sbt +docs/DefaultApi.md +docs/DeploymentBundle.md +docs/DeploymentStatus.md +docs/HTTPValidationError.md +docs/NewDeployment.md +docs/SelfHealing.md +docs/ValidationError.md +git_push.sh +gradle.properties +gradle/wrapper/gradle-wrapper.jar +gradle/wrapper/gradle-wrapper.properties +gradlew +gradlew.bat +pom.xml +settings.gradle +src/main/AndroidManifest.xml +src/main/java/eu/piacere/prc/client/ApiCallback.java +src/main/java/eu/piacere/prc/client/ApiClient.java +src/main/java/eu/piacere/prc/client/ApiException.java +src/main/java/eu/piacere/prc/client/ApiResponse.java +src/main/java/eu/piacere/prc/client/Configuration.java +src/main/java/eu/piacere/prc/client/GzipRequestInterceptor.java +src/main/java/eu/piacere/prc/client/JSON.java +src/main/java/eu/piacere/prc/client/Pair.java +src/main/java/eu/piacere/prc/client/ProgressRequestBody.java +src/main/java/eu/piacere/prc/client/ProgressResponseBody.java +src/main/java/eu/piacere/prc/client/ServerConfiguration.java +src/main/java/eu/piacere/prc/client/ServerVariable.java +src/main/java/eu/piacere/prc/client/StringUtil.java +src/main/java/eu/piacere/prc/client/api/DefaultApi.java +src/main/java/eu/piacere/prc/client/auth/ApiKeyAuth.java +src/main/java/eu/piacere/prc/client/auth/Authentication.java +src/main/java/eu/piacere/prc/client/auth/HttpBasicAuth.java +src/main/java/eu/piacere/prc/client/auth/HttpBearerAuth.java +src/main/java/eu/piacere/prc/client/model/AbstractOpenApiSchema.java +src/main/java/eu/piacere/prc/client/model/DeploymentBundle.java +src/main/java/eu/piacere/prc/client/model/DeploymentStatus.java +src/main/java/eu/piacere/prc/client/model/HTTPValidationError.java +src/main/java/eu/piacere/prc/client/model/NewDeployment.java +src/main/java/eu/piacere/prc/client/model/SelfHealing.java +src/main/java/eu/piacere/prc/client/model/ValidationError.java +src/test/java/eu/piacere/prc/client/api/DefaultApiTest.java +src/test/java/eu/piacere/prc/client/model/DeploymentBundleTest.java +src/test/java/eu/piacere/prc/client/model/DeploymentStatusTest.java +src/test/java/eu/piacere/prc/client/model/HTTPValidationErrorTest.java +src/test/java/eu/piacere/prc/client/model/NewDeploymentTest.java +src/test/java/eu/piacere/prc/client/model/SelfHealingTest.java +src/test/java/eu/piacere/prc/client/model/ValidationErrorTest.java diff --git a/git/sh-backend/clients/prc/.openapi-generator/VERSION b/git/sh-backend/clients/prc/.openapi-generator/VERSION new file mode 100644 index 0000000000000000000000000000000000000000..c0be8a7992aa58d31f90d166286ea3276b2e3a94 --- /dev/null +++ b/git/sh-backend/clients/prc/.openapi-generator/VERSION @@ -0,0 +1 @@ +6.4.0 \ No newline at end of file diff --git a/git/sh-backend/clients/prc/.travis.yml b/git/sh-backend/clients/prc/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..1b6741c083c7908f5eeaccf5584d3f475052ca55 --- /dev/null +++ b/git/sh-backend/clients/prc/.travis.yml @@ -0,0 +1,22 @@ +# +# Generated by OpenAPI Generator: https://openapi-generator.tech +# +# Ref: https://docs.travis-ci.com/user/languages/java/ +# +language: java +jdk: + - openjdk12 + - openjdk11 + - openjdk10 + - openjdk9 + - openjdk8 +before_install: + # ensure gradlew has proper permission + - chmod a+x ./gradlew +script: + # test using maven + #- mvn test + # test using gradle + - gradle test + # test using sbt + # - sbt test diff --git a/git/sh-backend/clients/prc/README.md b/git/sh-backend/clients/prc/README.md new file mode 100644 index 0000000000000000000000000000000000000000..a04b0b9efe9b9e2367eb9f7c7fc430e6ec7ab539 --- /dev/null +++ b/git/sh-backend/clients/prc/README.md @@ -0,0 +1,147 @@ +# eu.piacere.prc.client + +FastAPI +- API version: 0.1.0 + - Build date: 2023-12-15T05:19:30.390898200+01:00[Europe/Madrid] + +No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + + +*Automatically generated by the [OpenAPI Generator](https://openapi-generator.tech)* + + +## Requirements + +Building the API client library requires: +1. Java 1.8+ +2. Maven (3.8.3+)/Gradle (7.2+) + +## Installation + +To install the API client library to your local Maven repository, simply execute: + +```shell +mvn clean install +``` + +To deploy it to a remote Maven repository instead, configure the settings of the repository and execute: + +```shell +mvn clean deploy +``` + +Refer to the [OSSRH Guide](http://central.sonatype.org/pages/ossrh-guide.html) for more information. + +### Maven users + +Add this dependency to your project's POM: + +```xml +<dependency> + <groupId>eu.piacere</groupId> + <artifactId>eu.piacere.prc.client</artifactId> + <version>0.1.0</version> + <scope>compile</scope> +</dependency> +``` + +### Gradle users + +Add this dependency to your project's build file: + +```groovy + repositories { + mavenCentral() // Needed if the 'eu.piacere.prc.client' jar has been published to maven central. + mavenLocal() // Needed if the 'eu.piacere.prc.client' jar has been published to the local maven repo. + } + + dependencies { + implementation "eu.piacere:eu.piacere.prc.client:0.1.0" + } +``` + +### Others + +At first generate the JAR by executing: + +```shell +mvn clean package +``` + +Then manually install the following JARs: + +* `target/eu.piacere.prc.client-0.1.0.jar` +* `target/lib/*.jar` + +## Getting Started + +Please follow the [installation](#installation) instruction and execute the following Java code: + +```java + +// Import classes: +import eu.piacere.prc.client.ApiClient; +import eu.piacere.prc.client.ApiException; +import eu.piacere.prc.client.Configuration; +import eu.piacere.prc.client.models.*; +import eu.piacere.prc.client.api.DefaultApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + DefaultApi apiInstance = new DefaultApi(defaultClient); + NewDeployment newDeployment = new NewDeployment(); // NewDeployment | + try { + Object result = apiInstance.createNewDeploymentDeploymentsPost(newDeployment); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DefaultApi#createNewDeploymentDeploymentsPost"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} + +``` + +## Documentation for API Endpoints + +All URIs are relative to *http://localhost* + +Class | Method | HTTP request | Description +------------ | ------------- | ------------- | ------------- +*DefaultApi* | [**createNewDeploymentDeploymentsPost**](docs/DefaultApi.md#createNewDeploymentDeploymentsPost) | **POST** /deployments | Create New Deployment +*DefaultApi* | [**getAllDeploymentsDeploymentsGet**](docs/DefaultApi.md#getAllDeploymentsDeploymentsGet) | **GET** /deployments | Get All Deployments +*DefaultApi* | [**getDeploymentDeploymentsDeploymentIdGet**](docs/DefaultApi.md#getDeploymentDeploymentsDeploymentIdGet) | **GET** /deployments/{deployment_id} | Get Deployment +*DefaultApi* | [**redeployDeploymentsDeploymentIdRedeployPost**](docs/DefaultApi.md#redeployDeploymentsDeploymentIdRedeployPost) | **POST** /deployments/{deployment_id}/redeploy | Redeploy +*DefaultApi* | [**selfHealingDeploymentsDeploymentIdSelfHealingPost**](docs/DefaultApi.md#selfHealingDeploymentsDeploymentIdSelfHealingPost) | **POST** /deployments/{deployment_id}/self-healing | Self Healing +*DefaultApi* | [**undeployDeploymentsDeploymentIdUndeployPost**](docs/DefaultApi.md#undeployDeploymentsDeploymentIdUndeployPost) | **POST** /deployments/{deployment_id}/undeploy | Undeploy + + +## Documentation for Models + + - [DeploymentBundle](docs/DeploymentBundle.md) + - [DeploymentStatus](docs/DeploymentStatus.md) + - [HTTPValidationError](docs/HTTPValidationError.md) + - [NewDeployment](docs/NewDeployment.md) + - [SelfHealing](docs/SelfHealing.md) + - [ValidationError](docs/ValidationError.md) + + +## Documentation for Authorization + +All endpoints do not require authorization. +Authentication schemes defined for the API: + +## Recommendation + +It's recommended to create an instance of `ApiClient` per thread in a multithreaded environment to avoid any potential issues. + +## Author + + + diff --git a/git/sh-backend/clients/prc/api/openapi.yaml b/git/sh-backend/clients/prc/api/openapi.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5fdfaf02679c96a3aee097950e9440dabf2a7fa4 --- /dev/null +++ b/git/sh-backend/clients/prc/api/openapi.yaml @@ -0,0 +1,258 @@ +openapi: 3.0.2 +info: + title: FastAPI + version: 0.1.0 +servers: +- url: / +paths: + /deployments: + get: + operationId: get_all_deployments_deployments_get + responses: + "200": + content: + application/json: + schema: + items: + $ref: '#/components/schemas/DeploymentStatus' + title: Response Get All Deployments Deployments Get + type: array + description: Successful Response + summary: Get All Deployments + x-accepts: application/json + post: + operationId: create_new_deployment_deployments_post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/NewDeployment' + required: true + responses: + "200": + content: + application/json: + schema: {} + description: Successful Response + "422": + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + description: Validation Error + summary: Create New Deployment + x-content-type: application/json + x-accepts: application/json + /deployments/{deployment_id}/redeploy: + post: + operationId: redeploy_deployments__deployment_id__redeploy_post + parameters: + - explode: false + in: path + name: deployment_id + required: true + schema: + title: Deployment Id + type: string + style: simple + responses: + "200": + content: + application/json: + schema: {} + description: Successful Response + "422": + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + description: Validation Error + summary: Redeploy + x-accepts: application/json + /deployments/{deployment_id}/undeploy: + post: + operationId: undeploy_deployments__deployment_id__undeploy_post + parameters: + - explode: false + in: path + name: deployment_id + required: true + schema: + title: Deployment Id + type: string + style: simple + responses: + "200": + content: + application/json: + schema: {} + description: Successful Response + "422": + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + description: Validation Error + summary: Undeploy + x-accepts: application/json + /deployments/{deployment_id}: + get: + operationId: get_deployment_deployments__deployment_id__get + parameters: + - explode: false + in: path + name: deployment_id + required: true + schema: + title: Deployment Id + type: string + style: simple + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/DeploymentStatus' + description: Successful Response + "422": + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + description: Validation Error + summary: Get Deployment + x-accepts: application/json + /deployments/{deployment_id}/self-healing: + post: + operationId: self_healing_deployments__deployment_id__self_healing_post + parameters: + - explode: false + in: path + name: deployment_id + required: true + schema: + title: Deployment Id + type: string + style: simple + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SelfHealing' + required: true + responses: + "200": + content: + application/json: + schema: {} + description: Successful Response + "422": + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + description: Validation Error + summary: Self Healing + x-content-type: application/json + x-accepts: application/json +components: + schemas: + DeploymentBundle: + example: + base64: base64 + properties: + base64: + title: Base64 + type: string + required: + - base64 + title: DeploymentBundle + type: object + DeploymentStatus: + example: + iem_stdout: iem_stdout + deployment_id: deployment_id + iem_status: iem_status + iem_stderr: iem_stderr + properties: + deployment_id: + title: Deployment Id + type: string + iem_status: + title: Iem Status + type: string + iem_stdout: + title: Iem Stdout + type: string + iem_stderr: + title: Iem Stderr + type: string + required: + - deployment_id + - iem_status + title: DeploymentStatus + type: object + HTTPValidationError: + properties: + detail: + items: + $ref: '#/components/schemas/ValidationError' + title: Detail + type: array + title: HTTPValidationError + type: object + NewDeployment: + example: + credentials: + key: "{}" + deployment_bundle: + base64: base64 + deployment_id: deployment_id + properties: + deployment_id: + title: Deployment Id + type: string + deployment_bundle: + $ref: '#/components/schemas/DeploymentBundle' + credentials: + additionalProperties: + type: object + title: Credentials + type: object + required: + - credentials + - deployment_bundle + - deployment_id + title: NewDeployment + type: object + SelfHealing: + example: + playbook: playbook + properties: + playbook: + title: Playbook + type: string + required: + - playbook + title: SelfHealing + type: object + ValidationError: + properties: + loc: + items: + type: string + title: Location + type: array + msg: + title: Message + type: string + type: + title: Error Type + type: string + required: + - loc + - msg + - type + title: ValidationError + type: object + diff --git a/git/sh-backend/clients/prc/build.gradle b/git/sh-backend/clients/prc/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..bc28584472a387b1ce08ba22d5cac1809027d7cb --- /dev/null +++ b/git/sh-backend/clients/prc/build.gradle @@ -0,0 +1,168 @@ +apply plugin: 'idea' +apply plugin: 'eclipse' +apply plugin: 'java' +apply plugin: 'com.diffplug.spotless' + +group = 'eu.piacere' +version = '0.1.0' + +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.3.+' + classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' + classpath 'com.diffplug.spotless:spotless-plugin-gradle:6.11.0' + } +} + +repositories { + mavenCentral() +} +sourceSets { + main.java.srcDirs = ['src/main/java'] +} + +if(hasProperty('target') && target == 'android') { + + apply plugin: 'com.android.library' + apply plugin: 'com.github.dcendents.android-maven' + + android { + compileSdkVersion 25 + buildToolsVersion '25.0.2' + defaultConfig { + minSdkVersion 14 + targetSdkVersion 25 + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + // Rename the aar correctly + libraryVariants.all { variant -> + variant.outputs.each { output -> + def outputFile = output.outputFile + if (outputFile != null && outputFile.name.endsWith('.aar')) { + def fileName = "${project.name}-${variant.baseName}-${version}.aar" + output.outputFile = new File(outputFile.parent, fileName) + } + } + } + + dependencies { + provided "jakarta.annotation:jakarta.annotation-api:$jakarta_annotation_version" + } + } + + afterEvaluate { + android.libraryVariants.all { variant -> + def task = project.tasks.create "jar${variant.name.capitalize()}", Jar + task.description = "Create jar artifact for ${variant.name}" + task.dependsOn variant.javaCompile + task.from variant.javaCompile.destinationDir + task.destinationDir = project.file("${project.buildDir}/outputs/jar") + task.archiveName = "${project.name}-${variant.baseName}-${version}.jar" + artifacts.add('archives', task) + } + } + + task sourcesJar(type: Jar) { + from android.sourceSets.main.java.srcDirs + classifier = 'sources' + } + + artifacts { + archives sourcesJar + } + +} else { + + apply plugin: 'java' + apply plugin: 'maven-publish' + + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + + publishing { + publications { + maven(MavenPublication) { + artifactId = 'eu.piacere.prc.client' + from components.java + } + } + } + + task execute(type:JavaExec) { + main = System.getProperty('mainClass') + classpath = sourceSets.main.runtimeClasspath + } +} + +ext { + jakarta_annotation_version = "1.3.5" +} + +dependencies { + implementation 'io.swagger:swagger-annotations:1.6.8' + implementation "com.google.code.findbugs:jsr305:3.0.2" + implementation 'com.squareup.okhttp3:okhttp:4.10.0' + implementation 'com.squareup.okhttp3:logging-interceptor:4.10.0' + implementation 'com.google.code.gson:gson:2.9.1' + implementation 'io.gsonfire:gson-fire:1.8.5' + implementation 'javax.ws.rs:jsr311-api:1.1.1' + implementation 'javax.ws.rs:javax.ws.rs-api:2.1.1' + implementation 'org.openapitools:jackson-databind-nullable:0.2.4' + implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0' + implementation "jakarta.annotation:jakarta.annotation-api:$jakarta_annotation_version" + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.1' + testImplementation 'org.mockito:mockito-core:3.12.4' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.1' +} + +javadoc { + options.tags = [ "http.response.details:a:Http Response Details" ] +} + +// Use spotless plugin to automatically format code, remove unused import, etc +// To apply changes directly to the file, run `gradlew spotlessApply` +// Ref: https://github.com/diffplug/spotless/tree/main/plugin-gradle +spotless { + // comment out below to run spotless as part of the `check` task + enforceCheck false + + format 'misc', { + // define the files (e.g. '*.gradle', '*.md') to apply `misc` to + target '.gitignore' + + // define the steps to apply to those files + trimTrailingWhitespace() + indentWithSpaces() // Takes an integer argument if you don't like 4 + endWithNewline() + } + java { + // don't need to set target, it is inferred from java + + // apply a specific flavor of google-java-format + googleJavaFormat('1.8').aosp().reflowLongStrings() + + removeUnusedImports() + importOrder() + } +} + +test { + // Enable JUnit 5 (Gradle 4.6+). + useJUnitPlatform() + + // Always run tests, even when nothing changed. + dependsOn 'cleanTest' + + // Show test results. + testLogging { + events "passed", "skipped", "failed" + } + +} diff --git a/git/sh-backend/clients/prc/build.sbt b/git/sh-backend/clients/prc/build.sbt new file mode 100644 index 0000000000000000000000000000000000000000..486e5d3114ac16717d22ae0e10ca6cdc38a6b5e3 --- /dev/null +++ b/git/sh-backend/clients/prc/build.sbt @@ -0,0 +1,28 @@ +lazy val root = (project in file(".")). + settings( + organization := "eu.piacere", + name := "eu.piacere.prc.client", + version := "0.1.0", + scalaVersion := "2.11.4", + scalacOptions ++= Seq("-feature"), + javacOptions in compile ++= Seq("-Xlint:deprecation"), + publishArtifact in (Compile, packageDoc) := false, + resolvers += Resolver.mavenLocal, + libraryDependencies ++= Seq( + "io.swagger" % "swagger-annotations" % "1.6.5", + "com.squareup.okhttp3" % "okhttp" % "4.10.0", + "com.squareup.okhttp3" % "logging-interceptor" % "4.10.0", + "com.google.code.gson" % "gson" % "2.9.1", + "org.apache.commons" % "commons-lang3" % "3.12.0", + "javax.ws.rs" % "jsr311-api" % "1.1.1", + "javax.ws.rs" % "javax.ws.rs-api" % "2.1.1", + "org.openapitools" % "jackson-databind-nullable" % "0.2.4", + "io.gsonfire" % "gson-fire" % "1.8.5" % "compile", + "jakarta.annotation" % "jakarta.annotation-api" % "1.3.5" % "compile", + "com.google.code.findbugs" % "jsr305" % "3.0.2" % "compile", + "jakarta.annotation" % "jakarta.annotation-api" % "1.3.5" % "compile", + "org.junit.jupiter" % "junit-jupiter-api" % "5.9.1" % "test", + "com.novocode" % "junit-interface" % "0.10" % "test", + "org.mockito" % "mockito-core" % "3.12.4" % "test" + ) + ) diff --git a/git/sh-backend/clients/prc/docs/DefaultApi.md b/git/sh-backend/clients/prc/docs/DefaultApi.md new file mode 100644 index 0000000000000000000000000000000000000000..b6d924a24e282b5716f051a99ad2a734724b5d84 --- /dev/null +++ b/git/sh-backend/clients/prc/docs/DefaultApi.md @@ -0,0 +1,377 @@ +# DefaultApi + +All URIs are relative to *http://localhost* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createNewDeploymentDeploymentsPost**](DefaultApi.md#createNewDeploymentDeploymentsPost) | **POST** /deployments | Create New Deployment | +| [**getAllDeploymentsDeploymentsGet**](DefaultApi.md#getAllDeploymentsDeploymentsGet) | **GET** /deployments | Get All Deployments | +| [**getDeploymentDeploymentsDeploymentIdGet**](DefaultApi.md#getDeploymentDeploymentsDeploymentIdGet) | **GET** /deployments/{deployment_id} | Get Deployment | +| [**redeployDeploymentsDeploymentIdRedeployPost**](DefaultApi.md#redeployDeploymentsDeploymentIdRedeployPost) | **POST** /deployments/{deployment_id}/redeploy | Redeploy | +| [**selfHealingDeploymentsDeploymentIdSelfHealingPost**](DefaultApi.md#selfHealingDeploymentsDeploymentIdSelfHealingPost) | **POST** /deployments/{deployment_id}/self-healing | Self Healing | +| [**undeployDeploymentsDeploymentIdUndeployPost**](DefaultApi.md#undeployDeploymentsDeploymentIdUndeployPost) | **POST** /deployments/{deployment_id}/undeploy | Undeploy | + + +<a name="createNewDeploymentDeploymentsPost"></a> +# **createNewDeploymentDeploymentsPost** +> Object createNewDeploymentDeploymentsPost(newDeployment) + +Create New Deployment + +### Example +```java +// Import classes: +import eu.piacere.prc.client.ApiClient; +import eu.piacere.prc.client.ApiException; +import eu.piacere.prc.client.Configuration; +import eu.piacere.prc.client.models.*; +import eu.piacere.prc.client.api.DefaultApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + DefaultApi apiInstance = new DefaultApi(defaultClient); + NewDeployment newDeployment = new NewDeployment(); // NewDeployment | + try { + Object result = apiInstance.createNewDeploymentDeploymentsPost(newDeployment); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DefaultApi#createNewDeploymentDeploymentsPost"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **newDeployment** | [**NewDeployment**](NewDeployment.md)| | | + +### Return type + +**Object** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Successful Response | - | +| **422** | Validation Error | - | + +<a name="getAllDeploymentsDeploymentsGet"></a> +# **getAllDeploymentsDeploymentsGet** +> List<DeploymentStatus> getAllDeploymentsDeploymentsGet() + +Get All Deployments + +### Example +```java +// Import classes: +import eu.piacere.prc.client.ApiClient; +import eu.piacere.prc.client.ApiException; +import eu.piacere.prc.client.Configuration; +import eu.piacere.prc.client.models.*; +import eu.piacere.prc.client.api.DefaultApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + DefaultApi apiInstance = new DefaultApi(defaultClient); + try { + List<DeploymentStatus> result = apiInstance.getAllDeploymentsDeploymentsGet(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DefaultApi#getAllDeploymentsDeploymentsGet"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**List<DeploymentStatus>**](DeploymentStatus.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Successful Response | - | + +<a name="getDeploymentDeploymentsDeploymentIdGet"></a> +# **getDeploymentDeploymentsDeploymentIdGet** +> DeploymentStatus getDeploymentDeploymentsDeploymentIdGet(deploymentId) + +Get Deployment + +### Example +```java +// Import classes: +import eu.piacere.prc.client.ApiClient; +import eu.piacere.prc.client.ApiException; +import eu.piacere.prc.client.Configuration; +import eu.piacere.prc.client.models.*; +import eu.piacere.prc.client.api.DefaultApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + DefaultApi apiInstance = new DefaultApi(defaultClient); + String deploymentId = "deploymentId_example"; // String | + try { + DeploymentStatus result = apiInstance.getDeploymentDeploymentsDeploymentIdGet(deploymentId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DefaultApi#getDeploymentDeploymentsDeploymentIdGet"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **deploymentId** | **String**| | | + +### Return type + +[**DeploymentStatus**](DeploymentStatus.md) + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Successful Response | - | +| **422** | Validation Error | - | + +<a name="redeployDeploymentsDeploymentIdRedeployPost"></a> +# **redeployDeploymentsDeploymentIdRedeployPost** +> Object redeployDeploymentsDeploymentIdRedeployPost(deploymentId) + +Redeploy + +### Example +```java +// Import classes: +import eu.piacere.prc.client.ApiClient; +import eu.piacere.prc.client.ApiException; +import eu.piacere.prc.client.Configuration; +import eu.piacere.prc.client.models.*; +import eu.piacere.prc.client.api.DefaultApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + DefaultApi apiInstance = new DefaultApi(defaultClient); + String deploymentId = "deploymentId_example"; // String | + try { + Object result = apiInstance.redeployDeploymentsDeploymentIdRedeployPost(deploymentId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DefaultApi#redeployDeploymentsDeploymentIdRedeployPost"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **deploymentId** | **String**| | | + +### Return type + +**Object** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Successful Response | - | +| **422** | Validation Error | - | + +<a name="selfHealingDeploymentsDeploymentIdSelfHealingPost"></a> +# **selfHealingDeploymentsDeploymentIdSelfHealingPost** +> Object selfHealingDeploymentsDeploymentIdSelfHealingPost(deploymentId, selfHealing) + +Self Healing + +### Example +```java +// Import classes: +import eu.piacere.prc.client.ApiClient; +import eu.piacere.prc.client.ApiException; +import eu.piacere.prc.client.Configuration; +import eu.piacere.prc.client.models.*; +import eu.piacere.prc.client.api.DefaultApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + DefaultApi apiInstance = new DefaultApi(defaultClient); + String deploymentId = "deploymentId_example"; // String | + SelfHealing selfHealing = new SelfHealing(); // SelfHealing | + try { + Object result = apiInstance.selfHealingDeploymentsDeploymentIdSelfHealingPost(deploymentId, selfHealing); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DefaultApi#selfHealingDeploymentsDeploymentIdSelfHealingPost"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **deploymentId** | **String**| | | +| **selfHealing** | [**SelfHealing**](SelfHealing.md)| | | + +### Return type + +**Object** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Successful Response | - | +| **422** | Validation Error | - | + +<a name="undeployDeploymentsDeploymentIdUndeployPost"></a> +# **undeployDeploymentsDeploymentIdUndeployPost** +> Object undeployDeploymentsDeploymentIdUndeployPost(deploymentId) + +Undeploy + +### Example +```java +// Import classes: +import eu.piacere.prc.client.ApiClient; +import eu.piacere.prc.client.ApiException; +import eu.piacere.prc.client.Configuration; +import eu.piacere.prc.client.models.*; +import eu.piacere.prc.client.api.DefaultApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("http://localhost"); + + DefaultApi apiInstance = new DefaultApi(defaultClient); + String deploymentId = "deploymentId_example"; // String | + try { + Object result = apiInstance.undeployDeploymentsDeploymentIdUndeployPost(deploymentId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling DefaultApi#undeployDeploymentsDeploymentIdUndeployPost"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **deploymentId** | **String**| | | + +### Return type + +**Object** + +### Authorization + +No authorization required + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Successful Response | - | +| **422** | Validation Error | - | + diff --git a/git/sh-backend/clients/prc/docs/DeploymentBundle.md b/git/sh-backend/clients/prc/docs/DeploymentBundle.md new file mode 100644 index 0000000000000000000000000000000000000000..3580e30bfa301d6cb8dc1db674a0976770e1890f --- /dev/null +++ b/git/sh-backend/clients/prc/docs/DeploymentBundle.md @@ -0,0 +1,13 @@ + + +# DeploymentBundle + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**base64** | **String** | | | + + + diff --git a/git/sh-backend/clients/prc/docs/DeploymentStatus.md b/git/sh-backend/clients/prc/docs/DeploymentStatus.md new file mode 100644 index 0000000000000000000000000000000000000000..2739c1253d36da01274b1d6e07146b8046600803 --- /dev/null +++ b/git/sh-backend/clients/prc/docs/DeploymentStatus.md @@ -0,0 +1,16 @@ + + +# DeploymentStatus + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**deploymentId** | **String** | | | +|**iemStatus** | **String** | | | +|**iemStdout** | **String** | | [optional] | +|**iemStderr** | **String** | | [optional] | + + + diff --git a/git/sh-backend/clients/prc/docs/HTTPValidationError.md b/git/sh-backend/clients/prc/docs/HTTPValidationError.md new file mode 100644 index 0000000000000000000000000000000000000000..d2d806cdfd0a53c84c544da4fa0fef91ab960b43 --- /dev/null +++ b/git/sh-backend/clients/prc/docs/HTTPValidationError.md @@ -0,0 +1,13 @@ + + +# HTTPValidationError + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**detail** | [**List<ValidationError>**](ValidationError.md) | | [optional] | + + + diff --git a/git/sh-backend/clients/prc/docs/NewDeployment.md b/git/sh-backend/clients/prc/docs/NewDeployment.md new file mode 100644 index 0000000000000000000000000000000000000000..8bc028980efc160ed88b3156fa4fc00093a96e42 --- /dev/null +++ b/git/sh-backend/clients/prc/docs/NewDeployment.md @@ -0,0 +1,15 @@ + + +# NewDeployment + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**deploymentId** | **String** | | | +|**deploymentBundle** | [**DeploymentBundle**](DeploymentBundle.md) | | | +|**credentials** | **Map<String, Object>** | | | + + + diff --git a/git/sh-backend/clients/prc/docs/SelfHealing.md b/git/sh-backend/clients/prc/docs/SelfHealing.md new file mode 100644 index 0000000000000000000000000000000000000000..efcf6a9c58ec3d6def954eacc292a4201808ef45 --- /dev/null +++ b/git/sh-backend/clients/prc/docs/SelfHealing.md @@ -0,0 +1,13 @@ + + +# SelfHealing + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**playbook** | **String** | | | + + + diff --git a/git/sh-backend/clients/prc/docs/ValidationError.md b/git/sh-backend/clients/prc/docs/ValidationError.md new file mode 100644 index 0000000000000000000000000000000000000000..04553a53d0826dcd9086885208b2741f52c24dbf --- /dev/null +++ b/git/sh-backend/clients/prc/docs/ValidationError.md @@ -0,0 +1,15 @@ + + +# ValidationError + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**loc** | **List<String>** | | | +|**msg** | **String** | | | +|**type** | **String** | | | + + + diff --git a/git/sh-backend/clients/prc/git_push.sh b/git/sh-backend/clients/prc/git_push.sh new file mode 100644 index 0000000000000000000000000000000000000000..f53a75d4fabe760cce49eddfd62fcc702938ea90 --- /dev/null +++ b/git/sh-backend/clients/prc/git_push.sh @@ -0,0 +1,57 @@ +#!/bin/sh +# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ +# +# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" "gitlab.com" + +git_user_id=$1 +git_repo_id=$2 +release_note=$3 +git_host=$4 + +if [ "$git_host" = "" ]; then + git_host="github.com" + echo "[INFO] No command line input provided. Set \$git_host to $git_host" +fi + +if [ "$git_user_id" = "" ]; then + git_user_id="GIT_USER_ID" + echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" +fi + +if [ "$git_repo_id" = "" ]; then + git_repo_id="GIT_REPO_ID" + echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" +fi + +if [ "$release_note" = "" ]; then + release_note="Minor update" + echo "[INFO] No command line input provided. Set \$release_note to $release_note" +fi + +# Initialize the local directory as a Git repository +git init + +# Adds the files in the local repository and stages them for commit. +git add . + +# Commits the tracked changes and prepares them to be pushed to a remote repository. +git commit -m "$release_note" + +# Sets the new remote +git_remote=$(git remote) +if [ "$git_remote" = "" ]; then # git remote not defined + + if [ "$GIT_TOKEN" = "" ]; then + echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment." + git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git + else + git remote add origin https://${git_user_id}:"${GIT_TOKEN}"@${git_host}/${git_user_id}/${git_repo_id}.git + fi + +fi + +git pull origin master + +# Pushes (Forces) the changes in the local repository up to the remote repository +echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git" +git push origin master 2>&1 | grep -v 'To https' diff --git a/git/sh-backend/clients/prc/gradle.properties b/git/sh-backend/clients/prc/gradle.properties new file mode 100644 index 0000000000000000000000000000000000000000..a3408578278a3127ad96adfb5d99b6df0bbd07bb --- /dev/null +++ b/git/sh-backend/clients/prc/gradle.properties @@ -0,0 +1,6 @@ +# This file is automatically generated by OpenAPI Generator (https://github.com/openAPITools/openapi-generator). +# To include other gradle properties as part of the code generation process, please use the `gradleProperties` option. +# +# Gradle properties reference: https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties +# For example, uncomment below to build for Android +#target = android diff --git a/git/sh-backend/clients/prc/gradle/wrapper/gradle-wrapper.jar b/git/sh-backend/clients/prc/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..7454180f2ae8848c63b8b4dea2cb829da983f2fa Binary files /dev/null and b/git/sh-backend/clients/prc/gradle/wrapper/gradle-wrapper.jar differ diff --git a/git/sh-backend/clients/prc/gradle/wrapper/gradle-wrapper.properties b/git/sh-backend/clients/prc/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..ffed3a254e91df704a9acc0f2745c0e340d9b582 --- /dev/null +++ b/git/sh-backend/clients/prc/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/git/sh-backend/clients/prc/gradlew b/git/sh-backend/clients/prc/gradlew new file mode 100644 index 0000000000000000000000000000000000000000..005bcde04284b46eb4e3d5ff31181bbac2ec9f16 --- /dev/null +++ b/git/sh-backend/clients/prc/gradlew @@ -0,0 +1,234 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='-Dfile.encoding=UTF-8 "-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/git/sh-backend/clients/prc/gradlew.bat b/git/sh-backend/clients/prc/gradlew.bat new file mode 100644 index 0000000000000000000000000000000000000000..6a68175eb70fc4290bae78dcf4d745a2b52a6a27 --- /dev/null +++ b/git/sh-backend/clients/prc/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS=-Dfile.encoding=UTF-8 "-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/git/sh-backend/clients/prc/openapi.json b/git/sh-backend/clients/prc/openapi.json new file mode 100644 index 0000000000000000000000000000000000000000..f97a49f6e70e277f43d30464d83cefb39b7125c1 --- /dev/null +++ b/git/sh-backend/clients/prc/openapi.json @@ -0,0 +1,345 @@ +{ + "openapi": "3.0.2", + "info": { + "title": "FastAPI", + "version": "0.1.0" + }, + "paths": { + "/deployments": { + "get": { + "summary": "Get All Deployments", + "operationId": "get_all_deployments_deployments_get", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "title": "Response Get All Deployments Deployments Get", + "type": "array", + "items": { + "$ref": "#/components/schemas/DeploymentStatus" + } + } + } + } + } + } + }, + "post": { + "summary": "Create New Deployment", + "operationId": "create_new_deployment_deployments_post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NewDeployment" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": {} + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, + "/deployments/{deployment_id}/redeploy": { + "post": { + "summary": "Redeploy", + "operationId": "redeploy_deployments__deployment_id__redeploy_post", + "parameters": [ + { + "required": true, + "schema": { + "title": "Deployment Id", + "type": "string" + }, + "name": "deployment_id", + "in": "path" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": {} + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, + "/deployments/{deployment_id}/undeploy": { + "post": { + "summary": "Undeploy", + "operationId": "undeploy_deployments__deployment_id__undeploy_post", + "parameters": [ + { + "required": true, + "schema": { + "title": "Deployment Id", + "type": "string" + }, + "name": "deployment_id", + "in": "path" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": {} + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, + "/deployments/{deployment_id}": { + "get": { + "summary": "Get Deployment", + "operationId": "get_deployment_deployments__deployment_id__get", + "parameters": [ + { + "required": true, + "schema": { + "title": "Deployment Id", + "type": "string" + }, + "name": "deployment_id", + "in": "path" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeploymentStatus" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, + "/deployments/{deployment_id}/self-healing": { + "post": { + "summary": "Self Healing", + "operationId": "self_healing_deployments__deployment_id__self_healing_post", + "parameters": [ + { + "required": true, + "schema": { + "title": "Deployment Id", + "type": "string" + }, + "name": "deployment_id", + "in": "path" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SelfHealing" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": {} + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "DeploymentBundle": { + "title": "DeploymentBundle", + "required": [ + "base64" + ], + "type": "object", + "properties": { + "base64": { + "title": "Base64", + "type": "string" + } + } + }, + "DeploymentStatus": { + "title": "DeploymentStatus", + "required": [ + "deployment_id", + "iem_status" + ], + "type": "object", + "properties": { + "deployment_id": { + "title": "Deployment Id", + "type": "string" + }, + "iem_status": { + "title": "Iem Status", + "type": "string" + }, + "iem_stdout": { + "title": "Iem Stdout", + "type": "string" + }, + "iem_stderr": { + "title": "Iem Stderr", + "type": "string" + } + } + }, + "HTTPValidationError": { + "title": "HTTPValidationError", + "type": "object", + "properties": { + "detail": { + "title": "Detail", + "type": "array", + "items": { + "$ref": "#/components/schemas/ValidationError" + } + } + } + }, + "NewDeployment": { + "title": "NewDeployment", + "required": [ + "deployment_id", + "deployment_bundle", + "credentials" + ], + "type": "object", + "properties": { + "deployment_id": { + "title": "Deployment Id", + "type": "string" + }, + "deployment_bundle": { + "$ref": "#/components/schemas/DeploymentBundle" + }, + "credentials": { + "title": "Credentials", + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "SelfHealing": { + "title": "SelfHealing", + "required": [ + "playbook" + ], + "type": "object", + "properties": { + "playbook": { + "title": "Playbook", + "type": "string" + } + } + }, + "ValidationError": { + "title": "ValidationError", + "required": [ + "loc", + "msg", + "type" + ], + "type": "object", + "properties": { + "loc": { + "title": "Location", + "type": "array", + "items": { + "type": "string" + } + }, + "msg": { + "title": "Message", + "type": "string" + }, + "type": { + "title": "Error Type", + "type": "string" + } + } + } + } + } +} \ No newline at end of file diff --git a/git/sh-backend/clients/prc/pom.xml b/git/sh-backend/clients/prc/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..f8d25e79260bce2b6a2f432b05099857d00d6975 --- /dev/null +++ b/git/sh-backend/clients/prc/pom.xml @@ -0,0 +1,353 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>eu.piacere</groupId> + <artifactId>eu.piacere.prc.client</artifactId> + <packaging>jar</packaging> + <name>eu.piacere.prc.client</name> + <version>0.1.0</version> + <url>https://github.com/openapitools/openapi-generator</url> + <description>OpenAPI Java</description> + <scm> + <connection>scm:git:git@github.com:openapitools/openapi-generator.git</connection> + <developerConnection>scm:git:git@github.com:openapitools/openapi-generator.git</developerConnection> + <url>https://github.com/openapitools/openapi-generator</url> + </scm> + + <licenses> + <license> + <name>Unlicense</name> + <url>http://unlicense.org</url> + <distribution>repo</distribution> + </license> + </licenses> + + <developers> + <developer> + <name>OpenAPI-Generator Contributors</name> + <email>team@openapitools.org</email> + <organization>OpenAPITools.org</organization> + <organizationUrl>http://openapitools.org</organizationUrl> + </developer> + </developers> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.8.1</version> + <configuration> + <fork>true</fork> + <meminitial>128m</meminitial> + <maxmem>512m</maxmem> + <compilerArgs> + <arg>-Xlint:all</arg> + <arg>-J-Xss4m</arg><!-- Compiling the generated JSON.java file may require larger stack size. --> + </compilerArgs> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-enforcer-plugin</artifactId> + <version>3.1.0</version> + <executions> + <execution> + <id>enforce-maven</id> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <rules> + <requireMavenVersion> + <version>2.2.0</version> + </requireMavenVersion> + </rules> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.22.2</version> + <configuration> + <systemProperties> + <property> + <name>loggerPath</name> + <value>conf/log4j.properties</value> + </property> + </systemProperties> + <argLine>-Xms512m -Xmx1500m</argLine> + <parallel>methods</parallel> + <threadCount>10</threadCount> + </configuration> + <dependencies> + <!--Custom provider and engine for Junit 5 to surefire--> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-engine</artifactId> + <version>${junit-version}</version> + </dependency> + </dependencies> + </plugin> + <plugin> + <artifactId>maven-dependency-plugin</artifactId> + <version>3.3.0</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>copy-dependencies</goal> + </goals> + <configuration> + <outputDirectory>${project.build.directory}/lib</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + <!-- attach test jar --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>3.3.0</version> + <executions> + <execution> + <goals> + <goal>test-jar</goal> + </goals> + </execution> + </executions> + <configuration> + </configuration> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>3.3.0</version> + <executions> + <execution> + <id>add_sources</id> + <phase>generate-sources</phase> + <goals> + <goal>add-source</goal> + </goals> + <configuration> + <sources> + <source>src/main/java</source> + </sources> + </configuration> + </execution> + <execution> + <id>add_test_sources</id> + <phase>generate-test-sources</phase> + <goals> + <goal>add-test-source</goal> + </goals> + <configuration> + <sources> + <source>src/test/java</source> + </sources> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>3.4.1</version> + <executions> + <execution> + <id>attach-javadocs</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + <configuration> + <doclint>none</doclint> + <tags> + <tag> + <name>http.response.details</name> + <placement>a</placement> + <head>Http Response Details:</head> + </tag> + </tags> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <version>3.2.1</version> + <executions> + <execution> + <id>attach-sources</id> + <goals> + <goal>jar-no-fork</goal> + </goals> + </execution> + </executions> + </plugin> + <!-- Use spotless plugin to automatically format code, remove unused import, etc + To apply changes directly to the file, run `mvn spotless:apply` + Ref: https://github.com/diffplug/spotless/tree/main/plugin-maven + --> + <plugin> + <groupId>com.diffplug.spotless</groupId> + <artifactId>spotless-maven-plugin</artifactId> + <version>${spotless.version}</version> + <configuration> + <formats> + <!-- you can define as many formats as you want, each is independent --> + <format> + <!-- define the files to apply to --> + <includes> + <include>.gitignore</include> + </includes> + <!-- define the steps to apply to those files --> + <trimTrailingWhitespace/> + <endWithNewline/> + <indent> + <spaces>true</spaces> <!-- or <tabs>true</tabs> --> + <spacesPerTab>4</spacesPerTab> <!-- optional, default is 4 --> + </indent> + </format> + </formats> + <!-- define a language-specific format --> + <java> + <!-- no need to specify files, inferred automatically, but you can if you want --> + + <!-- apply a specific flavor of google-java-format and reflow long strings --> + <googleJavaFormat> + <version>1.8</version> + <style>AOSP</style> + <reflowLongStrings>true</reflowLongStrings> + </googleJavaFormat> + + <removeUnusedImports/> + <importOrder/> + + </java> + </configuration> + </plugin> + </plugins> + </build> + + <profiles> + <profile> + <id>sign-artifacts</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-gpg-plugin</artifactId> + <version>3.0.1</version> + <executions> + <execution> + <id>sign-artifacts</id> + <phase>verify</phase> + <goals> + <goal>sign</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> + + <dependencies> + <!-- @Nullable annotation --> + <dependency> + <groupId>com.google.code.findbugs</groupId> + <artifactId>jsr305</artifactId> + <version>3.0.2</version> + </dependency> + <dependency> + <groupId>com.squareup.okhttp3</groupId> + <artifactId>okhttp</artifactId> + <version>${okhttp-version}</version> + </dependency> + <dependency> + <groupId>com.squareup.okhttp3</groupId> + <artifactId>logging-interceptor</artifactId> + <version>${okhttp-version}</version> + </dependency> + <dependency> + <groupId>com.google.code.gson</groupId> + <artifactId>gson</artifactId> + <version>${gson-version}</version> + </dependency> + <dependency> + <groupId>io.gsonfire</groupId> + <artifactId>gson-fire</artifactId> + <version>${gson-fire-version}</version> + </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + <version>${commons-lang3-version}</version> + </dependency> + <dependency> + <groupId>jakarta.annotation</groupId> + <artifactId>jakarta.annotation-api</artifactId> + <version>${jakarta-annotation-version}</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.openapitools</groupId> + <artifactId>jackson-databind-nullable</artifactId> + <version>${jackson-databind-nullable-version}</version> + </dependency> + + <dependency> + <groupId>javax.ws.rs</groupId> + <artifactId>jsr311-api</artifactId> + <version>${jsr311-api-version}</version> + </dependency> + <dependency> + <groupId>javax.ws.rs</groupId> + <artifactId>javax.ws.rs-api</artifactId> + <version>${javax.ws.rs-api-version}</version> + </dependency> + <!-- test dependencies --> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-engine</artifactId> + <version>${junit-version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.junit.platform</groupId> + <artifactId>junit-platform-runner</artifactId> + <version>${junit-platform-runner.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <version>${mockito-core-version}</version> + <scope>test</scope> + </dependency> + </dependencies> + <properties> + <java.version>1.8</java.version> + <maven.compiler.source>${java.version}</maven.compiler.source> + <maven.compiler.target>${java.version}</maven.compiler.target> + <gson-fire-version>1.8.5</gson-fire-version> + <swagger-annotations-version>1.6.6</swagger-annotations-version> + <okhttp-version>4.10.0</okhttp-version> + <gson-version>2.9.1</gson-version> + <commons-lang3-version>3.12.0</commons-lang3-version> + <jackson-databind-nullable-version>0.2.4</jackson-databind-nullable-version> + <jakarta-annotation-version>1.3.5</jakarta-annotation-version> + <junit-version>5.9.1</junit-version> + <junit-platform-runner.version>1.9.1</junit-platform-runner.version> + <mockito-core-version>3.12.4</mockito-core-version> + <javax.ws.rs-api-version>2.1.1</javax.ws.rs-api-version> + <jsr311-api-version>1.1.1</jsr311-api-version> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <spotless.version>2.27.2</spotless.version> + </properties> +</project> diff --git a/git/sh-backend/clients/prc/settings.gradle b/git/sh-backend/clients/prc/settings.gradle new file mode 100644 index 0000000000000000000000000000000000000000..0a3898d342b51b690f6af859f88a154548977ccb --- /dev/null +++ b/git/sh-backend/clients/prc/settings.gradle @@ -0,0 +1 @@ +rootProject.name = "eu.piacere.prc.client" \ No newline at end of file diff --git a/git/sh-backend/clients/prc/src/main/AndroidManifest.xml b/git/sh-backend/clients/prc/src/main/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..efe3bce208a42445dc41bb4e1f44a40961936d52 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ +<manifest package="eu.piacere.prc.client" xmlns:android="http://schemas.android.com/apk/res/android"> + <application /> +</manifest> diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ApiCallback.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ApiCallback.java new file mode 100644 index 0000000000000000000000000000000000000000..ae7d9decb7d327f485f0f8f8740dd3da675d0feb --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ApiCallback.java @@ -0,0 +1,62 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client; + +import java.io.IOException; + +import java.util.Map; +import java.util.List; + +/** + * Callback for asynchronous API call. + * + * @param <T> The return type + */ +public interface ApiCallback<T> { + /** + * This is called when the API call fails. + * + * @param e The exception causing the failure + * @param statusCode Status code of the response if available, otherwise it would be 0 + * @param responseHeaders Headers of the response if available, otherwise it would be null + */ + void onFailure(ApiException e, int statusCode, Map<String, List<String>> responseHeaders); + + /** + * This is called when the API call succeeded. + * + * @param result The result deserialized from response + * @param statusCode Status code of the response + * @param responseHeaders Headers of the response + */ + void onSuccess(T result, int statusCode, Map<String, List<String>> responseHeaders); + + /** + * This is called when the API upload processing. + * + * @param bytesWritten bytes Written + * @param contentLength content length of request body + * @param done write end + */ + void onUploadProgress(long bytesWritten, long contentLength, boolean done); + + /** + * This is called when the API download processing. + * + * @param bytesRead bytes Read + * @param contentLength content length of the response + * @param done Read end + */ + void onDownloadProgress(long bytesRead, long contentLength, boolean done); +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ApiClient.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ApiClient.java new file mode 100644 index 0000000000000000000000000000000000000000..2976adc548a9d1164fc973f9f7cd0031c947635d --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ApiClient.java @@ -0,0 +1,1547 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client; + +import okhttp3.*; +import okhttp3.internal.http.HttpMethod; +import okhttp3.internal.tls.OkHostnameVerifier; +import okhttp3.logging.HttpLoggingInterceptor; +import okhttp3.logging.HttpLoggingInterceptor.Level; +import okio.Buffer; +import okio.BufferedSink; +import okio.Okio; + +import javax.net.ssl.*; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.lang.reflect.Type; +import java.net.URI; +import java.net.URLConnection; +import java.net.URLEncoder; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.security.GeneralSecurityException; +import java.security.KeyStore; +import java.security.SecureRandom; +import java.security.cert.Certificate; +import java.security.cert.CertificateException; +import java.security.cert.CertificateFactory; +import java.security.cert.X509Certificate; +import java.text.DateFormat; +import java.time.LocalDate; +import java.time.OffsetDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.Map.Entry; +import java.util.concurrent.TimeUnit; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import eu.piacere.prc.client.auth.Authentication; +import eu.piacere.prc.client.auth.HttpBasicAuth; +import eu.piacere.prc.client.auth.HttpBearerAuth; +import eu.piacere.prc.client.auth.ApiKeyAuth; + +/** + * <p>ApiClient class.</p> + */ +public class ApiClient { + + private String basePath = "http://localhost"; + protected List<ServerConfiguration> servers = new ArrayList<ServerConfiguration>(Arrays.asList( + new ServerConfiguration( + "", + "No description provided", + new HashMap<String, ServerVariable>() + ) + )); + protected Integer serverIndex = 0; + protected Map<String, String> serverVariables = null; + private boolean debugging = false; + private Map<String, String> defaultHeaderMap = new HashMap<String, String>(); + private Map<String, String> defaultCookieMap = new HashMap<String, String>(); + private String tempFolderPath = null; + + private Map<String, Authentication> authentications; + + private DateFormat dateFormat; + private DateFormat datetimeFormat; + private boolean lenientDatetimeFormat; + private int dateLength; + + private InputStream sslCaCert; + private boolean verifyingSsl; + private KeyManager[] keyManagers; + + private OkHttpClient httpClient; + private JSON json; + + private HttpLoggingInterceptor loggingInterceptor; + + /** + * Basic constructor for ApiClient + */ + public ApiClient() { + init(); + initHttpClient(); + + // Setup authentications (key: authentication name, value: authentication). + // Prevent the authentications from being modified. + authentications = Collections.unmodifiableMap(authentications); + } + + /** + * Basic constructor with custom OkHttpClient + * + * @param client a {@link okhttp3.OkHttpClient} object + */ + public ApiClient(OkHttpClient client) { + init(); + + httpClient = client; + + // Setup authentications (key: authentication name, value: authentication). + // Prevent the authentications from being modified. + authentications = Collections.unmodifiableMap(authentications); + } + + private void initHttpClient() { + initHttpClient(Collections.<Interceptor>emptyList()); + } + + private void initHttpClient(List<Interceptor> interceptors) { + OkHttpClient.Builder builder = new OkHttpClient.Builder(); + builder.addNetworkInterceptor(getProgressInterceptor()); + for (Interceptor interceptor: interceptors) { + builder.addInterceptor(interceptor); + } + + httpClient = builder.build(); + } + + private void init() { + verifyingSsl = true; + + json = new JSON(); + + // Set default User-Agent. + setUserAgent("OpenAPI-Generator/0.1.0/java"); + + authentications = new HashMap<String, Authentication>(); + } + + /** + * Get base path + * + * @return Base path + */ + public String getBasePath() { + return basePath; + } + + /** + * Set base path + * + * @param basePath Base path of the URL (e.g http://localhost + * @return An instance of OkHttpClient + */ + public ApiClient setBasePath(String basePath) { + this.basePath = basePath; + this.serverIndex = null; + return this; + } + + public List<ServerConfiguration> getServers() { + return servers; + } + + public ApiClient setServers(List<ServerConfiguration> servers) { + this.servers = servers; + return this; + } + + public Integer getServerIndex() { + return serverIndex; + } + + public ApiClient setServerIndex(Integer serverIndex) { + this.serverIndex = serverIndex; + return this; + } + + public Map<String, String> getServerVariables() { + return serverVariables; + } + + public ApiClient setServerVariables(Map<String, String> serverVariables) { + this.serverVariables = serverVariables; + return this; + } + + /** + * Get HTTP client + * + * @return An instance of OkHttpClient + */ + public OkHttpClient getHttpClient() { + return httpClient; + } + + /** + * Set HTTP client, which must never be null. + * + * @param newHttpClient An instance of OkHttpClient + * @return Api Client + * @throws java.lang.NullPointerException when newHttpClient is null + */ + public ApiClient setHttpClient(OkHttpClient newHttpClient) { + this.httpClient = Objects.requireNonNull(newHttpClient, "HttpClient must not be null!"); + return this; + } + + /** + * Get JSON + * + * @return JSON object + */ + public JSON getJSON() { + return json; + } + + /** + * Set JSON + * + * @param json JSON object + * @return Api client + */ + public ApiClient setJSON(JSON json) { + this.json = json; + return this; + } + + /** + * True if isVerifyingSsl flag is on + * + * @return True if isVerifySsl flag is on + */ + public boolean isVerifyingSsl() { + return verifyingSsl; + } + + /** + * Configure whether to verify certificate and hostname when making https requests. + * Default to true. + * NOTE: Do NOT set to false in production code, otherwise you would face multiple types of cryptographic attacks. + * + * @param verifyingSsl True to verify TLS/SSL connection + * @return ApiClient + */ + public ApiClient setVerifyingSsl(boolean verifyingSsl) { + this.verifyingSsl = verifyingSsl; + applySslSettings(); + return this; + } + + /** + * Get SSL CA cert. + * + * @return Input stream to the SSL CA cert + */ + public InputStream getSslCaCert() { + return sslCaCert; + } + + /** + * Configure the CA certificate to be trusted when making https requests. + * Use null to reset to default. + * + * @param sslCaCert input stream for SSL CA cert + * @return ApiClient + */ + public ApiClient setSslCaCert(InputStream sslCaCert) { + this.sslCaCert = sslCaCert; + applySslSettings(); + return this; + } + + /** + * <p>Getter for the field <code>keyManagers</code>.</p> + * + * @return an array of {@link javax.net.ssl.KeyManager} objects + */ + public KeyManager[] getKeyManagers() { + return keyManagers; + } + + /** + * Configure client keys to use for authorization in an SSL session. + * Use null to reset to default. + * + * @param managers The KeyManagers to use + * @return ApiClient + */ + public ApiClient setKeyManagers(KeyManager[] managers) { + this.keyManagers = managers; + applySslSettings(); + return this; + } + + /** + * <p>Getter for the field <code>dateFormat</code>.</p> + * + * @return a {@link java.text.DateFormat} object + */ + public DateFormat getDateFormat() { + return dateFormat; + } + + /** + * <p>Setter for the field <code>dateFormat</code>.</p> + * + * @param dateFormat a {@link java.text.DateFormat} object + * @return a {@link eu.piacere.prc.client.ApiClient} object + */ + public ApiClient setDateFormat(DateFormat dateFormat) { + JSON.setDateFormat(dateFormat); + return this; + } + + /** + * <p>Set SqlDateFormat.</p> + * + * @param dateFormat a {@link java.text.DateFormat} object + * @return a {@link eu.piacere.prc.client.ApiClient} object + */ + public ApiClient setSqlDateFormat(DateFormat dateFormat) { + JSON.setSqlDateFormat(dateFormat); + return this; + } + + /** + * <p>Set OffsetDateTimeFormat.</p> + * + * @param dateFormat a {@link java.time.format.DateTimeFormatter} object + * @return a {@link eu.piacere.prc.client.ApiClient} object + */ + public ApiClient setOffsetDateTimeFormat(DateTimeFormatter dateFormat) { + JSON.setOffsetDateTimeFormat(dateFormat); + return this; + } + + /** + * <p>Set LocalDateFormat.</p> + * + * @param dateFormat a {@link java.time.format.DateTimeFormatter} object + * @return a {@link eu.piacere.prc.client.ApiClient} object + */ + public ApiClient setLocalDateFormat(DateTimeFormatter dateFormat) { + JSON.setLocalDateFormat(dateFormat); + return this; + } + + /** + * <p>Set LenientOnJson.</p> + * + * @param lenientOnJson a boolean + * @return a {@link eu.piacere.prc.client.ApiClient} object + */ + public ApiClient setLenientOnJson(boolean lenientOnJson) { + JSON.setLenientOnJson(lenientOnJson); + return this; + } + + /** + * Get authentications (key: authentication name, value: authentication). + * + * @return Map of authentication objects + */ + public Map<String, Authentication> getAuthentications() { + return authentications; + } + + /** + * Get authentication for the given name. + * + * @param authName The authentication name + * @return The authentication, null if not found + */ + public Authentication getAuthentication(String authName) { + return authentications.get(authName); + } + + + /** + * Helper method to set username for the first HTTP basic authentication. + * + * @param username Username + */ + public void setUsername(String username) { + for (Authentication auth : authentications.values()) { + if (auth instanceof HttpBasicAuth) { + ((HttpBasicAuth) auth).setUsername(username); + return; + } + } + throw new RuntimeException("No HTTP basic authentication configured!"); + } + + /** + * Helper method to set password for the first HTTP basic authentication. + * + * @param password Password + */ + public void setPassword(String password) { + for (Authentication auth : authentications.values()) { + if (auth instanceof HttpBasicAuth) { + ((HttpBasicAuth) auth).setPassword(password); + return; + } + } + throw new RuntimeException("No HTTP basic authentication configured!"); + } + + /** + * Helper method to set API key value for the first API key authentication. + * + * @param apiKey API key + */ + public void setApiKey(String apiKey) { + for (Authentication auth : authentications.values()) { + if (auth instanceof ApiKeyAuth) { + ((ApiKeyAuth) auth).setApiKey(apiKey); + return; + } + } + throw new RuntimeException("No API key authentication configured!"); + } + + /** + * Helper method to set API key prefix for the first API key authentication. + * + * @param apiKeyPrefix API key prefix + */ + public void setApiKeyPrefix(String apiKeyPrefix) { + for (Authentication auth : authentications.values()) { + if (auth instanceof ApiKeyAuth) { + ((ApiKeyAuth) auth).setApiKeyPrefix(apiKeyPrefix); + return; + } + } + throw new RuntimeException("No API key authentication configured!"); + } + + /** + * Helper method to set access token for the first OAuth2 authentication. + * + * @param accessToken Access token + */ + public void setAccessToken(String accessToken) { + throw new RuntimeException("No OAuth2 authentication configured!"); + } + + /** + * Helper method to set credentials for AWSV4 Signature + * + * @param accessKey Access Key + * @param secretKey Secret Key + * @param region Region + * @param service Service to access to + */ + public void setAWS4Configuration(String accessKey, String secretKey, String region, String service) { + throw new RuntimeException("No AWS4 authentication configured!"); + } + + /** + * Set the User-Agent header's value (by adding to the default header map). + * + * @param userAgent HTTP request's user agent + * @return ApiClient + */ + public ApiClient setUserAgent(String userAgent) { + addDefaultHeader("User-Agent", userAgent); + return this; + } + + /** + * Add a default header. + * + * @param key The header's key + * @param value The header's value + * @return ApiClient + */ + public ApiClient addDefaultHeader(String key, String value) { + defaultHeaderMap.put(key, value); + return this; + } + + /** + * Add a default cookie. + * + * @param key The cookie's key + * @param value The cookie's value + * @return ApiClient + */ + public ApiClient addDefaultCookie(String key, String value) { + defaultCookieMap.put(key, value); + return this; + } + + /** + * Check that whether debugging is enabled for this API client. + * + * @return True if debugging is enabled, false otherwise. + */ + public boolean isDebugging() { + return debugging; + } + + /** + * Enable/disable debugging for this API client. + * + * @param debugging To enable (true) or disable (false) debugging + * @return ApiClient + */ + public ApiClient setDebugging(boolean debugging) { + if (debugging != this.debugging) { + if (debugging) { + loggingInterceptor = new HttpLoggingInterceptor(); + loggingInterceptor.setLevel(Level.BODY); + httpClient = httpClient.newBuilder().addInterceptor(loggingInterceptor).build(); + } else { + final OkHttpClient.Builder builder = httpClient.newBuilder(); + builder.interceptors().remove(loggingInterceptor); + httpClient = builder.build(); + loggingInterceptor = null; + } + } + this.debugging = debugging; + return this; + } + + /** + * The path of temporary folder used to store downloaded files from endpoints + * with file response. The default value is <code>null</code>, i.e. using + * the system's default temporary folder. + * + * @see <a href="https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#createTempFile(java.lang.String,%20java.lang.String,%20java.nio.file.attribute.FileAttribute...)">createTempFile</a> + * @return Temporary folder path + */ + public String getTempFolderPath() { + return tempFolderPath; + } + + /** + * Set the temporary folder path (for downloading files) + * + * @param tempFolderPath Temporary folder path + * @return ApiClient + */ + public ApiClient setTempFolderPath(String tempFolderPath) { + this.tempFolderPath = tempFolderPath; + return this; + } + + /** + * Get connection timeout (in milliseconds). + * + * @return Timeout in milliseconds + */ + public int getConnectTimeout() { + return httpClient.connectTimeoutMillis(); + } + + /** + * Sets the connect timeout (in milliseconds). + * A value of 0 means no timeout, otherwise values must be between 1 and + * {@link java.lang.Integer#MAX_VALUE}. + * + * @param connectionTimeout connection timeout in milliseconds + * @return Api client + */ + public ApiClient setConnectTimeout(int connectionTimeout) { + httpClient = httpClient.newBuilder().connectTimeout(connectionTimeout, TimeUnit.MILLISECONDS).build(); + return this; + } + + /** + * Get read timeout (in milliseconds). + * + * @return Timeout in milliseconds + */ + public int getReadTimeout() { + return httpClient.readTimeoutMillis(); + } + + /** + * Sets the read timeout (in milliseconds). + * A value of 0 means no timeout, otherwise values must be between 1 and + * {@link java.lang.Integer#MAX_VALUE}. + * + * @param readTimeout read timeout in milliseconds + * @return Api client + */ + public ApiClient setReadTimeout(int readTimeout) { + httpClient = httpClient.newBuilder().readTimeout(readTimeout, TimeUnit.MILLISECONDS).build(); + return this; + } + + /** + * Get write timeout (in milliseconds). + * + * @return Timeout in milliseconds + */ + public int getWriteTimeout() { + return httpClient.writeTimeoutMillis(); + } + + /** + * Sets the write timeout (in milliseconds). + * A value of 0 means no timeout, otherwise values must be between 1 and + * {@link java.lang.Integer#MAX_VALUE}. + * + * @param writeTimeout connection timeout in milliseconds + * @return Api client + */ + public ApiClient setWriteTimeout(int writeTimeout) { + httpClient = httpClient.newBuilder().writeTimeout(writeTimeout, TimeUnit.MILLISECONDS).build(); + return this; + } + + + /** + * Format the given parameter object into string. + * + * @param param Parameter + * @return String representation of the parameter + */ + public String parameterToString(Object param) { + if (param == null) { + return ""; + } else if (param instanceof Date || param instanceof OffsetDateTime || param instanceof LocalDate) { + //Serialize to json string and remove the " enclosing characters + String jsonStr = JSON.serialize(param); + return jsonStr.substring(1, jsonStr.length() - 1); + } else if (param instanceof Collection) { + StringBuilder b = new StringBuilder(); + for (Object o : (Collection) param) { + if (b.length() > 0) { + b.append(","); + } + b.append(o); + } + return b.toString(); + } else { + return String.valueOf(param); + } + } + + /** + * Formats the specified query parameter to a list containing a single {@code Pair} object. + * + * Note that {@code value} must not be a collection. + * + * @param name The name of the parameter. + * @param value The value of the parameter. + * @return A list containing a single {@code Pair} object. + */ + public List<Pair> parameterToPair(String name, Object value) { + List<Pair> params = new ArrayList<Pair>(); + + // preconditions + if (name == null || name.isEmpty() || value == null || value instanceof Collection) { + return params; + } + + params.add(new Pair(name, parameterToString(value))); + return params; + } + + /** + * Formats the specified collection query parameters to a list of {@code Pair} objects. + * + * Note that the values of each of the returned Pair objects are percent-encoded. + * + * @param collectionFormat The collection format of the parameter. + * @param name The name of the parameter. + * @param value The value of the parameter. + * @return A list of {@code Pair} objects. + */ + public List<Pair> parameterToPairs(String collectionFormat, String name, Collection value) { + List<Pair> params = new ArrayList<Pair>(); + + // preconditions + if (name == null || name.isEmpty() || value == null || value.isEmpty()) { + return params; + } + + // create the params based on the collection format + if ("multi".equals(collectionFormat)) { + for (Object item : value) { + params.add(new Pair(name, escapeString(parameterToString(item)))); + } + return params; + } + + // collectionFormat is assumed to be "csv" by default + String delimiter = ","; + + // escape all delimiters except commas, which are URI reserved + // characters + if ("ssv".equals(collectionFormat)) { + delimiter = escapeString(" "); + } else if ("tsv".equals(collectionFormat)) { + delimiter = escapeString("\t"); + } else if ("pipes".equals(collectionFormat)) { + delimiter = escapeString("|"); + } + + StringBuilder sb = new StringBuilder(); + for (Object item : value) { + sb.append(delimiter); + sb.append(escapeString(parameterToString(item))); + } + + params.add(new Pair(name, sb.substring(delimiter.length()))); + + return params; + } + + /** + * Formats the specified collection path parameter to a string value. + * + * @param collectionFormat The collection format of the parameter. + * @param value The value of the parameter. + * @return String representation of the parameter + */ + public String collectionPathParameterToString(String collectionFormat, Collection value) { + // create the value based on the collection format + if ("multi".equals(collectionFormat)) { + // not valid for path params + return parameterToString(value); + } + + // collectionFormat is assumed to be "csv" by default + String delimiter = ","; + + if ("ssv".equals(collectionFormat)) { + delimiter = " "; + } else if ("tsv".equals(collectionFormat)) { + delimiter = "\t"; + } else if ("pipes".equals(collectionFormat)) { + delimiter = "|"; + } + + StringBuilder sb = new StringBuilder() ; + for (Object item : value) { + sb.append(delimiter); + sb.append(parameterToString(item)); + } + + return sb.substring(delimiter.length()); + } + + /** + * Sanitize filename by removing path. + * e.g. ../../sun.gif becomes sun.gif + * + * @param filename The filename to be sanitized + * @return The sanitized filename + */ + public String sanitizeFilename(String filename) { + return filename.replaceAll(".*[/\\\\]", ""); + } + + /** + * Check if the given MIME is a JSON MIME. + * JSON MIME examples: + * application/json + * application/json; charset=UTF8 + * APPLICATION/JSON + * application/vnd.company+json + * "* / *" is also default to JSON + * @param mime MIME (Multipurpose Internet Mail Extensions) + * @return True if the given MIME is JSON, false otherwise. + */ + public boolean isJsonMime(String mime) { + String jsonMime = "(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$"; + return mime != null && (mime.matches(jsonMime) || mime.equals("*/*")); + } + + /** + * Select the Accept header's value from the given accepts array: + * if JSON exists in the given array, use it; + * otherwise use all of them (joining into a string) + * + * @param accepts The accepts array to select from + * @return The Accept header to use. If the given array is empty, + * null will be returned (not to set the Accept header explicitly). + */ + public String selectHeaderAccept(String[] accepts) { + if (accepts.length == 0) { + return null; + } + for (String accept : accepts) { + if (isJsonMime(accept)) { + return accept; + } + } + return StringUtil.join(accepts, ","); + } + + /** + * Select the Content-Type header's value from the given array: + * if JSON exists in the given array, use it; + * otherwise use the first one of the array. + * + * @param contentTypes The Content-Type array to select from + * @return The Content-Type header to use. If the given array is empty, + * returns null. If it matches "any", JSON will be used. + */ + public String selectHeaderContentType(String[] contentTypes) { + if (contentTypes.length == 0) { + return null; + } + + if (contentTypes[0].equals("*/*")) { + return "application/json"; + } + + for (String contentType : contentTypes) { + if (isJsonMime(contentType)) { + return contentType; + } + } + + return contentTypes[0]; + } + + /** + * Escape the given string to be used as URL query value. + * + * @param str String to be escaped + * @return Escaped string + */ + public String escapeString(String str) { + try { + return URLEncoder.encode(str, "utf8").replaceAll("\\+", "%20"); + } catch (UnsupportedEncodingException e) { + return str; + } + } + + /** + * Deserialize response body to Java object, according to the return type and + * the Content-Type response header. + * + * @param <T> Type + * @param response HTTP response + * @param returnType The type of the Java object + * @return The deserialized Java object + * @throws eu.piacere.prc.client.ApiException If fail to deserialize response body, i.e. cannot read response body + * or the Content-Type of the response is not supported. + */ + @SuppressWarnings("unchecked") + public <T> T deserialize(Response response, Type returnType) throws ApiException { + if (response == null || returnType == null) { + return null; + } + + if ("byte[]".equals(returnType.toString())) { + // Handle binary response (byte array). + try { + return (T) response.body().bytes(); + } catch (IOException e) { + throw new ApiException(e); + } + } else if (returnType.equals(File.class)) { + // Handle file downloading. + return (T) downloadFileFromResponse(response); + } + + String respBody; + try { + if (response.body() != null) + respBody = response.body().string(); + else + respBody = null; + } catch (IOException e) { + throw new ApiException(e); + } + + if (respBody == null || "".equals(respBody)) { + return null; + } + + String contentType = response.headers().get("Content-Type"); + if (contentType == null) { + // ensuring a default content type + contentType = "application/json"; + } + if (isJsonMime(contentType)) { + return JSON.deserialize(respBody, returnType); + } else if (returnType.equals(String.class)) { + // Expecting string, return the raw response body. + return (T) respBody; + } else { + throw new ApiException( + "Content type \"" + contentType + "\" is not supported for type: " + returnType, + response.code(), + response.headers().toMultimap(), + respBody); + } + } + + /** + * Serialize the given Java object into request body according to the object's + * class and the request Content-Type. + * + * @param obj The Java object + * @param contentType The request Content-Type + * @return The serialized request body + * @throws eu.piacere.prc.client.ApiException If fail to serialize the given object + */ + public RequestBody serialize(Object obj, String contentType) throws ApiException { + if (obj instanceof byte[]) { + // Binary (byte array) body parameter support. + return RequestBody.create((byte[]) obj, MediaType.parse(contentType)); + } else if (obj instanceof File) { + // File body parameter support. + return RequestBody.create((File) obj, MediaType.parse(contentType)); + } else if ("text/plain".equals(contentType) && obj instanceof String) { + return RequestBody.create((String) obj, MediaType.parse(contentType)); + } else if (isJsonMime(contentType)) { + String content; + if (obj != null) { + content = JSON.serialize(obj); + } else { + content = null; + } + return RequestBody.create(content, MediaType.parse(contentType)); + } else if (obj instanceof String) { + return RequestBody.create((String) obj, MediaType.parse(contentType)); + } else { + throw new ApiException("Content type \"" + contentType + "\" is not supported"); + } + } + + /** + * Download file from the given response. + * + * @param response An instance of the Response object + * @throws eu.piacere.prc.client.ApiException If fail to read file content from response and write to disk + * @return Downloaded file + */ + public File downloadFileFromResponse(Response response) throws ApiException { + try { + File file = prepareDownloadFile(response); + BufferedSink sink = Okio.buffer(Okio.sink(file)); + sink.writeAll(response.body().source()); + sink.close(); + return file; + } catch (IOException e) { + throw new ApiException(e); + } + } + + /** + * Prepare file for download + * + * @param response An instance of the Response object + * @return Prepared file for the download + * @throws java.io.IOException If fail to prepare file for download + */ + public File prepareDownloadFile(Response response) throws IOException { + String filename = null; + String contentDisposition = response.header("Content-Disposition"); + if (contentDisposition != null && !"".equals(contentDisposition)) { + // Get filename from the Content-Disposition header. + Pattern pattern = Pattern.compile("filename=['\"]?([^'\"\\s]+)['\"]?"); + Matcher matcher = pattern.matcher(contentDisposition); + if (matcher.find()) { + filename = sanitizeFilename(matcher.group(1)); + } + } + + String prefix = null; + String suffix = null; + if (filename == null) { + prefix = "download-"; + suffix = ""; + } else { + int pos = filename.lastIndexOf("."); + if (pos == -1) { + prefix = filename + "-"; + } else { + prefix = filename.substring(0, pos) + "-"; + suffix = filename.substring(pos); + } + // Files.createTempFile requires the prefix to be at least three characters long + if (prefix.length() < 3) + prefix = "download-"; + } + + if (tempFolderPath == null) + return Files.createTempFile(prefix, suffix).toFile(); + else + return Files.createTempFile(Paths.get(tempFolderPath), prefix, suffix).toFile(); + } + + /** + * {@link #execute(Call, Type)} + * + * @param <T> Type + * @param call An instance of the Call object + * @return ApiResponse<T> + * @throws eu.piacere.prc.client.ApiException If fail to execute the call + */ + public <T> ApiResponse<T> execute(Call call) throws ApiException { + return execute(call, null); + } + + /** + * Execute HTTP call and deserialize the HTTP response body into the given return type. + * + * @param returnType The return type used to deserialize HTTP response body + * @param <T> The return type corresponding to (same with) returnType + * @param call Call + * @return ApiResponse object containing response status, headers and + * data, which is a Java object deserialized from response body and would be null + * when returnType is null. + * @throws eu.piacere.prc.client.ApiException If fail to execute the call + */ + public <T> ApiResponse<T> execute(Call call, Type returnType) throws ApiException { + try { + Response response = call.execute(); + T data = handleResponse(response, returnType); + return new ApiResponse<T>(response.code(), response.headers().toMultimap(), data); + } catch (IOException e) { + throw new ApiException(e); + } + } + + /** + * {@link #executeAsync(Call, Type, ApiCallback)} + * + * @param <T> Type + * @param call An instance of the Call object + * @param callback ApiCallback<T> + */ + public <T> void executeAsync(Call call, ApiCallback<T> callback) { + executeAsync(call, null, callback); + } + + /** + * Execute HTTP call asynchronously. + * + * @param <T> Type + * @param call The callback to be executed when the API call finishes + * @param returnType Return type + * @param callback ApiCallback + * @see #execute(Call, Type) + */ + @SuppressWarnings("unchecked") + public <T> void executeAsync(Call call, final Type returnType, final ApiCallback<T> callback) { + call.enqueue(new Callback() { + @Override + public void onFailure(Call call, IOException e) { + callback.onFailure(new ApiException(e), 0, null); + } + + @Override + public void onResponse(Call call, Response response) throws IOException { + T result; + try { + result = (T) handleResponse(response, returnType); + } catch (ApiException e) { + callback.onFailure(e, response.code(), response.headers().toMultimap()); + return; + } catch (Exception e) { + callback.onFailure(new ApiException(e), response.code(), response.headers().toMultimap()); + return; + } + callback.onSuccess(result, response.code(), response.headers().toMultimap()); + } + }); + } + + /** + * Handle the given response, return the deserialized object when the response is successful. + * + * @param <T> Type + * @param response Response + * @param returnType Return type + * @return Type + * @throws eu.piacere.prc.client.ApiException If the response has an unsuccessful status code or + * fail to deserialize the response body + */ + public <T> T handleResponse(Response response, Type returnType) throws ApiException { + if (response.isSuccessful()) { + if (returnType == null || response.code() == 204) { + // returning null if the returnType is not defined, + // or the status code is 204 (No Content) + if (response.body() != null) { + try { + response.body().close(); + } catch (Exception e) { + throw new ApiException(response.message(), e, response.code(), response.headers().toMultimap()); + } + } + return null; + } else { + return deserialize(response, returnType); + } + } else { + String respBody = null; + if (response.body() != null) { + try { + respBody = response.body().string(); + } catch (IOException e) { + throw new ApiException(response.message(), e, response.code(), response.headers().toMultimap()); + } + } + throw new ApiException(response.message(), response.code(), response.headers().toMultimap(), respBody); + } + } + + /** + * Build HTTP call with the given options. + * + * @param baseUrl The base URL + * @param path The sub-path of the HTTP URL + * @param method The request method, one of "GET", "HEAD", "OPTIONS", "POST", "PUT", "PATCH" and "DELETE" + * @param queryParams The query parameters + * @param collectionQueryParams The collection query parameters + * @param body The request body object + * @param headerParams The header parameters + * @param cookieParams The cookie parameters + * @param formParams The form parameters + * @param authNames The authentications to apply + * @param callback Callback for upload/download progress + * @return The HTTP call + * @throws eu.piacere.prc.client.ApiException If fail to serialize the request body object + */ + public Call buildCall(String baseUrl, String path, String method, List<Pair> queryParams, List<Pair> collectionQueryParams, Object body, Map<String, String> headerParams, Map<String, String> cookieParams, Map<String, Object> formParams, String[] authNames, ApiCallback callback) throws ApiException { + Request request = buildRequest(baseUrl, path, method, queryParams, collectionQueryParams, body, headerParams, cookieParams, formParams, authNames, callback); + + return httpClient.newCall(request); + } + + /** + * Build an HTTP request with the given options. + * + * @param baseUrl The base URL + * @param path The sub-path of the HTTP URL + * @param method The request method, one of "GET", "HEAD", "OPTIONS", "POST", "PUT", "PATCH" and "DELETE" + * @param queryParams The query parameters + * @param collectionQueryParams The collection query parameters + * @param body The request body object + * @param headerParams The header parameters + * @param cookieParams The cookie parameters + * @param formParams The form parameters + * @param authNames The authentications to apply + * @param callback Callback for upload/download progress + * @return The HTTP request + * @throws eu.piacere.prc.client.ApiException If fail to serialize the request body object + */ + public Request buildRequest(String baseUrl, String path, String method, List<Pair> queryParams, List<Pair> collectionQueryParams, Object body, Map<String, String> headerParams, Map<String, String> cookieParams, Map<String, Object> formParams, String[] authNames, ApiCallback callback) throws ApiException { + // aggregate queryParams (non-collection) and collectionQueryParams into allQueryParams + List<Pair> allQueryParams = new ArrayList<Pair>(queryParams); + allQueryParams.addAll(collectionQueryParams); + + final String url = buildUrl(baseUrl, path, queryParams, collectionQueryParams); + + // prepare HTTP request body + RequestBody reqBody; + String contentType = headerParams.get("Content-Type"); + + if (!HttpMethod.permitsRequestBody(method)) { + reqBody = null; + } else if ("application/x-www-form-urlencoded".equals(contentType)) { + reqBody = buildRequestBodyFormEncoding(formParams); + } else if ("multipart/form-data".equals(contentType)) { + reqBody = buildRequestBodyMultipart(formParams); + } else if (body == null) { + if ("DELETE".equals(method)) { + // allow calling DELETE without sending a request body + reqBody = null; + } else { + // use an empty request body (for POST, PUT and PATCH) + reqBody = RequestBody.create("", contentType == null ? null : MediaType.parse(contentType)); + } + } else { + reqBody = serialize(body, contentType); + } + + // update parameters with authentication settings + updateParamsForAuth(authNames, allQueryParams, headerParams, cookieParams, requestBodyToString(reqBody), method, URI.create(url)); + + final Request.Builder reqBuilder = new Request.Builder().url(url); + processHeaderParams(headerParams, reqBuilder); + processCookieParams(cookieParams, reqBuilder); + + // Associate callback with request (if not null) so interceptor can + // access it when creating ProgressResponseBody + reqBuilder.tag(callback); + + Request request = null; + + if (callback != null && reqBody != null) { + ProgressRequestBody progressRequestBody = new ProgressRequestBody(reqBody, callback); + request = reqBuilder.method(method, progressRequestBody).build(); + } else { + request = reqBuilder.method(method, reqBody).build(); + } + + return request; + } + + /** + * Build full URL by concatenating base path, the given sub path and query parameters. + * + * @param baseUrl The base URL + * @param path The sub path + * @param queryParams The query parameters + * @param collectionQueryParams The collection query parameters + * @return The full URL + */ + public String buildUrl(String baseUrl, String path, List<Pair> queryParams, List<Pair> collectionQueryParams) { + final StringBuilder url = new StringBuilder(); + if (baseUrl != null) { + url.append(baseUrl).append(path); + } else { + String baseURL; + if (serverIndex != null) { + if (serverIndex < 0 || serverIndex >= servers.size()) { + throw new ArrayIndexOutOfBoundsException(String.format( + "Invalid index %d when selecting the host settings. Must be less than %d", serverIndex, servers.size() + )); + } + baseURL = servers.get(serverIndex).URL(serverVariables); + } else { + baseURL = basePath; + } + url.append(baseURL).append(path); + } + + if (queryParams != null && !queryParams.isEmpty()) { + // support (constant) query string in `path`, e.g. "/posts?draft=1" + String prefix = path.contains("?") ? "&" : "?"; + for (Pair param : queryParams) { + if (param.getValue() != null) { + if (prefix != null) { + url.append(prefix); + prefix = null; + } else { + url.append("&"); + } + String value = parameterToString(param.getValue()); + url.append(escapeString(param.getName())).append("=").append(escapeString(value)); + } + } + } + + if (collectionQueryParams != null && !collectionQueryParams.isEmpty()) { + String prefix = url.toString().contains("?") ? "&" : "?"; + for (Pair param : collectionQueryParams) { + if (param.getValue() != null) { + if (prefix != null) { + url.append(prefix); + prefix = null; + } else { + url.append("&"); + } + String value = parameterToString(param.getValue()); + // collection query parameter value already escaped as part of parameterToPairs + url.append(escapeString(param.getName())).append("=").append(value); + } + } + } + + return url.toString(); + } + + /** + * Set header parameters to the request builder, including default headers. + * + * @param headerParams Header parameters in the form of Map + * @param reqBuilder Request.Builder + */ + public void processHeaderParams(Map<String, String> headerParams, Request.Builder reqBuilder) { + for (Entry<String, String> param : headerParams.entrySet()) { + reqBuilder.header(param.getKey(), parameterToString(param.getValue())); + } + for (Entry<String, String> header : defaultHeaderMap.entrySet()) { + if (!headerParams.containsKey(header.getKey())) { + reqBuilder.header(header.getKey(), parameterToString(header.getValue())); + } + } + } + + /** + * Set cookie parameters to the request builder, including default cookies. + * + * @param cookieParams Cookie parameters in the form of Map + * @param reqBuilder Request.Builder + */ + public void processCookieParams(Map<String, String> cookieParams, Request.Builder reqBuilder) { + for (Entry<String, String> param : cookieParams.entrySet()) { + reqBuilder.addHeader("Cookie", String.format("%s=%s", param.getKey(), param.getValue())); + } + for (Entry<String, String> param : defaultCookieMap.entrySet()) { + if (!cookieParams.containsKey(param.getKey())) { + reqBuilder.addHeader("Cookie", String.format("%s=%s", param.getKey(), param.getValue())); + } + } + } + + /** + * Update query and header parameters based on authentication settings. + * + * @param authNames The authentications to apply + * @param queryParams List of query parameters + * @param headerParams Map of header parameters + * @param cookieParams Map of cookie parameters + * @param payload HTTP request body + * @param method HTTP method + * @param uri URI + * @throws eu.piacere.prc.client.ApiException If fails to update the parameters + */ + public void updateParamsForAuth(String[] authNames, List<Pair> queryParams, Map<String, String> headerParams, + Map<String, String> cookieParams, String payload, String method, URI uri) throws ApiException { + for (String authName : authNames) { + Authentication auth = authentications.get(authName); + if (auth == null) { + throw new RuntimeException("Authentication undefined: " + authName); + } + auth.applyToParams(queryParams, headerParams, cookieParams, payload, method, uri); + } + } + + /** + * Build a form-encoding request body with the given form parameters. + * + * @param formParams Form parameters in the form of Map + * @return RequestBody + */ + public RequestBody buildRequestBodyFormEncoding(Map<String, Object> formParams) { + okhttp3.FormBody.Builder formBuilder = new okhttp3.FormBody.Builder(); + for (Entry<String, Object> param : formParams.entrySet()) { + formBuilder.add(param.getKey(), parameterToString(param.getValue())); + } + return formBuilder.build(); + } + + /** + * Build a multipart (file uploading) request body with the given form parameters, + * which could contain text fields and file fields. + * + * @param formParams Form parameters in the form of Map + * @return RequestBody + */ + public RequestBody buildRequestBodyMultipart(Map<String, Object> formParams) { + MultipartBody.Builder mpBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM); + for (Entry<String, Object> param : formParams.entrySet()) { + if (param.getValue() instanceof File) { + File file = (File) param.getValue(); + addPartToMultiPartBuilder(mpBuilder, param.getKey(), file); + } else if (param.getValue() instanceof List) { + List list = (List) param.getValue(); + for (Object item: list) { + if (item instanceof File) { + addPartToMultiPartBuilder(mpBuilder, param.getKey(), (File) item); + } else { + addPartToMultiPartBuilder(mpBuilder, param.getKey(), param.getValue()); + } + } + } else { + addPartToMultiPartBuilder(mpBuilder, param.getKey(), param.getValue()); + } + } + return mpBuilder.build(); + } + + /** + * Guess Content-Type header from the given file (defaults to "application/octet-stream"). + * + * @param file The given file + * @return The guessed Content-Type + */ + public String guessContentTypeFromFile(File file) { + String contentType = URLConnection.guessContentTypeFromName(file.getName()); + if (contentType == null) { + return "application/octet-stream"; + } else { + return contentType; + } + } + + /** + * Add a Content-Disposition Header for the given key and file to the MultipartBody Builder. + * + * @param mpBuilder MultipartBody.Builder + * @param key The key of the Header element + * @param file The file to add to the Header + */ + private void addPartToMultiPartBuilder(MultipartBody.Builder mpBuilder, String key, File file) { + Headers partHeaders = Headers.of("Content-Disposition", "form-data; name=\"" + key + "\"; filename=\"" + file.getName() + "\""); + MediaType mediaType = MediaType.parse(guessContentTypeFromFile(file)); + mpBuilder.addPart(partHeaders, RequestBody.create(file, mediaType)); + } + + /** + * Add a Content-Disposition Header for the given key and complex object to the MultipartBody Builder. + * + * @param mpBuilder MultipartBody.Builder + * @param key The key of the Header element + * @param obj The complex object to add to the Header + */ + private void addPartToMultiPartBuilder(MultipartBody.Builder mpBuilder, String key, Object obj) { + RequestBody requestBody; + if (obj instanceof String) { + requestBody = RequestBody.create((String) obj, MediaType.parse("text/plain")); + } else { + String content; + if (obj != null) { + content = JSON.serialize(obj); + } else { + content = null; + } + requestBody = RequestBody.create(content, MediaType.parse("application/json")); + } + + Headers partHeaders = Headers.of("Content-Disposition", "form-data; name=\"" + key + "\""); + mpBuilder.addPart(partHeaders, requestBody); + } + + /** + * Get network interceptor to add it to the httpClient to track download progress for + * async requests. + */ + private Interceptor getProgressInterceptor() { + return new Interceptor() { + @Override + public Response intercept(Interceptor.Chain chain) throws IOException { + final Request request = chain.request(); + final Response originalResponse = chain.proceed(request); + if (request.tag() instanceof ApiCallback) { + final ApiCallback callback = (ApiCallback) request.tag(); + return originalResponse.newBuilder() + .body(new ProgressResponseBody(originalResponse.body(), callback)) + .build(); + } + return originalResponse; + } + }; + } + + /** + * Apply SSL related settings to httpClient according to the current values of + * verifyingSsl and sslCaCert. + */ + private void applySslSettings() { + try { + TrustManager[] trustManagers; + HostnameVerifier hostnameVerifier; + if (!verifyingSsl) { + trustManagers = new TrustManager[]{ + new X509TrustManager() { + @Override + public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { + } + + @Override + public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { + } + + @Override + public java.security.cert.X509Certificate[] getAcceptedIssuers() { + return new java.security.cert.X509Certificate[]{}; + } + } + }; + hostnameVerifier = new HostnameVerifier() { + @Override + public boolean verify(String hostname, SSLSession session) { + return true; + } + }; + } else { + TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + + if (sslCaCert == null) { + trustManagerFactory.init((KeyStore) null); + } else { + char[] password = null; // Any password will work. + CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); + Collection<? extends Certificate> certificates = certificateFactory.generateCertificates(sslCaCert); + if (certificates.isEmpty()) { + throw new IllegalArgumentException("expected non-empty set of trusted certificates"); + } + KeyStore caKeyStore = newEmptyKeyStore(password); + int index = 0; + for (Certificate certificate : certificates) { + String certificateAlias = "ca" + (index++); + caKeyStore.setCertificateEntry(certificateAlias, certificate); + } + trustManagerFactory.init(caKeyStore); + } + trustManagers = trustManagerFactory.getTrustManagers(); + hostnameVerifier = OkHostnameVerifier.INSTANCE; + } + + SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(keyManagers, trustManagers, new SecureRandom()); + httpClient = httpClient.newBuilder() + .sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) trustManagers[0]) + .hostnameVerifier(hostnameVerifier) + .build(); + } catch (GeneralSecurityException e) { + throw new RuntimeException(e); + } + } + + private KeyStore newEmptyKeyStore(char[] password) throws GeneralSecurityException { + try { + KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); + keyStore.load(null, password); + return keyStore; + } catch (IOException e) { + throw new AssertionError(e); + } + } + + /** + * Convert the HTTP request body to a string. + * + * @param requestBody The HTTP request object + * @return The string representation of the HTTP request body + * @throws eu.piacere.prc.client.ApiException If fail to serialize the request body object into a string + */ + private String requestBodyToString(RequestBody requestBody) throws ApiException { + if (requestBody != null) { + try { + final Buffer buffer = new Buffer(); + requestBody.writeTo(buffer); + return buffer.readUtf8(); + } catch (final IOException e) { + throw new ApiException(e); + } + } + + // empty http request body + return ""; + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ApiException.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ApiException.java new file mode 100644 index 0000000000000000000000000000000000000000..0c605550f4932eec0dbc5b0cc26073fe6064394a --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ApiException.java @@ -0,0 +1,166 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client; + +import java.util.Map; +import java.util.List; + +import javax.ws.rs.core.GenericType; + +/** + * <p>ApiException class.</p> + */ +@SuppressWarnings("serial") +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-12-15T05:19:30.390898200+01:00[Europe/Madrid]") +public class ApiException extends Exception { + private int code = 0; + private Map<String, List<String>> responseHeaders = null; + private String responseBody = null; + + /** + * <p>Constructor for ApiException.</p> + */ + public ApiException() {} + + /** + * <p>Constructor for ApiException.</p> + * + * @param throwable a {@link java.lang.Throwable} object + */ + public ApiException(Throwable throwable) { + super(throwable); + } + + /** + * <p>Constructor for ApiException.</p> + * + * @param message the error message + */ + public ApiException(String message) { + super(message); + } + + /** + * <p>Constructor for ApiException.</p> + * + * @param message the error message + * @param throwable a {@link java.lang.Throwable} object + * @param code HTTP status code + * @param responseHeaders a {@link java.util.Map} of HTTP response headers + * @param responseBody the response body + */ + public ApiException(String message, Throwable throwable, int code, Map<String, List<String>> responseHeaders, String responseBody) { + super(message, throwable); + this.code = code; + this.responseHeaders = responseHeaders; + this.responseBody = responseBody; + } + + /** + * <p>Constructor for ApiException.</p> + * + * @param message the error message + * @param code HTTP status code + * @param responseHeaders a {@link java.util.Map} of HTTP response headers + * @param responseBody the response body + */ + public ApiException(String message, int code, Map<String, List<String>> responseHeaders, String responseBody) { + this(message, (Throwable) null, code, responseHeaders, responseBody); + } + + /** + * <p>Constructor for ApiException.</p> + * + * @param message the error message + * @param throwable a {@link java.lang.Throwable} object + * @param code HTTP status code + * @param responseHeaders a {@link java.util.Map} of HTTP response headers + */ + public ApiException(String message, Throwable throwable, int code, Map<String, List<String>> responseHeaders) { + this(message, throwable, code, responseHeaders, null); + } + + /** + * <p>Constructor for ApiException.</p> + * + * @param code HTTP status code + * @param responseHeaders a {@link java.util.Map} of HTTP response headers + * @param responseBody the response body + */ + public ApiException(int code, Map<String, List<String>> responseHeaders, String responseBody) { + this("Response Code: " + code + " Response Body: " + responseBody, (Throwable) null, code, responseHeaders, responseBody); + } + + /** + * <p>Constructor for ApiException.</p> + * + * @param code HTTP status code + * @param message a {@link java.lang.String} object + */ + public ApiException(int code, String message) { + super(message); + this.code = code; + } + + /** + * <p>Constructor for ApiException.</p> + * + * @param code HTTP status code + * @param message the error message + * @param responseHeaders a {@link java.util.Map} of HTTP response headers + * @param responseBody the response body + */ + public ApiException(int code, String message, Map<String, List<String>> responseHeaders, String responseBody) { + this(code, message); + this.responseHeaders = responseHeaders; + this.responseBody = responseBody; + } + + /** + * Get the HTTP status code. + * + * @return HTTP status code + */ + public int getCode() { + return code; + } + + /** + * Get the HTTP response headers. + * + * @return A map of list of string + */ + public Map<String, List<String>> getResponseHeaders() { + return responseHeaders; + } + + /** + * Get the HTTP response body. + * + * @return Response body in the form of string + */ + public String getResponseBody() { + return responseBody; + } + + /** + * Get the exception message including HTTP response data. + * + * @return The exception message + */ + public String getMessage() { + return String.format("Message: %s%nHTTP response code: %s%nHTTP response body: %s%nHTTP response headers: %s", + super.getMessage(), this.getCode(), this.getResponseBody(), this.getResponseHeaders()); + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ApiResponse.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ApiResponse.java new file mode 100644 index 0000000000000000000000000000000000000000..5255f9b4ee5c82d2ed572fedf3fbc9c7c8136c97 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ApiResponse.java @@ -0,0 +1,76 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client; + +import java.util.List; +import java.util.Map; + +/** + * API response returned by API call. + */ +public class ApiResponse<T> { + final private int statusCode; + final private Map<String, List<String>> headers; + final private T data; + + /** + * <p>Constructor for ApiResponse.</p> + * + * @param statusCode The status code of HTTP response + * @param headers The headers of HTTP response + */ + public ApiResponse(int statusCode, Map<String, List<String>> headers) { + this(statusCode, headers, null); + } + + /** + * <p>Constructor for ApiResponse.</p> + * + * @param statusCode The status code of HTTP response + * @param headers The headers of HTTP response + * @param data The object deserialized from response bod + */ + public ApiResponse(int statusCode, Map<String, List<String>> headers, T data) { + this.statusCode = statusCode; + this.headers = headers; + this.data = data; + } + + /** + * <p>Get the <code>status code</code>.</p> + * + * @return the status code + */ + public int getStatusCode() { + return statusCode; + } + + /** + * <p>Get the <code>headers</code>.</p> + * + * @return a {@link java.util.Map} of headers + */ + public Map<String, List<String>> getHeaders() { + return headers; + } + + /** + * <p>Get the <code>data</code>.</p> + * + * @return the data + */ + public T getData() { + return data; + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/Configuration.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/Configuration.java new file mode 100644 index 0000000000000000000000000000000000000000..ffd4b9e7a73bd99b149cf735f300ade9e9df07a1 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/Configuration.java @@ -0,0 +1,39 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-12-15T05:19:30.390898200+01:00[Europe/Madrid]") +public class Configuration { + private static ApiClient defaultApiClient = new ApiClient(); + + /** + * Get the default API client, which would be used when creating API + * instances without providing an API client. + * + * @return Default API client + */ + public static ApiClient getDefaultApiClient() { + return defaultApiClient; + } + + /** + * Set the default API client, which would be used when creating API + * instances without providing an API client. + * + * @param apiClient API client + */ + public static void setDefaultApiClient(ApiClient apiClient) { + defaultApiClient = apiClient; + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/GzipRequestInterceptor.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/GzipRequestInterceptor.java new file mode 100644 index 0000000000000000000000000000000000000000..486e916fd86d30979da52eee0f76de034baec082 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/GzipRequestInterceptor.java @@ -0,0 +1,85 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client; + +import okhttp3.*; +import okio.Buffer; +import okio.BufferedSink; +import okio.GzipSink; +import okio.Okio; + +import java.io.IOException; + +/** + * Encodes request bodies using gzip. + * + * Taken from https://github.com/square/okhttp/issues/350 + */ +class GzipRequestInterceptor implements Interceptor { + @Override + public Response intercept(Chain chain) throws IOException { + Request originalRequest = chain.request(); + if (originalRequest.body() == null || originalRequest.header("Content-Encoding") != null) { + return chain.proceed(originalRequest); + } + + Request compressedRequest = originalRequest.newBuilder() + .header("Content-Encoding", "gzip") + .method(originalRequest.method(), forceContentLength(gzip(originalRequest.body()))) + .build(); + return chain.proceed(compressedRequest); + } + + private RequestBody forceContentLength(final RequestBody requestBody) throws IOException { + final Buffer buffer = new Buffer(); + requestBody.writeTo(buffer); + return new RequestBody() { + @Override + public MediaType contentType() { + return requestBody.contentType(); + } + + @Override + public long contentLength() { + return buffer.size(); + } + + @Override + public void writeTo(BufferedSink sink) throws IOException { + sink.write(buffer.snapshot()); + } + }; + } + + private RequestBody gzip(final RequestBody body) { + return new RequestBody() { + @Override + public MediaType contentType() { + return body.contentType(); + } + + @Override + public long contentLength() { + return -1; // We don't know the compressed length in advance! + } + + @Override + public void writeTo(BufferedSink sink) throws IOException { + BufferedSink gzipSink = Okio.buffer(new GzipSink(sink)); + body.writeTo(gzipSink); + gzipSink.close(); + } + }; + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/JSON.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/JSON.java new file mode 100644 index 0000000000000000000000000000000000000000..299f00e68fa72aa920cde4835a3c82766d602783 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/JSON.java @@ -0,0 +1,406 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.internal.bind.util.ISO8601Utils; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.google.gson.JsonElement; +import io.gsonfire.GsonFireBuilder; +import io.gsonfire.TypeSelector; + +import okio.ByteString; + +import java.io.IOException; +import java.io.StringReader; +import java.lang.reflect.Type; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.ParsePosition; +import java.time.LocalDate; +import java.time.OffsetDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Date; +import java.util.Locale; +import java.util.Map; +import java.util.HashMap; + +/* + * A JSON utility class + * + * NOTE: in the future, this class may be converted to static, which may break + * backward-compatibility + */ +public class JSON { + private static Gson gson; + private static boolean isLenientOnJson = false; + private static DateTypeAdapter dateTypeAdapter = new DateTypeAdapter(); + private static SqlDateTypeAdapter sqlDateTypeAdapter = new SqlDateTypeAdapter(); + private static OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new OffsetDateTimeTypeAdapter(); + private static LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter(); + private static ByteArrayAdapter byteArrayAdapter = new ByteArrayAdapter(); + + @SuppressWarnings("unchecked") + public static GsonBuilder createGson() { + GsonFireBuilder fireBuilder = new GsonFireBuilder() + ; + GsonBuilder builder = fireBuilder.createGsonBuilder(); + return builder; + } + + private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) { + JsonElement element = readElement.getAsJsonObject().get(discriminatorField); + if (null == element) { + throw new IllegalArgumentException("missing discriminator field: <" + discriminatorField + ">"); + } + return element.getAsString(); + } + + /** + * Returns the Java class that implements the OpenAPI schema for the specified discriminator value. + * + * @param classByDiscriminatorValue The map of discriminator values to Java classes. + * @param discriminatorValue The value of the OpenAPI discriminator in the input data. + * @return The Java class that implements the OpenAPI schema + */ + private static Class getClassByDiscriminator(Map classByDiscriminatorValue, String discriminatorValue) { + Class clazz = (Class) classByDiscriminatorValue.get(discriminatorValue); + if (null == clazz) { + throw new IllegalArgumentException("cannot determine model class of name: <" + discriminatorValue + ">"); + } + return clazz; + } + + { + GsonBuilder gsonBuilder = createGson(); + gsonBuilder.registerTypeAdapter(Date.class, dateTypeAdapter); + gsonBuilder.registerTypeAdapter(java.sql.Date.class, sqlDateTypeAdapter); + gsonBuilder.registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter); + gsonBuilder.registerTypeAdapter(LocalDate.class, localDateTypeAdapter); + gsonBuilder.registerTypeAdapter(byte[].class, byteArrayAdapter); + gsonBuilder.registerTypeAdapterFactory(new eu.piacere.prc.client.model.DeploymentBundle.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new eu.piacere.prc.client.model.DeploymentStatus.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new eu.piacere.prc.client.model.HTTPValidationError.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new eu.piacere.prc.client.model.NewDeployment.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new eu.piacere.prc.client.model.SelfHealing.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new eu.piacere.prc.client.model.ValidationError.CustomTypeAdapterFactory()); + gson = gsonBuilder.create(); + } + + /** + * Get Gson. + * + * @return Gson + */ + public static Gson getGson() { + return gson; + } + + /** + * Set Gson. + * + * @param gson Gson + */ + public static void setGson(Gson gson) { + JSON.gson = gson; + } + + public static void setLenientOnJson(boolean lenientOnJson) { + isLenientOnJson = lenientOnJson; + } + + /** + * Serialize the given Java object into JSON string. + * + * @param obj Object + * @return String representation of the JSON + */ + public static String serialize(Object obj) { + return gson.toJson(obj); + } + + /** + * Deserialize the given JSON string to Java object. + * + * @param <T> Type + * @param body The JSON string + * @param returnType The type to deserialize into + * @return The deserialized Java object + */ + @SuppressWarnings("unchecked") + public static <T> T deserialize(String body, Type returnType) { + try { + if (isLenientOnJson) { + JsonReader jsonReader = new JsonReader(new StringReader(body)); + // see https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/stream/JsonReader.html#setLenient(boolean) + jsonReader.setLenient(true); + return gson.fromJson(jsonReader, returnType); + } else { + return gson.fromJson(body, returnType); + } + } catch (JsonParseException e) { + // Fallback processing when failed to parse JSON form response body: + // return the response body string directly for the String return type; + if (returnType.equals(String.class)) { + return (T) body; + } else { + throw (e); + } + } + } + + /** + * Gson TypeAdapter for Byte Array type + */ + public static class ByteArrayAdapter extends TypeAdapter<byte[]> { + + @Override + public void write(JsonWriter out, byte[] value) throws IOException { + if (value == null) { + out.nullValue(); + } else { + out.value(ByteString.of(value).base64()); + } + } + + @Override + public byte[] read(JsonReader in) throws IOException { + switch (in.peek()) { + case NULL: + in.nextNull(); + return null; + default: + String bytesAsBase64 = in.nextString(); + ByteString byteString = ByteString.decodeBase64(bytesAsBase64); + return byteString.toByteArray(); + } + } + } + + /** + * Gson TypeAdapter for JSR310 OffsetDateTime type + */ + public static class OffsetDateTimeTypeAdapter extends TypeAdapter<OffsetDateTime> { + + private DateTimeFormatter formatter; + + public OffsetDateTimeTypeAdapter() { + this(DateTimeFormatter.ISO_OFFSET_DATE_TIME); + } + + public OffsetDateTimeTypeAdapter(DateTimeFormatter formatter) { + this.formatter = formatter; + } + + public void setFormat(DateTimeFormatter dateFormat) { + this.formatter = dateFormat; + } + + @Override + public void write(JsonWriter out, OffsetDateTime date) throws IOException { + if (date == null) { + out.nullValue(); + } else { + out.value(formatter.format(date)); + } + } + + @Override + public OffsetDateTime read(JsonReader in) throws IOException { + switch (in.peek()) { + case NULL: + in.nextNull(); + return null; + default: + String date = in.nextString(); + if (date.endsWith("+0000")) { + date = date.substring(0, date.length()-5) + "Z"; + } + return OffsetDateTime.parse(date, formatter); + } + } + } + + /** + * Gson TypeAdapter for JSR310 LocalDate type + */ + public static class LocalDateTypeAdapter extends TypeAdapter<LocalDate> { + + private DateTimeFormatter formatter; + + public LocalDateTypeAdapter() { + this(DateTimeFormatter.ISO_LOCAL_DATE); + } + + public LocalDateTypeAdapter(DateTimeFormatter formatter) { + this.formatter = formatter; + } + + public void setFormat(DateTimeFormatter dateFormat) { + this.formatter = dateFormat; + } + + @Override + public void write(JsonWriter out, LocalDate date) throws IOException { + if (date == null) { + out.nullValue(); + } else { + out.value(formatter.format(date)); + } + } + + @Override + public LocalDate read(JsonReader in) throws IOException { + switch (in.peek()) { + case NULL: + in.nextNull(); + return null; + default: + String date = in.nextString(); + return LocalDate.parse(date, formatter); + } + } + } + + public static void setOffsetDateTimeFormat(DateTimeFormatter dateFormat) { + offsetDateTimeTypeAdapter.setFormat(dateFormat); + } + + public static void setLocalDateFormat(DateTimeFormatter dateFormat) { + localDateTypeAdapter.setFormat(dateFormat); + } + + /** + * Gson TypeAdapter for java.sql.Date type + * If the dateFormat is null, a simple "yyyy-MM-dd" format will be used + * (more efficient than SimpleDateFormat). + */ + public static class SqlDateTypeAdapter extends TypeAdapter<java.sql.Date> { + + private DateFormat dateFormat; + + public SqlDateTypeAdapter() {} + + public SqlDateTypeAdapter(DateFormat dateFormat) { + this.dateFormat = dateFormat; + } + + public void setFormat(DateFormat dateFormat) { + this.dateFormat = dateFormat; + } + + @Override + public void write(JsonWriter out, java.sql.Date date) throws IOException { + if (date == null) { + out.nullValue(); + } else { + String value; + if (dateFormat != null) { + value = dateFormat.format(date); + } else { + value = date.toString(); + } + out.value(value); + } + } + + @Override + public java.sql.Date read(JsonReader in) throws IOException { + switch (in.peek()) { + case NULL: + in.nextNull(); + return null; + default: + String date = in.nextString(); + try { + if (dateFormat != null) { + return new java.sql.Date(dateFormat.parse(date).getTime()); + } + return new java.sql.Date(ISO8601Utils.parse(date, new ParsePosition(0)).getTime()); + } catch (ParseException e) { + throw new JsonParseException(e); + } + } + } + } + + /** + * Gson TypeAdapter for java.util.Date type + * If the dateFormat is null, ISO8601Utils will be used. + */ + public static class DateTypeAdapter extends TypeAdapter<Date> { + + private DateFormat dateFormat; + + public DateTypeAdapter() {} + + public DateTypeAdapter(DateFormat dateFormat) { + this.dateFormat = dateFormat; + } + + public void setFormat(DateFormat dateFormat) { + this.dateFormat = dateFormat; + } + + @Override + public void write(JsonWriter out, Date date) throws IOException { + if (date == null) { + out.nullValue(); + } else { + String value; + if (dateFormat != null) { + value = dateFormat.format(date); + } else { + value = ISO8601Utils.format(date, true); + } + out.value(value); + } + } + + @Override + public Date read(JsonReader in) throws IOException { + try { + switch (in.peek()) { + case NULL: + in.nextNull(); + return null; + default: + String date = in.nextString(); + try { + if (dateFormat != null) { + return dateFormat.parse(date); + } + return ISO8601Utils.parse(date, new ParsePosition(0)); + } catch (ParseException e) { + throw new JsonParseException(e); + } + } + } catch (IllegalArgumentException e) { + throw new JsonParseException(e); + } + } + } + + public static void setDateFormat(DateFormat dateFormat) { + dateTypeAdapter.setFormat(dateFormat); + } + + public static void setSqlDateFormat(DateFormat dateFormat) { + sqlDateTypeAdapter.setFormat(dateFormat); + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/Pair.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/Pair.java new file mode 100644 index 0000000000000000000000000000000000000000..45541e057a68f1277f6d527a2ec6e0f2fdb3542c --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/Pair.java @@ -0,0 +1,57 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-12-15T05:19:30.390898200+01:00[Europe/Madrid]") +public class Pair { + private String name = ""; + private String value = ""; + + public Pair (String name, String value) { + setName(name); + setValue(value); + } + + private void setName(String name) { + if (!isValidString(name)) { + return; + } + + this.name = name; + } + + private void setValue(String value) { + if (!isValidString(value)) { + return; + } + + this.value = value; + } + + public String getName() { + return this.name; + } + + public String getValue() { + return this.value; + } + + private boolean isValidString(String arg) { + if (arg == null) { + return false; + } + + return true; + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ProgressRequestBody.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ProgressRequestBody.java new file mode 100644 index 0000000000000000000000000000000000000000..4b8ae79e93a3e4acaa980d7e3cc1d3de3da83181 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ProgressRequestBody.java @@ -0,0 +1,73 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client; + +import okhttp3.MediaType; +import okhttp3.RequestBody; + +import java.io.IOException; + +import okio.Buffer; +import okio.BufferedSink; +import okio.ForwardingSink; +import okio.Okio; +import okio.Sink; + +public class ProgressRequestBody extends RequestBody { + + private final RequestBody requestBody; + + private final ApiCallback callback; + + public ProgressRequestBody(RequestBody requestBody, ApiCallback callback) { + this.requestBody = requestBody; + this.callback = callback; + } + + @Override + public MediaType contentType() { + return requestBody.contentType(); + } + + @Override + public long contentLength() throws IOException { + return requestBody.contentLength(); + } + + @Override + public void writeTo(BufferedSink sink) throws IOException { + BufferedSink bufferedSink = Okio.buffer(sink(sink)); + requestBody.writeTo(bufferedSink); + bufferedSink.flush(); + } + + private Sink sink(Sink sink) { + return new ForwardingSink(sink) { + + long bytesWritten = 0L; + long contentLength = 0L; + + @Override + public void write(Buffer source, long byteCount) throws IOException { + super.write(source, byteCount); + if (contentLength == 0) { + contentLength = contentLength(); + } + + bytesWritten += byteCount; + callback.onUploadProgress(bytesWritten, contentLength, bytesWritten == contentLength); + } + }; + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ProgressResponseBody.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ProgressResponseBody.java new file mode 100644 index 0000000000000000000000000000000000000000..4fb13a8d0d3931c8841252e8b58957b8ef2ef20d --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ProgressResponseBody.java @@ -0,0 +1,70 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client; + +import okhttp3.MediaType; +import okhttp3.ResponseBody; + +import java.io.IOException; + +import okio.Buffer; +import okio.BufferedSource; +import okio.ForwardingSource; +import okio.Okio; +import okio.Source; + +public class ProgressResponseBody extends ResponseBody { + + private final ResponseBody responseBody; + private final ApiCallback callback; + private BufferedSource bufferedSource; + + public ProgressResponseBody(ResponseBody responseBody, ApiCallback callback) { + this.responseBody = responseBody; + this.callback = callback; + } + + @Override + public MediaType contentType() { + return responseBody.contentType(); + } + + @Override + public long contentLength() { + return responseBody.contentLength(); + } + + @Override + public BufferedSource source() { + if (bufferedSource == null) { + bufferedSource = Okio.buffer(source(responseBody.source())); + } + return bufferedSource; + } + + private Source source(Source source) { + return new ForwardingSource(source) { + long totalBytesRead = 0L; + + @Override + public long read(Buffer sink, long byteCount) throws IOException { + long bytesRead = super.read(sink, byteCount); + // read() returns the number of bytes read, or -1 if this source is exhausted. + totalBytesRead += bytesRead != -1 ? bytesRead : 0; + callback.onDownloadProgress(totalBytesRead, responseBody.contentLength(), bytesRead == -1); + return bytesRead; + } + }; + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ServerConfiguration.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ServerConfiguration.java new file mode 100644 index 0000000000000000000000000000000000000000..0d74dd2e3f7fc5cd61d9b2c2dfa90077e7d606c1 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ServerConfiguration.java @@ -0,0 +1,58 @@ +package eu.piacere.prc.client; + +import java.util.Map; + +/** + * Representing a Server configuration. + */ +public class ServerConfiguration { + public String URL; + public String description; + public Map<String, ServerVariable> variables; + + /** + * @param URL A URL to the target host. + * @param description A description of the host designated by the URL. + * @param variables A map between a variable name and its value. The value is used for substitution in the server's URL template. + */ + public ServerConfiguration(String URL, String description, Map<String, ServerVariable> variables) { + this.URL = URL; + this.description = description; + this.variables = variables; + } + + /** + * Format URL template using given variables. + * + * @param variables A map between a variable name and its value. + * @return Formatted URL. + */ + public String URL(Map<String, String> variables) { + String url = this.URL; + + // go through variables and replace placeholders + for (Map.Entry<String, ServerVariable> variable: this.variables.entrySet()) { + String name = variable.getKey(); + ServerVariable serverVariable = variable.getValue(); + String value = serverVariable.defaultValue; + + if (variables != null && variables.containsKey(name)) { + value = variables.get(name); + if (serverVariable.enumValues.size() > 0 && !serverVariable.enumValues.contains(value)) { + throw new IllegalArgumentException("The variable " + name + " in the server URL has invalid value " + value + "."); + } + } + url = url.replace("{" + name + "}", value); + } + return url; + } + + /** + * Format URL template using default server variables. + * + * @return Formatted URL. + */ + public String URL() { + return URL(null); + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ServerVariable.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ServerVariable.java new file mode 100644 index 0000000000000000000000000000000000000000..d7b4f9c3a6aaa9234b364de0404ea580f41d2dac --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/ServerVariable.java @@ -0,0 +1,23 @@ +package eu.piacere.prc.client; + +import java.util.HashSet; + +/** + * Representing a Server Variable for server URL template substitution. + */ +public class ServerVariable { + public String description; + public String defaultValue; + public HashSet<String> enumValues = null; + + /** + * @param description A description for the server variable. + * @param defaultValue The default value to use for substitution. + * @param enumValues An enumeration of string values to be used if the substitution options are from a limited set. + */ + public ServerVariable(String description, String defaultValue, HashSet<String> enumValues) { + this.description = description; + this.defaultValue = defaultValue; + this.enumValues = enumValues; + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/StringUtil.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/StringUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..2425ff978064d61eec8dc4f05cf5c5c31fa9775a --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/StringUtil.java @@ -0,0 +1,83 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client; + +import java.util.Collection; +import java.util.Iterator; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-12-15T05:19:30.390898200+01:00[Europe/Madrid]") +public class StringUtil { + /** + * Check if the given array contains the given value (with case-insensitive comparison). + * + * @param array The array + * @param value The value to search + * @return true if the array contains the value + */ + public static boolean containsIgnoreCase(String[] array, String value) { + for (String str : array) { + if (value == null && str == null) { + return true; + } + if (value != null && value.equalsIgnoreCase(str)) { + return true; + } + } + return false; + } + + /** + * Join an array of strings with the given separator. + * <p> + * Note: This might be replaced by utility method from commons-lang or guava someday + * if one of those libraries is added as dependency. + * </p> + * + * @param array The array of strings + * @param separator The separator + * @return the resulting string + */ + public static String join(String[] array, String separator) { + int len = array.length; + if (len == 0) { + return ""; + } + + StringBuilder out = new StringBuilder(); + out.append(array[0]); + for (int i = 1; i < len; i++) { + out.append(separator).append(array[i]); + } + return out.toString(); + } + + /** + * Join a list of strings with the given separator. + * + * @param list The list of strings + * @param separator The separator + * @return the resulting string + */ + public static String join(Collection<String> list, String separator) { + Iterator<String> iterator = list.iterator(); + StringBuilder out = new StringBuilder(); + if (iterator.hasNext()) { + out.append(iterator.next()); + } + while (iterator.hasNext()) { + out.append(separator).append(iterator.next()); + } + return out.toString(); + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/api/DefaultApi.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/api/DefaultApi.java new file mode 100644 index 0000000000000000000000000000000000000000..e02ab50a3e3ddd5e0e6ea385c54094d85c185ec3 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/api/DefaultApi.java @@ -0,0 +1,837 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.api; + +import eu.piacere.prc.client.ApiCallback; +import eu.piacere.prc.client.ApiClient; +import eu.piacere.prc.client.ApiException; +import eu.piacere.prc.client.ApiResponse; +import eu.piacere.prc.client.Configuration; +import eu.piacere.prc.client.Pair; +import eu.piacere.prc.client.ProgressRequestBody; +import eu.piacere.prc.client.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import eu.piacere.prc.client.model.DeploymentStatus; +import eu.piacere.prc.client.model.HTTPValidationError; +import eu.piacere.prc.client.model.NewDeployment; +import eu.piacere.prc.client.model.SelfHealing; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.ws.rs.core.GenericType; + +public class DefaultApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public DefaultApi() { + this(Configuration.getDefaultApiClient()); + } + + public DefaultApi(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + /** + * Build call for createNewDeploymentDeploymentsPost + * @param newDeployment (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public okhttp3.Call createNewDeploymentDeploymentsPostCall(NewDeployment newDeployment, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = newDeployment; + + // create path and map variables + String localVarPath = "/deployments"; + + List<Pair> localVarQueryParams = new ArrayList<Pair>(); + List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>(); + Map<String, String> localVarHeaderParams = new HashMap<String, String>(); + Map<String, String> localVarCookieParams = new HashMap<String, String>(); + Map<String, Object> localVarFormParams = new HashMap<String, Object>(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call createNewDeploymentDeploymentsPostValidateBeforeCall(NewDeployment newDeployment, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'newDeployment' is set + if (newDeployment == null) { + throw new ApiException("Missing the required parameter 'newDeployment' when calling createNewDeploymentDeploymentsPost(Async)"); + } + + return createNewDeploymentDeploymentsPostCall(newDeployment, _callback); + + } + + /** + * Create New Deployment + * + * @param newDeployment (required) + * @return Object + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public Object createNewDeploymentDeploymentsPost(NewDeployment newDeployment) throws ApiException { + ApiResponse<Object> localVarResp = createNewDeploymentDeploymentsPostWithHttpInfo(newDeployment); + return localVarResp.getData(); + } + + /** + * Create New Deployment + * + * @param newDeployment (required) + * @return ApiResponse<Object> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public ApiResponse<Object> createNewDeploymentDeploymentsPostWithHttpInfo(NewDeployment newDeployment) throws ApiException { + okhttp3.Call localVarCall = createNewDeploymentDeploymentsPostValidateBeforeCall(newDeployment, null); + Type localVarReturnType = new TypeToken<Object>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Create New Deployment (asynchronously) + * + * @param newDeployment (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public okhttp3.Call createNewDeploymentDeploymentsPostAsync(NewDeployment newDeployment, final ApiCallback<Object> _callback) throws ApiException { + + okhttp3.Call localVarCall = createNewDeploymentDeploymentsPostValidateBeforeCall(newDeployment, _callback); + Type localVarReturnType = new TypeToken<Object>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getAllDeploymentsDeploymentsGet + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + </table> + */ + public okhttp3.Call getAllDeploymentsDeploymentsGetCall(final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/deployments"; + + List<Pair> localVarQueryParams = new ArrayList<Pair>(); + List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>(); + Map<String, String> localVarHeaderParams = new HashMap<String, String>(); + Map<String, String> localVarCookieParams = new HashMap<String, String>(); + Map<String, Object> localVarFormParams = new HashMap<String, Object>(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getAllDeploymentsDeploymentsGetValidateBeforeCall(final ApiCallback _callback) throws ApiException { + return getAllDeploymentsDeploymentsGetCall(_callback); + + } + + /** + * Get All Deployments + * + * @return List<DeploymentStatus> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + </table> + */ + public List<DeploymentStatus> getAllDeploymentsDeploymentsGet() throws ApiException { + ApiResponse<List<DeploymentStatus>> localVarResp = getAllDeploymentsDeploymentsGetWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * Get All Deployments + * + * @return ApiResponse<List<DeploymentStatus>> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + </table> + */ + public ApiResponse<List<DeploymentStatus>> getAllDeploymentsDeploymentsGetWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = getAllDeploymentsDeploymentsGetValidateBeforeCall(null); + Type localVarReturnType = new TypeToken<List<DeploymentStatus>>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get All Deployments (asynchronously) + * + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + </table> + */ + public okhttp3.Call getAllDeploymentsDeploymentsGetAsync(final ApiCallback<List<DeploymentStatus>> _callback) throws ApiException { + + okhttp3.Call localVarCall = getAllDeploymentsDeploymentsGetValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken<List<DeploymentStatus>>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getDeploymentDeploymentsDeploymentIdGet + * @param deploymentId (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public okhttp3.Call getDeploymentDeploymentsDeploymentIdGetCall(String deploymentId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/deployments/{deployment_id}" + .replace("{" + "deployment_id" + "}", localVarApiClient.escapeString(deploymentId.toString())); + + List<Pair> localVarQueryParams = new ArrayList<Pair>(); + List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>(); + Map<String, String> localVarHeaderParams = new HashMap<String, String>(); + Map<String, String> localVarCookieParams = new HashMap<String, String>(); + Map<String, Object> localVarFormParams = new HashMap<String, Object>(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getDeploymentDeploymentsDeploymentIdGetValidateBeforeCall(String deploymentId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'deploymentId' is set + if (deploymentId == null) { + throw new ApiException("Missing the required parameter 'deploymentId' when calling getDeploymentDeploymentsDeploymentIdGet(Async)"); + } + + return getDeploymentDeploymentsDeploymentIdGetCall(deploymentId, _callback); + + } + + /** + * Get Deployment + * + * @param deploymentId (required) + * @return DeploymentStatus + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public DeploymentStatus getDeploymentDeploymentsDeploymentIdGet(String deploymentId) throws ApiException { + ApiResponse<DeploymentStatus> localVarResp = getDeploymentDeploymentsDeploymentIdGetWithHttpInfo(deploymentId); + return localVarResp.getData(); + } + + /** + * Get Deployment + * + * @param deploymentId (required) + * @return ApiResponse<DeploymentStatus> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public ApiResponse<DeploymentStatus> getDeploymentDeploymentsDeploymentIdGetWithHttpInfo(String deploymentId) throws ApiException { + okhttp3.Call localVarCall = getDeploymentDeploymentsDeploymentIdGetValidateBeforeCall(deploymentId, null); + Type localVarReturnType = new TypeToken<DeploymentStatus>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Deployment (asynchronously) + * + * @param deploymentId (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public okhttp3.Call getDeploymentDeploymentsDeploymentIdGetAsync(String deploymentId, final ApiCallback<DeploymentStatus> _callback) throws ApiException { + + okhttp3.Call localVarCall = getDeploymentDeploymentsDeploymentIdGetValidateBeforeCall(deploymentId, _callback); + Type localVarReturnType = new TypeToken<DeploymentStatus>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for redeployDeploymentsDeploymentIdRedeployPost + * @param deploymentId (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public okhttp3.Call redeployDeploymentsDeploymentIdRedeployPostCall(String deploymentId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/deployments/{deployment_id}/redeploy" + .replace("{" + "deployment_id" + "}", localVarApiClient.escapeString(deploymentId.toString())); + + List<Pair> localVarQueryParams = new ArrayList<Pair>(); + List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>(); + Map<String, String> localVarHeaderParams = new HashMap<String, String>(); + Map<String, String> localVarCookieParams = new HashMap<String, String>(); + Map<String, Object> localVarFormParams = new HashMap<String, Object>(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call redeployDeploymentsDeploymentIdRedeployPostValidateBeforeCall(String deploymentId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'deploymentId' is set + if (deploymentId == null) { + throw new ApiException("Missing the required parameter 'deploymentId' when calling redeployDeploymentsDeploymentIdRedeployPost(Async)"); + } + + return redeployDeploymentsDeploymentIdRedeployPostCall(deploymentId, _callback); + + } + + /** + * Redeploy + * + * @param deploymentId (required) + * @return Object + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public Object redeployDeploymentsDeploymentIdRedeployPost(String deploymentId) throws ApiException { + ApiResponse<Object> localVarResp = redeployDeploymentsDeploymentIdRedeployPostWithHttpInfo(deploymentId); + return localVarResp.getData(); + } + + /** + * Redeploy + * + * @param deploymentId (required) + * @return ApiResponse<Object> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public ApiResponse<Object> redeployDeploymentsDeploymentIdRedeployPostWithHttpInfo(String deploymentId) throws ApiException { + okhttp3.Call localVarCall = redeployDeploymentsDeploymentIdRedeployPostValidateBeforeCall(deploymentId, null); + Type localVarReturnType = new TypeToken<Object>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Redeploy (asynchronously) + * + * @param deploymentId (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public okhttp3.Call redeployDeploymentsDeploymentIdRedeployPostAsync(String deploymentId, final ApiCallback<Object> _callback) throws ApiException { + + okhttp3.Call localVarCall = redeployDeploymentsDeploymentIdRedeployPostValidateBeforeCall(deploymentId, _callback); + Type localVarReturnType = new TypeToken<Object>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for selfHealingDeploymentsDeploymentIdSelfHealingPost + * @param deploymentId (required) + * @param selfHealing (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public okhttp3.Call selfHealingDeploymentsDeploymentIdSelfHealingPostCall(String deploymentId, SelfHealing selfHealing, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = selfHealing; + + // create path and map variables + String localVarPath = "/deployments/{deployment_id}/self-healing" + .replace("{" + "deployment_id" + "}", localVarApiClient.escapeString(deploymentId.toString())); + + List<Pair> localVarQueryParams = new ArrayList<Pair>(); + List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>(); + Map<String, String> localVarHeaderParams = new HashMap<String, String>(); + Map<String, String> localVarCookieParams = new HashMap<String, String>(); + Map<String, Object> localVarFormParams = new HashMap<String, Object>(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call selfHealingDeploymentsDeploymentIdSelfHealingPostValidateBeforeCall(String deploymentId, SelfHealing selfHealing, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'deploymentId' is set + if (deploymentId == null) { + throw new ApiException("Missing the required parameter 'deploymentId' when calling selfHealingDeploymentsDeploymentIdSelfHealingPost(Async)"); + } + + // verify the required parameter 'selfHealing' is set + if (selfHealing == null) { + throw new ApiException("Missing the required parameter 'selfHealing' when calling selfHealingDeploymentsDeploymentIdSelfHealingPost(Async)"); + } + + return selfHealingDeploymentsDeploymentIdSelfHealingPostCall(deploymentId, selfHealing, _callback); + + } + + /** + * Self Healing + * + * @param deploymentId (required) + * @param selfHealing (required) + * @return Object + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public Object selfHealingDeploymentsDeploymentIdSelfHealingPost(String deploymentId, SelfHealing selfHealing) throws ApiException { + ApiResponse<Object> localVarResp = selfHealingDeploymentsDeploymentIdSelfHealingPostWithHttpInfo(deploymentId, selfHealing); + return localVarResp.getData(); + } + + /** + * Self Healing + * + * @param deploymentId (required) + * @param selfHealing (required) + * @return ApiResponse<Object> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public ApiResponse<Object> selfHealingDeploymentsDeploymentIdSelfHealingPostWithHttpInfo(String deploymentId, SelfHealing selfHealing) throws ApiException { + okhttp3.Call localVarCall = selfHealingDeploymentsDeploymentIdSelfHealingPostValidateBeforeCall(deploymentId, selfHealing, null); + Type localVarReturnType = new TypeToken<Object>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Self Healing (asynchronously) + * + * @param deploymentId (required) + * @param selfHealing (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public okhttp3.Call selfHealingDeploymentsDeploymentIdSelfHealingPostAsync(String deploymentId, SelfHealing selfHealing, final ApiCallback<Object> _callback) throws ApiException { + + okhttp3.Call localVarCall = selfHealingDeploymentsDeploymentIdSelfHealingPostValidateBeforeCall(deploymentId, selfHealing, _callback); + Type localVarReturnType = new TypeToken<Object>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for undeployDeploymentsDeploymentIdUndeployPost + * @param deploymentId (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public okhttp3.Call undeployDeploymentsDeploymentIdUndeployPostCall(String deploymentId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/deployments/{deployment_id}/undeploy" + .replace("{" + "deployment_id" + "}", localVarApiClient.escapeString(deploymentId.toString())); + + List<Pair> localVarQueryParams = new ArrayList<Pair>(); + List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>(); + Map<String, String> localVarHeaderParams = new HashMap<String, String>(); + Map<String, String> localVarCookieParams = new HashMap<String, String>(); + Map<String, Object> localVarFormParams = new HashMap<String, Object>(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call undeployDeploymentsDeploymentIdUndeployPostValidateBeforeCall(String deploymentId, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'deploymentId' is set + if (deploymentId == null) { + throw new ApiException("Missing the required parameter 'deploymentId' when calling undeployDeploymentsDeploymentIdUndeployPost(Async)"); + } + + return undeployDeploymentsDeploymentIdUndeployPostCall(deploymentId, _callback); + + } + + /** + * Undeploy + * + * @param deploymentId (required) + * @return Object + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public Object undeployDeploymentsDeploymentIdUndeployPost(String deploymentId) throws ApiException { + ApiResponse<Object> localVarResp = undeployDeploymentsDeploymentIdUndeployPostWithHttpInfo(deploymentId); + return localVarResp.getData(); + } + + /** + * Undeploy + * + * @param deploymentId (required) + * @return ApiResponse<Object> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public ApiResponse<Object> undeployDeploymentsDeploymentIdUndeployPostWithHttpInfo(String deploymentId) throws ApiException { + okhttp3.Call localVarCall = undeployDeploymentsDeploymentIdUndeployPostValidateBeforeCall(deploymentId, null); + Type localVarReturnType = new TypeToken<Object>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Undeploy (asynchronously) + * + * @param deploymentId (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + <table summary="Response Details" border="1"> + <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr> + <tr><td> 200 </td><td> Successful Response </td><td> - </td></tr> + <tr><td> 422 </td><td> Validation Error </td><td> - </td></tr> + </table> + */ + public okhttp3.Call undeployDeploymentsDeploymentIdUndeployPostAsync(String deploymentId, final ApiCallback<Object> _callback) throws ApiException { + + okhttp3.Call localVarCall = undeployDeploymentsDeploymentIdUndeployPostValidateBeforeCall(deploymentId, _callback); + Type localVarReturnType = new TypeToken<Object>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/auth/ApiKeyAuth.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/auth/ApiKeyAuth.java new file mode 100644 index 0000000000000000000000000000000000000000..5a748ce093fccff7cefb6c74399e4a746579c8e3 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/auth/ApiKeyAuth.java @@ -0,0 +1,80 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.auth; + +import eu.piacere.prc.client.ApiException; +import eu.piacere.prc.client.Pair; + +import java.net.URI; +import java.util.Map; +import java.util.List; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-12-15T05:19:30.390898200+01:00[Europe/Madrid]") +public class ApiKeyAuth implements Authentication { + private final String location; + private final String paramName; + + private String apiKey; + private String apiKeyPrefix; + + public ApiKeyAuth(String location, String paramName) { + this.location = location; + this.paramName = paramName; + } + + public String getLocation() { + return location; + } + + public String getParamName() { + return paramName; + } + + public String getApiKey() { + return apiKey; + } + + public void setApiKey(String apiKey) { + this.apiKey = apiKey; + } + + public String getApiKeyPrefix() { + return apiKeyPrefix; + } + + public void setApiKeyPrefix(String apiKeyPrefix) { + this.apiKeyPrefix = apiKeyPrefix; + } + + @Override + public void applyToParams(List<Pair> queryParams, Map<String, String> headerParams, Map<String, String> cookieParams, + String payload, String method, URI uri) throws ApiException { + if (apiKey == null) { + return; + } + String value; + if (apiKeyPrefix != null) { + value = apiKeyPrefix + " " + apiKey; + } else { + value = apiKey; + } + if ("query".equals(location)) { + queryParams.add(new Pair(paramName, value)); + } else if ("header".equals(location)) { + headerParams.put(paramName, value); + } else if ("cookie".equals(location)) { + cookieParams.put(paramName, value); + } + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/auth/Authentication.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/auth/Authentication.java new file mode 100644 index 0000000000000000000000000000000000000000..cc217b544503b416b6e2e4954530be53ed712370 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/auth/Authentication.java @@ -0,0 +1,36 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.auth; + +import eu.piacere.prc.client.Pair; +import eu.piacere.prc.client.ApiException; + +import java.net.URI; +import java.util.Map; +import java.util.List; + +public interface Authentication { + /** + * Apply authentication settings to header and query params. + * + * @param queryParams List of query parameters + * @param headerParams Map of header parameters + * @param cookieParams Map of cookie parameters + * @param payload HTTP request body + * @param method HTTP method + * @param uri URI + * @throws ApiException if failed to update the parameters + */ + void applyToParams(List<Pair> queryParams, Map<String, String> headerParams, Map<String, String> cookieParams, String payload, String method, URI uri) throws ApiException; +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/auth/HttpBasicAuth.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/auth/HttpBasicAuth.java new file mode 100644 index 0000000000000000000000000000000000000000..e111e09870c03be285cdc3cdd8bf9515d0f6cec6 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/auth/HttpBasicAuth.java @@ -0,0 +1,57 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.auth; + +import eu.piacere.prc.client.Pair; +import eu.piacere.prc.client.ApiException; + +import okhttp3.Credentials; + +import java.net.URI; +import java.util.Map; +import java.util.List; + +import java.io.UnsupportedEncodingException; + +public class HttpBasicAuth implements Authentication { + private String username; + private String password; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + @Override + public void applyToParams(List<Pair> queryParams, Map<String, String> headerParams, Map<String, String> cookieParams, + String payload, String method, URI uri) throws ApiException { + if (username == null && password == null) { + return; + } + headerParams.put("Authorization", Credentials.basic( + username == null ? "" : username, + password == null ? "" : password)); + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/auth/HttpBearerAuth.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/auth/HttpBearerAuth.java new file mode 100644 index 0000000000000000000000000000000000000000..a2991bed25edc3b99afbaae758438e3c04f2a777 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/auth/HttpBearerAuth.java @@ -0,0 +1,63 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.auth; + +import eu.piacere.prc.client.ApiException; +import eu.piacere.prc.client.Pair; + +import java.net.URI; +import java.util.Map; +import java.util.List; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-12-15T05:19:30.390898200+01:00[Europe/Madrid]") +public class HttpBearerAuth implements Authentication { + private final String scheme; + private String bearerToken; + + public HttpBearerAuth(String scheme) { + this.scheme = scheme; + } + + /** + * Gets the token, which together with the scheme, will be sent as the value of the Authorization header. + * + * @return The bearer token + */ + public String getBearerToken() { + return bearerToken; + } + + /** + * Sets the token, which together with the scheme, will be sent as the value of the Authorization header. + * + * @param bearerToken The bearer token to send in the Authorization header + */ + public void setBearerToken(String bearerToken) { + this.bearerToken = bearerToken; + } + + @Override + public void applyToParams(List<Pair> queryParams, Map<String, String> headerParams, Map<String, String> cookieParams, + String payload, String method, URI uri) throws ApiException { + if (bearerToken == null) { + return; + } + + headerParams.put("Authorization", (scheme != null ? upperCaseBearer(scheme) + " " : "") + bearerToken); + } + + private static String upperCaseBearer(String scheme) { + return ("bearer".equalsIgnoreCase(scheme)) ? "Bearer" : scheme; + } +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/AbstractOpenApiSchema.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/AbstractOpenApiSchema.java new file mode 100644 index 0000000000000000000000000000000000000000..16e9b4efb69a6c61ca39e253ad40642e92a94496 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/AbstractOpenApiSchema.java @@ -0,0 +1,149 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.model; + +import eu.piacere.prc.client.ApiException; +import java.util.Objects; +import java.lang.reflect.Type; +import java.util.Map; +import javax.ws.rs.core.GenericType; + +//import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Abstract class for oneOf,anyOf schemas defined in OpenAPI spec + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-12-15T05:19:30.390898200+01:00[Europe/Madrid]") +public abstract class AbstractOpenApiSchema { + + // store the actual instance of the schema/object + private Object instance; + + // is nullable + private Boolean isNullable; + + // schema type (e.g. oneOf, anyOf) + private final String schemaType; + + public AbstractOpenApiSchema(String schemaType, Boolean isNullable) { + this.schemaType = schemaType; + this.isNullable = isNullable; + } + + /** + * Get the list of oneOf/anyOf composed schemas allowed to be stored in this object + * + * @return an instance of the actual schema/object + */ + public abstract Map<String, GenericType> getSchemas(); + + /** + * Get the actual instance + * + * @return an instance of the actual schema/object + */ + //@JsonValue + public Object getActualInstance() {return instance;} + + /** + * Set the actual instance + * + * @param instance the actual instance of the schema/object + */ + public void setActualInstance(Object instance) {this.instance = instance;} + + /** + * Get the instant recursively when the schemas defined in oneOf/anyof happen to be oneOf/anyOf schema as well + * + * @return an instance of the actual schema/object + */ + public Object getActualInstanceRecursively() { + return getActualInstanceRecursively(this); + } + + private Object getActualInstanceRecursively(AbstractOpenApiSchema object) { + if (object.getActualInstance() == null) { + return null; + } else if (object.getActualInstance() instanceof AbstractOpenApiSchema) { + return getActualInstanceRecursively((AbstractOpenApiSchema)object.getActualInstance()); + } else { + return object.getActualInstance(); + } + } + + /** + * Get the schema type (e.g. anyOf, oneOf) + * + * @return the schema type + */ + public String getSchemaType() { + return schemaType; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ").append(getClass()).append(" {\n"); + sb.append(" instance: ").append(toIndentedString(instance)).append("\n"); + sb.append(" isNullable: ").append(toIndentedString(isNullable)).append("\n"); + sb.append(" schemaType: ").append(toIndentedString(schemaType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AbstractOpenApiSchema a = (AbstractOpenApiSchema) o; + return Objects.equals(this.instance, a.instance) && + Objects.equals(this.isNullable, a.isNullable) && + Objects.equals(this.schemaType, a.schemaType); + } + + @Override + public int hashCode() { + return Objects.hash(instance, isNullable, schemaType); + } + + /** + * Is nullable + * + * @return true if it's nullable + */ + public Boolean isNullable() { + if (Boolean.TRUE.equals(isNullable)) { + return Boolean.TRUE; + } else { + return Boolean.FALSE; + } + } + + + +} diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/DeploymentBundle.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/DeploymentBundle.java new file mode 100644 index 0000000000000000000000000000000000000000..bea6e87bccff59fc00536022e7641d68fdfd058e --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/DeploymentBundle.java @@ -0,0 +1,213 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import eu.piacere.prc.client.JSON; + +/** + * DeploymentBundle + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-12-15T05:19:30.390898200+01:00[Europe/Madrid]") +public class DeploymentBundle { + public static final String SERIALIZED_NAME_BASE64 = "base64"; + @SerializedName(SERIALIZED_NAME_BASE64) + private String base64; + + public DeploymentBundle() { + } + + public DeploymentBundle base64(String base64) { + + this.base64 = base64; + return this; + } + + /** + * Get base64 + * @return base64 + **/ + @javax.annotation.Nonnull + + public String getBase64() { + return base64; + } + + + public void setBase64(String base64) { + this.base64 = base64; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeploymentBundle deploymentBundle = (DeploymentBundle) o; + return Objects.equals(this.base64, deploymentBundle.base64); + } + + @Override + public int hashCode() { + return Objects.hash(base64); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeploymentBundle {\n"); + sb.append(" base64: ").append(toIndentedString(base64)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet<String> openapiFields; + public static HashSet<String> openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet<String>(); + openapiFields.add("base64"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet<String>(); + openapiRequiredFields.add("base64"); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to DeploymentBundle + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!DeploymentBundle.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DeploymentBundle is not found in the empty JSON string", DeploymentBundle.openapiRequiredFields.toString())); + } + } + + Set<Entry<String, JsonElement>> entries = jsonObj.entrySet(); + // check to see if the JSON string contains additional fields + for (Entry<String, JsonElement> entry : entries) { + if (!DeploymentBundle.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DeploymentBundle` properties. JSON: %s", entry.getKey(), jsonObj.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DeploymentBundle.openapiRequiredFields) { + if (jsonObj.get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.toString())); + } + } + if (!jsonObj.get("base64").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `base64` to be a primitive type in the JSON string but got `%s`", jsonObj.get("base64").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) { + if (!DeploymentBundle.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DeploymentBundle' and its subtypes + } + final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter<DeploymentBundle> thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DeploymentBundle.class)); + + return (TypeAdapter<T>) new TypeAdapter<DeploymentBundle>() { + @Override + public void write(JsonWriter out, DeploymentBundle value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DeploymentBundle read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + return thisAdapter.fromJsonTree(jsonObj); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DeploymentBundle given an JSON string + * + * @param jsonString JSON string + * @return An instance of DeploymentBundle + * @throws IOException if the JSON string is invalid with respect to DeploymentBundle + */ + public static DeploymentBundle fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DeploymentBundle.class); + } + + /** + * Convert an instance of DeploymentBundle to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/DeploymentStatus.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/DeploymentStatus.java new file mode 100644 index 0000000000000000000000000000000000000000..9c1947b66ee5b6cf48425d73b0971f394d571d87 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/DeploymentStatus.java @@ -0,0 +1,310 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import eu.piacere.prc.client.JSON; + +/** + * DeploymentStatus + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-12-15T05:19:30.390898200+01:00[Europe/Madrid]") +public class DeploymentStatus { + public static final String SERIALIZED_NAME_DEPLOYMENT_ID = "deployment_id"; + @SerializedName(SERIALIZED_NAME_DEPLOYMENT_ID) + private String deploymentId; + + public static final String SERIALIZED_NAME_IEM_STATUS = "iem_status"; + @SerializedName(SERIALIZED_NAME_IEM_STATUS) + private String iemStatus; + + public static final String SERIALIZED_NAME_IEM_STDOUT = "iem_stdout"; + @SerializedName(SERIALIZED_NAME_IEM_STDOUT) + private String iemStdout; + + public static final String SERIALIZED_NAME_IEM_STDERR = "iem_stderr"; + @SerializedName(SERIALIZED_NAME_IEM_STDERR) + private String iemStderr; + + public DeploymentStatus() { + } + + public DeploymentStatus deploymentId(String deploymentId) { + + this.deploymentId = deploymentId; + return this; + } + + /** + * Get deploymentId + * @return deploymentId + **/ + @javax.annotation.Nonnull + + public String getDeploymentId() { + return deploymentId; + } + + + public void setDeploymentId(String deploymentId) { + this.deploymentId = deploymentId; + } + + + public DeploymentStatus iemStatus(String iemStatus) { + + this.iemStatus = iemStatus; + return this; + } + + /** + * Get iemStatus + * @return iemStatus + **/ + @javax.annotation.Nonnull + + public String getIemStatus() { + return iemStatus; + } + + + public void setIemStatus(String iemStatus) { + this.iemStatus = iemStatus; + } + + + public DeploymentStatus iemStdout(String iemStdout) { + + this.iemStdout = iemStdout; + return this; + } + + /** + * Get iemStdout + * @return iemStdout + **/ + @javax.annotation.Nullable + + public String getIemStdout() { + return iemStdout; + } + + + public void setIemStdout(String iemStdout) { + this.iemStdout = iemStdout; + } + + + public DeploymentStatus iemStderr(String iemStderr) { + + this.iemStderr = iemStderr; + return this; + } + + /** + * Get iemStderr + * @return iemStderr + **/ + @javax.annotation.Nullable + + public String getIemStderr() { + return iemStderr; + } + + + public void setIemStderr(String iemStderr) { + this.iemStderr = iemStderr; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeploymentStatus deploymentStatus = (DeploymentStatus) o; + return Objects.equals(this.deploymentId, deploymentStatus.deploymentId) && + Objects.equals(this.iemStatus, deploymentStatus.iemStatus) && + Objects.equals(this.iemStdout, deploymentStatus.iemStdout) && + Objects.equals(this.iemStderr, deploymentStatus.iemStderr); + } + + @Override + public int hashCode() { + return Objects.hash(deploymentId, iemStatus, iemStdout, iemStderr); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeploymentStatus {\n"); + sb.append(" deploymentId: ").append(toIndentedString(deploymentId)).append("\n"); + sb.append(" iemStatus: ").append(toIndentedString(iemStatus)).append("\n"); + sb.append(" iemStdout: ").append(toIndentedString(iemStdout)).append("\n"); + sb.append(" iemStderr: ").append(toIndentedString(iemStderr)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet<String> openapiFields; + public static HashSet<String> openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet<String>(); + openapiFields.add("deployment_id"); + openapiFields.add("iem_status"); + openapiFields.add("iem_stdout"); + openapiFields.add("iem_stderr"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet<String>(); + openapiRequiredFields.add("deployment_id"); + openapiRequiredFields.add("iem_status"); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to DeploymentStatus + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!DeploymentStatus.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in DeploymentStatus is not found in the empty JSON string", DeploymentStatus.openapiRequiredFields.toString())); + } + } + + Set<Entry<String, JsonElement>> entries = jsonObj.entrySet(); + // check to see if the JSON string contains additional fields + for (Entry<String, JsonElement> entry : entries) { + if (!DeploymentStatus.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `DeploymentStatus` properties. JSON: %s", entry.getKey(), jsonObj.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DeploymentStatus.openapiRequiredFields) { + if (jsonObj.get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.toString())); + } + } + if (!jsonObj.get("deployment_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `deployment_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("deployment_id").toString())); + } + if (!jsonObj.get("iem_status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `iem_status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("iem_status").toString())); + } + if ((jsonObj.get("iem_stdout") != null && !jsonObj.get("iem_stdout").isJsonNull()) && !jsonObj.get("iem_stdout").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `iem_stdout` to be a primitive type in the JSON string but got `%s`", jsonObj.get("iem_stdout").toString())); + } + if ((jsonObj.get("iem_stderr") != null && !jsonObj.get("iem_stderr").isJsonNull()) && !jsonObj.get("iem_stderr").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `iem_stderr` to be a primitive type in the JSON string but got `%s`", jsonObj.get("iem_stderr").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) { + if (!DeploymentStatus.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DeploymentStatus' and its subtypes + } + final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter<DeploymentStatus> thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(DeploymentStatus.class)); + + return (TypeAdapter<T>) new TypeAdapter<DeploymentStatus>() { + @Override + public void write(JsonWriter out, DeploymentStatus value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DeploymentStatus read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + return thisAdapter.fromJsonTree(jsonObj); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of DeploymentStatus given an JSON string + * + * @param jsonString JSON string + * @return An instance of DeploymentStatus + * @throws IOException if the JSON string is invalid with respect to DeploymentStatus + */ + public static DeploymentStatus fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DeploymentStatus.class); + } + + /** + * Convert an instance of DeploymentStatus to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/HTTPValidationError.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/HTTPValidationError.java new file mode 100644 index 0000000000000000000000000000000000000000..3b40484989b2e15eabd114a44c66466d22eea097 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/HTTPValidationError.java @@ -0,0 +1,227 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import eu.piacere.prc.client.model.ValidationError; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import eu.piacere.prc.client.JSON; + +/** + * HTTPValidationError + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-12-15T05:19:30.390898200+01:00[Europe/Madrid]") +public class HTTPValidationError { + public static final String SERIALIZED_NAME_DETAIL = "detail"; + @SerializedName(SERIALIZED_NAME_DETAIL) + private List<ValidationError> detail = new ArrayList<>(); + + public HTTPValidationError() { + } + + public HTTPValidationError detail(List<ValidationError> detail) { + + this.detail = detail; + return this; + } + + public HTTPValidationError addDetailItem(ValidationError detailItem) { + if (this.detail == null) { + this.detail = new ArrayList<>(); + } + this.detail.add(detailItem); + return this; + } + + /** + * Get detail + * @return detail + **/ + @javax.annotation.Nullable + + public List<ValidationError> getDetail() { + return detail; + } + + + public void setDetail(List<ValidationError> detail) { + this.detail = detail; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + HTTPValidationError htTPValidationError = (HTTPValidationError) o; + return Objects.equals(this.detail, htTPValidationError.detail); + } + + @Override + public int hashCode() { + return Objects.hash(detail); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class HTTPValidationError {\n"); + sb.append(" detail: ").append(toIndentedString(detail)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet<String> openapiFields; + public static HashSet<String> openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet<String>(); + openapiFields.add("detail"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet<String>(); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to HTTPValidationError + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!HTTPValidationError.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in HTTPValidationError is not found in the empty JSON string", HTTPValidationError.openapiRequiredFields.toString())); + } + } + + Set<Entry<String, JsonElement>> entries = jsonObj.entrySet(); + // check to see if the JSON string contains additional fields + for (Entry<String, JsonElement> entry : entries) { + if (!HTTPValidationError.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `HTTPValidationError` properties. JSON: %s", entry.getKey(), jsonObj.toString())); + } + } + if (jsonObj.get("detail") != null && !jsonObj.get("detail").isJsonNull()) { + JsonArray jsonArraydetail = jsonObj.getAsJsonArray("detail"); + if (jsonArraydetail != null) { + // ensure the json data is an array + if (!jsonObj.get("detail").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `detail` to be an array in the JSON string but got `%s`", jsonObj.get("detail").toString())); + } + + // validate the optional field `detail` (array) + for (int i = 0; i < jsonArraydetail.size(); i++) { + ValidationError.validateJsonObject(jsonArraydetail.get(i).getAsJsonObject()); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) { + if (!HTTPValidationError.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'HTTPValidationError' and its subtypes + } + final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter<HTTPValidationError> thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(HTTPValidationError.class)); + + return (TypeAdapter<T>) new TypeAdapter<HTTPValidationError>() { + @Override + public void write(JsonWriter out, HTTPValidationError value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public HTTPValidationError read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + return thisAdapter.fromJsonTree(jsonObj); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of HTTPValidationError given an JSON string + * + * @param jsonString JSON string + * @return An instance of HTTPValidationError + * @throws IOException if the JSON string is invalid with respect to HTTPValidationError + */ + public static HTTPValidationError fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, HTTPValidationError.class); + } + + /** + * Convert an instance of HTTPValidationError to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/NewDeployment.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/NewDeployment.java new file mode 100644 index 0000000000000000000000000000000000000000..4caadd823d3c3dc53853777e702d8baab8c56c8b --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/NewDeployment.java @@ -0,0 +1,283 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import eu.piacere.prc.client.model.DeploymentBundle; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import eu.piacere.prc.client.JSON; + +/** + * NewDeployment + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-12-15T05:19:30.390898200+01:00[Europe/Madrid]") +public class NewDeployment { + public static final String SERIALIZED_NAME_DEPLOYMENT_ID = "deployment_id"; + @SerializedName(SERIALIZED_NAME_DEPLOYMENT_ID) + private String deploymentId; + + public static final String SERIALIZED_NAME_DEPLOYMENT_BUNDLE = "deployment_bundle"; + @SerializedName(SERIALIZED_NAME_DEPLOYMENT_BUNDLE) + private DeploymentBundle deploymentBundle; + + public static final String SERIALIZED_NAME_CREDENTIALS = "credentials"; + @SerializedName(SERIALIZED_NAME_CREDENTIALS) + private Map<String, Object> credentials = new HashMap<>(); + + public NewDeployment() { + } + + public NewDeployment deploymentId(String deploymentId) { + + this.deploymentId = deploymentId; + return this; + } + + /** + * Get deploymentId + * @return deploymentId + **/ + @javax.annotation.Nonnull + + public String getDeploymentId() { + return deploymentId; + } + + + public void setDeploymentId(String deploymentId) { + this.deploymentId = deploymentId; + } + + + public NewDeployment deploymentBundle(DeploymentBundle deploymentBundle) { + + this.deploymentBundle = deploymentBundle; + return this; + } + + /** + * Get deploymentBundle + * @return deploymentBundle + **/ + @javax.annotation.Nonnull + + public DeploymentBundle getDeploymentBundle() { + return deploymentBundle; + } + + + public void setDeploymentBundle(DeploymentBundle deploymentBundle) { + this.deploymentBundle = deploymentBundle; + } + + + public NewDeployment credentials(Map<String, Object> credentials) { + + this.credentials = credentials; + return this; + } + + public NewDeployment putCredentialsItem(String key, Object credentialsItem) { + this.credentials.put(key, credentialsItem); + return this; + } + + /** + * Get credentials + * @return credentials + **/ + @javax.annotation.Nonnull + + public Map<String, Object> getCredentials() { + return credentials; + } + + + public void setCredentials(Map<String, Object> credentials) { + this.credentials = credentials; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NewDeployment newDeployment = (NewDeployment) o; + return Objects.equals(this.deploymentId, newDeployment.deploymentId) && + Objects.equals(this.deploymentBundle, newDeployment.deploymentBundle) && + Objects.equals(this.credentials, newDeployment.credentials); + } + + @Override + public int hashCode() { + return Objects.hash(deploymentId, deploymentBundle, credentials); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NewDeployment {\n"); + sb.append(" deploymentId: ").append(toIndentedString(deploymentId)).append("\n"); + sb.append(" deploymentBundle: ").append(toIndentedString(deploymentBundle)).append("\n"); + sb.append(" credentials: ").append(toIndentedString(credentials)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet<String> openapiFields; + public static HashSet<String> openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet<String>(); + openapiFields.add("deployment_id"); + openapiFields.add("deployment_bundle"); + openapiFields.add("credentials"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet<String>(); + openapiRequiredFields.add("deployment_id"); + openapiRequiredFields.add("deployment_bundle"); + openapiRequiredFields.add("credentials"); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to NewDeployment + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!NewDeployment.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in NewDeployment is not found in the empty JSON string", NewDeployment.openapiRequiredFields.toString())); + } + } + + Set<Entry<String, JsonElement>> entries = jsonObj.entrySet(); + // check to see if the JSON string contains additional fields + for (Entry<String, JsonElement> entry : entries) { + if (!NewDeployment.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `NewDeployment` properties. JSON: %s", entry.getKey(), jsonObj.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NewDeployment.openapiRequiredFields) { + if (jsonObj.get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.toString())); + } + } + if (!jsonObj.get("deployment_id").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `deployment_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("deployment_id").toString())); + } + // validate the required field `deployment_bundle` + DeploymentBundle.validateJsonObject(jsonObj.getAsJsonObject("deployment_bundle")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) { + if (!NewDeployment.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NewDeployment' and its subtypes + } + final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter<NewDeployment> thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(NewDeployment.class)); + + return (TypeAdapter<T>) new TypeAdapter<NewDeployment>() { + @Override + public void write(JsonWriter out, NewDeployment value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NewDeployment read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + return thisAdapter.fromJsonTree(jsonObj); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of NewDeployment given an JSON string + * + * @param jsonString JSON string + * @return An instance of NewDeployment + * @throws IOException if the JSON string is invalid with respect to NewDeployment + */ + public static NewDeployment fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NewDeployment.class); + } + + /** + * Convert an instance of NewDeployment to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/SelfHealing.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/SelfHealing.java new file mode 100644 index 0000000000000000000000000000000000000000..a1494f6989abab5effe00afeae8adf21bf6a4b1a --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/SelfHealing.java @@ -0,0 +1,213 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import eu.piacere.prc.client.JSON; + +/** + * SelfHealing + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-12-15T05:19:30.390898200+01:00[Europe/Madrid]") +public class SelfHealing { + public static final String SERIALIZED_NAME_PLAYBOOK = "playbook"; + @SerializedName(SERIALIZED_NAME_PLAYBOOK) + private String playbook; + + public SelfHealing() { + } + + public SelfHealing playbook(String playbook) { + + this.playbook = playbook; + return this; + } + + /** + * Get playbook + * @return playbook + **/ + @javax.annotation.Nonnull + + public String getPlaybook() { + return playbook; + } + + + public void setPlaybook(String playbook) { + this.playbook = playbook; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SelfHealing selfHealing = (SelfHealing) o; + return Objects.equals(this.playbook, selfHealing.playbook); + } + + @Override + public int hashCode() { + return Objects.hash(playbook); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SelfHealing {\n"); + sb.append(" playbook: ").append(toIndentedString(playbook)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet<String> openapiFields; + public static HashSet<String> openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet<String>(); + openapiFields.add("playbook"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet<String>(); + openapiRequiredFields.add("playbook"); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to SelfHealing + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!SelfHealing.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in SelfHealing is not found in the empty JSON string", SelfHealing.openapiRequiredFields.toString())); + } + } + + Set<Entry<String, JsonElement>> entries = jsonObj.entrySet(); + // check to see if the JSON string contains additional fields + for (Entry<String, JsonElement> entry : entries) { + if (!SelfHealing.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `SelfHealing` properties. JSON: %s", entry.getKey(), jsonObj.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : SelfHealing.openapiRequiredFields) { + if (jsonObj.get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.toString())); + } + } + if (!jsonObj.get("playbook").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `playbook` to be a primitive type in the JSON string but got `%s`", jsonObj.get("playbook").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) { + if (!SelfHealing.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SelfHealing' and its subtypes + } + final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter<SelfHealing> thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(SelfHealing.class)); + + return (TypeAdapter<T>) new TypeAdapter<SelfHealing>() { + @Override + public void write(JsonWriter out, SelfHealing value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SelfHealing read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + return thisAdapter.fromJsonTree(jsonObj); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of SelfHealing given an JSON string + * + * @param jsonString JSON string + * @return An instance of SelfHealing + * @throws IOException if the JSON string is invalid with respect to SelfHealing + */ + public static SelfHealing fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SelfHealing.class); + } + + /** + * Convert an instance of SelfHealing to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/ValidationError.java b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/ValidationError.java new file mode 100644 index 0000000000000000000000000000000000000000..320b3e7e37417d5fe728af21d279f9b58e7f2fa5 --- /dev/null +++ b/git/sh-backend/clients/prc/src/main/java/eu/piacere/prc/client/model/ValidationError.java @@ -0,0 +1,289 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import eu.piacere.prc.client.JSON; + +/** + * ValidationError + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-12-15T05:19:30.390898200+01:00[Europe/Madrid]") +public class ValidationError { + public static final String SERIALIZED_NAME_LOC = "loc"; + @SerializedName(SERIALIZED_NAME_LOC) + private List<String> loc = new ArrayList<>(); + + public static final String SERIALIZED_NAME_MSG = "msg"; + @SerializedName(SERIALIZED_NAME_MSG) + private String msg; + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private String type; + + public ValidationError() { + } + + public ValidationError loc(List<String> loc) { + + this.loc = loc; + return this; + } + + public ValidationError addLocItem(String locItem) { + this.loc.add(locItem); + return this; + } + + /** + * Get loc + * @return loc + **/ + @javax.annotation.Nonnull + + public List<String> getLoc() { + return loc; + } + + + public void setLoc(List<String> loc) { + this.loc = loc; + } + + + public ValidationError msg(String msg) { + + this.msg = msg; + return this; + } + + /** + * Get msg + * @return msg + **/ + @javax.annotation.Nonnull + + public String getMsg() { + return msg; + } + + + public void setMsg(String msg) { + this.msg = msg; + } + + + public ValidationError type(String type) { + + this.type = type; + return this; + } + + /** + * Get type + * @return type + **/ + @javax.annotation.Nonnull + + public String getType() { + return type; + } + + + public void setType(String type) { + this.type = type; + } + + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ValidationError validationError = (ValidationError) o; + return Objects.equals(this.loc, validationError.loc) && + Objects.equals(this.msg, validationError.msg) && + Objects.equals(this.type, validationError.type); + } + + @Override + public int hashCode() { + return Objects.hash(loc, msg, type); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ValidationError {\n"); + sb.append(" loc: ").append(toIndentedString(loc)).append("\n"); + sb.append(" msg: ").append(toIndentedString(msg)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet<String> openapiFields; + public static HashSet<String> openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet<String>(); + openapiFields.add("loc"); + openapiFields.add("msg"); + openapiFields.add("type"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet<String>(); + openapiRequiredFields.add("loc"); + openapiRequiredFields.add("msg"); + openapiRequiredFields.add("type"); + } + + /** + * Validates the JSON Object and throws an exception if issues found + * + * @param jsonObj JSON Object + * @throws IOException if the JSON Object is invalid with respect to ValidationError + */ + public static void validateJsonObject(JsonObject jsonObj) throws IOException { + if (jsonObj == null) { + if (!ValidationError.openapiRequiredFields.isEmpty()) { // has required fields but JSON object is null + throw new IllegalArgumentException(String.format("The required field(s) %s in ValidationError is not found in the empty JSON string", ValidationError.openapiRequiredFields.toString())); + } + } + + Set<Entry<String, JsonElement>> entries = jsonObj.entrySet(); + // check to see if the JSON string contains additional fields + for (Entry<String, JsonElement> entry : entries) { + if (!ValidationError.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `ValidationError` properties. JSON: %s", entry.getKey(), jsonObj.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ValidationError.openapiRequiredFields) { + if (jsonObj.get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonObj.toString())); + } + } + // ensure the required json array is present + if (jsonObj.get("loc") == null) { + throw new IllegalArgumentException("Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("loc").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `loc` to be an array in the JSON string but got `%s`", jsonObj.get("loc").toString())); + } + if (!jsonObj.get("msg").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `msg` to be a primitive type in the JSON string but got `%s`", jsonObj.get("msg").toString())); + } + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) { + if (!ValidationError.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ValidationError' and its subtypes + } + final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter<ValidationError> thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ValidationError.class)); + + return (TypeAdapter<T>) new TypeAdapter<ValidationError>() { + @Override + public void write(JsonWriter out, ValidationError value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ValidationError read(JsonReader in) throws IOException { + JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); + validateJsonObject(jsonObj); + return thisAdapter.fromJsonTree(jsonObj); + } + + }.nullSafe(); + } + } + + /** + * Create an instance of ValidationError given an JSON string + * + * @param jsonString JSON string + * @return An instance of ValidationError + * @throws IOException if the JSON string is invalid with respect to ValidationError + */ + public static ValidationError fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ValidationError.class); + } + + /** + * Convert an instance of ValidationError to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/api/DefaultApiTest.java b/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/api/DefaultApiTest.java new file mode 100644 index 0000000000000000000000000000000000000000..eec4402a560bf7b64fa6e6ba739f41d6dd960937 --- /dev/null +++ b/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/api/DefaultApiTest.java @@ -0,0 +1,109 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.api; + +import eu.piacere.prc.client.ApiException; +import eu.piacere.prc.client.model.DeploymentStatus; +import eu.piacere.prc.client.model.HTTPValidationError; +import eu.piacere.prc.client.model.NewDeployment; +import eu.piacere.prc.client.model.SelfHealing; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * API tests for DefaultApi + */ +@Disabled +public class DefaultApiTest { + + private final DefaultApi api = new DefaultApi(); + + /** + * Create New Deployment + * + * @throws ApiException if the Api call fails + */ + @Test + public void createNewDeploymentDeploymentsPostTest() throws ApiException { + NewDeployment newDeployment = null; + Object response = api.createNewDeploymentDeploymentsPost(newDeployment); + // TODO: test validations + } + + /** + * Get All Deployments + * + * @throws ApiException if the Api call fails + */ + @Test + public void getAllDeploymentsDeploymentsGetTest() throws ApiException { + List<DeploymentStatus> response = api.getAllDeploymentsDeploymentsGet(); + // TODO: test validations + } + + /** + * Get Deployment + * + * @throws ApiException if the Api call fails + */ + @Test + public void getDeploymentDeploymentsDeploymentIdGetTest() throws ApiException { + String deploymentId = null; + DeploymentStatus response = api.getDeploymentDeploymentsDeploymentIdGet(deploymentId); + // TODO: test validations + } + + /** + * Redeploy + * + * @throws ApiException if the Api call fails + */ + @Test + public void redeployDeploymentsDeploymentIdRedeployPostTest() throws ApiException { + String deploymentId = null; + Object response = api.redeployDeploymentsDeploymentIdRedeployPost(deploymentId); + // TODO: test validations + } + + /** + * Self Healing + * + * @throws ApiException if the Api call fails + */ + @Test + public void selfHealingDeploymentsDeploymentIdSelfHealingPostTest() throws ApiException { + String deploymentId = null; + SelfHealing selfHealing = null; + Object response = api.selfHealingDeploymentsDeploymentIdSelfHealingPost(deploymentId, selfHealing); + // TODO: test validations + } + + /** + * Undeploy + * + * @throws ApiException if the Api call fails + */ + @Test + public void undeployDeploymentsDeploymentIdUndeployPostTest() throws ApiException { + String deploymentId = null; + Object response = api.undeployDeploymentsDeploymentIdUndeployPost(deploymentId); + // TODO: test validations + } + +} diff --git a/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/DeploymentBundleTest.java b/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/DeploymentBundleTest.java new file mode 100644 index 0000000000000000000000000000000000000000..76069908e09a65aa7e507e8f13ca33d522a14176 --- /dev/null +++ b/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/DeploymentBundleTest.java @@ -0,0 +1,48 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for DeploymentBundle + */ +public class DeploymentBundleTest { + private final DeploymentBundle model = new DeploymentBundle(); + + /** + * Model tests for DeploymentBundle + */ + @Test + public void testDeploymentBundle() { + // TODO: test DeploymentBundle + } + + /** + * Test the property 'base64' + */ + @Test + public void base64Test() { + // TODO: test base64 + } + +} diff --git a/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/DeploymentStatusTest.java b/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/DeploymentStatusTest.java new file mode 100644 index 0000000000000000000000000000000000000000..963b21b132feccf0295d67b325a468010eb3d2f8 --- /dev/null +++ b/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/DeploymentStatusTest.java @@ -0,0 +1,72 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for DeploymentStatus + */ +public class DeploymentStatusTest { + private final DeploymentStatus model = new DeploymentStatus(); + + /** + * Model tests for DeploymentStatus + */ + @Test + public void testDeploymentStatus() { + // TODO: test DeploymentStatus + } + + /** + * Test the property 'deploymentId' + */ + @Test + public void deploymentIdTest() { + // TODO: test deploymentId + } + + /** + * Test the property 'iemStatus' + */ + @Test + public void iemStatusTest() { + // TODO: test iemStatus + } + + /** + * Test the property 'iemStdout' + */ + @Test + public void iemStdoutTest() { + // TODO: test iemStdout + } + + /** + * Test the property 'iemStderr' + */ + @Test + public void iemStderrTest() { + // TODO: test iemStderr + } + +} diff --git a/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/HTTPValidationErrorTest.java b/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/HTTPValidationErrorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..4fdbcc59f3b2e42883ba37346d677649b5046fa7 --- /dev/null +++ b/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/HTTPValidationErrorTest.java @@ -0,0 +1,51 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import eu.piacere.prc.client.model.ValidationError; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for HTTPValidationError + */ +public class HTTPValidationErrorTest { + private final HTTPValidationError model = new HTTPValidationError(); + + /** + * Model tests for HTTPValidationError + */ + @Test + public void testHTTPValidationError() { + // TODO: test HTTPValidationError + } + + /** + * Test the property 'detail' + */ + @Test + public void detailTest() { + // TODO: test detail + } + +} diff --git a/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/NewDeploymentTest.java b/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/NewDeploymentTest.java new file mode 100644 index 0000000000000000000000000000000000000000..55a50bf01870a5b6758f530db7e0da1410166cd6 --- /dev/null +++ b/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/NewDeploymentTest.java @@ -0,0 +1,67 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import eu.piacere.prc.client.model.DeploymentBundle; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for NewDeployment + */ +public class NewDeploymentTest { + private final NewDeployment model = new NewDeployment(); + + /** + * Model tests for NewDeployment + */ + @Test + public void testNewDeployment() { + // TODO: test NewDeployment + } + + /** + * Test the property 'deploymentId' + */ + @Test + public void deploymentIdTest() { + // TODO: test deploymentId + } + + /** + * Test the property 'deploymentBundle' + */ + @Test + public void deploymentBundleTest() { + // TODO: test deploymentBundle + } + + /** + * Test the property 'credentials' + */ + @Test + public void credentialsTest() { + // TODO: test credentials + } + +} diff --git a/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/SelfHealingTest.java b/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/SelfHealingTest.java new file mode 100644 index 0000000000000000000000000000000000000000..378534b905a61b1ae552de0863176d2ac78b93ae --- /dev/null +++ b/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/SelfHealingTest.java @@ -0,0 +1,48 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for SelfHealing + */ +public class SelfHealingTest { + private final SelfHealing model = new SelfHealing(); + + /** + * Model tests for SelfHealing + */ + @Test + public void testSelfHealing() { + // TODO: test SelfHealing + } + + /** + * Test the property 'playbook' + */ + @Test + public void playbookTest() { + // TODO: test playbook + } + +} diff --git a/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/ValidationErrorTest.java b/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/ValidationErrorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..039064a81870c89a0bc664a5e16e0cebbc2afedf --- /dev/null +++ b/git/sh-backend/clients/prc/src/test/java/eu/piacere/prc/client/model/ValidationErrorTest.java @@ -0,0 +1,66 @@ +/* + * FastAPI + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package eu.piacere.prc.client.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + + +/** + * Model tests for ValidationError + */ +public class ValidationErrorTest { + private final ValidationError model = new ValidationError(); + + /** + * Model tests for ValidationError + */ + @Test + public void testValidationError() { + // TODO: test ValidationError + } + + /** + * Test the property 'loc' + */ + @Test + public void locTest() { + // TODO: test loc + } + + /** + * Test the property 'msg' + */ + @Test + public void msgTest() { + // TODO: test msg + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + +} diff --git a/git/sh-backend/package-lock.json b/git/sh-backend/package-lock.json index d42b461c23d1d6b8cc3dd86207503d6813e7e6ee..8ed1940505c7435c3a61f471e22e93a936812f5d 100644 --- a/git/sh-backend/package-lock.json +++ b/git/sh-backend/package-lock.json @@ -1,17 +1,15 @@ { - "name": "self-healing-service", + "name": "sh-backend", "version": "0.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "self-healing-service", + "name": "sh-backend", "version": "0.0.0", "license": "UNLICENSED", "devDependencies": { "generator-jhipster": "7.2.0", - "husky": "7.0.2", - "lint-staged": "11.1.2", "prettier": "2.4.0", "prettier-plugin-java": "1.4.0", "prettier-plugin-packagejson": "2.2.11" @@ -21,34 +19,97 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.23.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "version": "7.22.20", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "version": "7.23.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -57,7 +118,7 @@ }, "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { @@ -69,7 +130,7 @@ }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { @@ -83,7 +144,7 @@ }, "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { @@ -92,14 +153,14 @@ }, "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" @@ -107,7 +168,7 @@ }, "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { @@ -118,21 +179,30 @@ } }, "node_modules/@chevrotain/types": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-9.0.2.tgz", - "integrity": "sha512-lo1dQPX7DQffJb26eaYLEy4/jUTFmsGKa43mDvMNAHwItEgUQHUkTZR0iAkHG0aJv8ejM/KqYpRVSNetrOK8qw==", + "version": "9.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@chevrotain/types/-/types-9.1.0.tgz", + "integrity": "sha512-3hbCD1CThkv9gnaSIPq0GUXwKni68e0ph6jIHwCvcWiQ4JB2xi8bFxBain0RF04qHUWuDjgnZLj4rLgimuGO+g==", "dev": true }, "node_modules/@chevrotain/utils": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-9.0.2.tgz", - "integrity": "sha512-iTju1VpbGruWagXS/XswuqeimOCRNeDvrXLlWHYsHp1qTU8sJfAfLiX5vs7DNxB1px6N8VWVI0SD8vMUksNBYw==", + "version": "9.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@chevrotain/utils/-/utils-9.1.0.tgz", + "integrity": "sha512-llLJZ8OAlZrjGlBvamm6Zdo/HmGAcCLq5gx7cSwUX8No+n/8ip+oaC4x33IdZIif8+Rh5dQUIZXmfbSghiOmNQ==", "dev": true }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/@dabh/diagnostics": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", - "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", + "version": "2.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", "dev": true, "dependencies": { "colorspace": "1.1.x", @@ -141,20 +211,20 @@ } }, "node_modules/@gar/promisify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", - "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==", + "version": "1.1.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "dev": true }, "node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", "dev": true }, "node_modules/@kwsites/file-exists": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@kwsites/file-exists/-/file-exists-1.1.1.tgz", "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", "dev": true, "dependencies": { @@ -163,13 +233,13 @@ }, "node_modules/@kwsites/promise-deferred": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", "dev": true }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { @@ -182,7 +252,7 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "engines": { @@ -191,7 +261,7 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { @@ -203,9 +273,9 @@ } }, "node_modules/@npmcli/arborist": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-2.9.0.tgz", - "integrity": "sha512-21DTow2xC0GlkowlE4zOu99UY21nSymW14fHZmB0yeAqhagmttJPmCUZXU+ngJmJ/Dwe5YP9QJUTgEVRLqnwcg==", + "version": "2.10.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/arborist/-/arborist-2.10.0.tgz", + "integrity": "sha512-CLnD+zXG9oijEEzViimz8fbOoFVb7hoypiaf7p6giJhvYtrxLAyY3cZAMPIFQvsG731+02eMDp3LqVBNo7BaZA==", "dev": true, "dependencies": { "@isaacs/string-locale-compare": "^1.0.1", @@ -249,9 +319,9 @@ } }, "node_modules/@npmcli/fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz", - "integrity": "sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==", + "version": "1.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", "dev": true, "dependencies": { "@gar/promisify": "^1.0.1", @@ -260,7 +330,7 @@ }, "node_modules/@npmcli/git": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/git/-/git-2.1.0.tgz", "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", "dev": true, "dependencies": { @@ -276,7 +346,7 @@ }, "node_modules/@npmcli/installed-package-contents": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", "dev": true, "dependencies": { @@ -292,7 +362,7 @@ }, "node_modules/@npmcli/map-workspaces": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/map-workspaces/-/map-workspaces-1.0.4.tgz", "integrity": "sha512-wVR8QxhyXsFcD/cORtJwGQodeeaDf0OxcHie8ema4VgFeqwYkFsDPnSrIRSytX8xR6nKPAH89WnwTcaU608b/Q==", "dev": true, "dependencies": { @@ -307,7 +377,7 @@ }, "node_modules/@npmcli/metavuln-calculator": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/metavuln-calculator/-/metavuln-calculator-1.1.1.tgz", "integrity": "sha512-9xe+ZZ1iGVaUovBVFI9h3qW+UuECUzhvZPxK9RaEA2mjU26o5D0JloGYWwLYvQELJNmBdQB6rrpuN8jni6LwzQ==", "dev": true, "dependencies": { @@ -318,8 +388,9 @@ }, "node_modules/@npmcli/move-file": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, "dependencies": { "mkdirp": "^1.0.4", @@ -331,19 +402,19 @@ }, "node_modules/@npmcli/name-from-folder": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz", "integrity": "sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==", "dev": true }, "node_modules/@npmcli/node-gyp": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz", - "integrity": "sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg==", + "version": "1.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", + "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", "dev": true }, "node_modules/@npmcli/package-json": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/package-json/-/package-json-1.0.1.tgz", "integrity": "sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==", "dev": true, "dependencies": { @@ -352,7 +423,7 @@ }, "node_modules/@npmcli/promise-spawn": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", "dev": true, "dependencies": { @@ -361,7 +432,7 @@ }, "node_modules/@npmcli/run-script": { "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/run-script/-/run-script-1.8.6.tgz", "integrity": "sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g==", "dev": true, "dependencies": { @@ -373,7 +444,7 @@ }, "node_modules/@octokit/auth-token": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/auth-token/-/auth-token-2.5.0.tgz", "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", "dev": true, "dependencies": { @@ -381,14 +452,14 @@ } }, "node_modules/@octokit/core": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", - "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", + "version": "3.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/core/-/core-3.6.0.tgz", + "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", "dev": true, "dependencies": { "@octokit/auth-token": "^2.4.4", "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.0", + "@octokit/request": "^5.6.3", "@octokit/request-error": "^2.0.5", "@octokit/types": "^6.0.3", "before-after-hook": "^2.2.0", @@ -397,7 +468,7 @@ }, "node_modules/@octokit/endpoint": { "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/endpoint/-/endpoint-6.0.12.tgz", "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", "dev": true, "dependencies": { @@ -408,7 +479,7 @@ }, "node_modules/@octokit/endpoint/node_modules/is-plain-object": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, "engines": { @@ -417,7 +488,7 @@ }, "node_modules/@octokit/graphql": { "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/graphql/-/graphql-4.8.0.tgz", "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", "dev": true, "dependencies": { @@ -427,18 +498,18 @@ } }, "node_modules/@octokit/openapi-types": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-10.6.1.tgz", - "integrity": "sha512-53YKy8w8+sHQhUONhTiYt6MqNqPolejYr6rK/3VOevpORAIYGQEX2pmXnnhgdSsjHy176e5ZBgVt0ppOGziS7g==", + "version": "12.11.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==", "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "2.16.5", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.16.5.tgz", - "integrity": "sha512-2PfRGymdBypqRes4Xelu0BAZZRCV/Qg0xgo8UB10UKoghCM+zg640+T5WkRsRD0edwfLBPP3VsJgDyDTG4EIYg==", + "version": "2.21.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", + "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", "dev": true, "dependencies": { - "@octokit/types": "^6.31.0" + "@octokit/types": "^6.40.0" }, "peerDependencies": { "@octokit/core": ">=2" @@ -446,7 +517,7 @@ }, "node_modules/@octokit/plugin-request-log": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", "dev": true, "peerDependencies": { @@ -454,12 +525,12 @@ } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "5.11.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.11.3.tgz", - "integrity": "sha512-E19gqHqfP3uJa2/hx6Abhx2NrVP5tsNbst2/AeqGxlGM+eL4N8fRbzhd+NEIsGAB4y3R7e9kVE0y8OOghlXUXw==", + "version": "5.16.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", + "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", "dev": true, "dependencies": { - "@octokit/types": "^6.31.1", + "@octokit/types": "^6.39.0", "deprecation": "^2.3.1" }, "peerDependencies": { @@ -467,22 +538,22 @@ } }, "node_modules/@octokit/request": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.1.tgz", - "integrity": "sha512-Ls2cfs1OfXaOKzkcxnqw5MR6drMA/zWX/LIS/p8Yjdz7QKTPQLMsB3R+OvoxE6XnXeXEE2X7xe4G4l4X0gRiKQ==", + "version": "5.6.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", "dev": true, "dependencies": { "@octokit/endpoint": "^6.0.1", "@octokit/request-error": "^2.1.0", "@octokit/types": "^6.16.1", "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.1", + "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" } }, "node_modules/@octokit/request-error": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/request-error/-/request-error-2.1.0.tgz", "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", "dev": true, "dependencies": { @@ -493,7 +564,7 @@ }, "node_modules/@octokit/request/node_modules/is-plain-object": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, "engines": { @@ -501,29 +572,29 @@ } }, "node_modules/@octokit/rest": { - "version": "18.11.3", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.11.3.tgz", - "integrity": "sha512-k4uCg4PVo6r9ncguSD4fXt6pYkM/FXs7759sYfpvIEhGNPJbFROooOJpkagKPAcSPoEGyEbIR+A9KYIv4jNe4A==", + "version": "18.12.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/rest/-/rest-18.12.0.tgz", + "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", "dev": true, "dependencies": { "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.4", + "@octokit/plugin-paginate-rest": "^2.16.8", "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "5.11.3" + "@octokit/plugin-rest-endpoint-methods": "^5.12.0" } }, "node_modules/@octokit/types": { - "version": "6.31.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.31.1.tgz", - "integrity": "sha512-xkF46eaYcpT8ieO78mZWhMq3bt37zIsP5BUkN+zWgX+mTYDB7jOtUP1MOxcSF8hhJhsjjlB1YDgQAhX0z0oqPw==", + "version": "6.41.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^10.6.1" + "@octokit/openapi-types": "^12.11.0" } }, "node_modules/@tootallnate/once": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true, "engines": { @@ -532,7 +603,7 @@ }, "node_modules/@types/concat-stream": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/concat-stream/-/concat-stream-1.6.1.tgz", "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", "dev": true, "dependencies": { @@ -541,23 +612,23 @@ }, "node_modules/@types/expect": { "version": "1.20.4", - "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/expect/-/expect-1.20.4.tgz", "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", "dev": true }, "node_modules/@types/form-data": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", + "version": "7.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, "dependencies": { "@types/minimatch": "*", @@ -566,38 +637,38 @@ }, "node_modules/@types/minimatch": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/minimatch/-/minimatch-3.0.5.tgz", "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", "dev": true }, "node_modules/@types/node": { "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/node/-/node-8.10.66.tgz", "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", "dev": true }, "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "version": "2.4.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "node_modules/@types/qs": { + "version": "6.9.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==", "dev": true }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", "dev": true }, "node_modules/@types/vinyl": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.6.tgz", - "integrity": "sha512-ayJ0iOCDNHnKpKTgBG6Q6JOnHTj9zFta+3j2b8Ejza0e4cvRyMn0ZoLEmbPrTHe5YYRlDYPvPWVdV4cTaRyH7g==", + "version": "2.0.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/vinyl/-/vinyl-2.0.11.tgz", + "integrity": "sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==", "dev": true, "dependencies": { "@types/expect": "^1.20.4", @@ -606,13 +677,13 @@ }, "node_modules/abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, "node_modules/agent-base": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "dependencies": { @@ -623,13 +694,11 @@ } }, "node_modules/agentkeepalive": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", - "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", + "version": "4.5.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", "dev": true, "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", "humanize-ms": "^1.2.1" }, "engines": { @@ -638,7 +707,7 @@ }, "node_modules/aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "dependencies": { @@ -650,9 +719,9 @@ } }, "node_modules/ajv": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", - "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", + "version": "8.12.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -667,7 +736,7 @@ }, "node_modules/ajv-formats": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "dependencies": { @@ -683,17 +752,20 @@ } }, "node_modules/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==", + "version": "1.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", "dev": true, + "dependencies": { + "ansi-wrap": "^0.1.0" + }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, "node_modules/ansi-escapes": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-escapes/-/ansi-escapes-3.2.0.tgz", "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true, "engines": { @@ -701,9 +773,9 @@ } }, "node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, "engines": { "node": ">=6" @@ -711,7 +783,7 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -726,8 +798,8 @@ }, "node_modules/ansi-wrap": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -735,13 +807,13 @@ }, "node_modules/aproba": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, "node_modules/are-we-there-yet": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", "dev": true, "dependencies": { @@ -750,9 +822,9 @@ } }, "node_modules/are-we-there-yet/node_modules/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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -766,13 +838,13 @@ }, "node_modules/are-we-there-yet/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/are-we-there-yet/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { @@ -781,14 +853,14 @@ }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "node_modules/arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -796,8 +868,8 @@ }, "node_modules/arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -805,7 +877,7 @@ }, "node_modules/array-differ": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-differ/-/array-differ-3.0.0.tgz", "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", "dev": true, "engines": { @@ -814,7 +886,7 @@ }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, "engines": { @@ -823,7 +895,7 @@ }, "node_modules/arrify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arrify/-/arrify-2.0.1.tgz", "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true, "engines": { @@ -832,14 +904,14 @@ }, "node_modules/asap": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true }, "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "version": "0.2.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, "dependencies": { "safer-buffer": "~2.1.0" @@ -847,8 +919,8 @@ }, "node_modules/assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "dev": true, "engines": { "node": ">=0.8" @@ -856,26 +928,17 @@ }, "node_modules/assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, "dependencies": { "lodash": "^4.17.14" @@ -883,13 +946,13 @@ }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, "node_modules/atomically": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/atomically/-/atomically-1.7.0.tgz", "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", "dev": true, "engines": { @@ -898,7 +961,7 @@ }, "node_modules/aws-sdk": { "version": "2.987.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.987.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aws-sdk/-/aws-sdk-2.987.0.tgz", "integrity": "sha512-XgMrHWHE3aKg11D4QSlpyLvsGw6mHHiUQuowbswd11k89Q6wEfA+jMbYMC7/jsx3LrH9EKti70qhfZyw/wQIfg==", "dev": true, "hasInstallScript": true, @@ -919,7 +982,7 @@ }, "node_modules/aws-sdk/node_modules/uuid": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, @@ -929,22 +992,22 @@ }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "dev": true, "engines": { "node": "*" } }, "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "version": "1.12.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", "dev": true }, "node_modules/axios": { "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/axios/-/axios-0.21.4.tgz", "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "dev": true, "dependencies": { @@ -953,13 +1016,13 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true, "funding": [ @@ -979,27 +1042,27 @@ }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, "dependencies": { "tweetnacl": "^0.14.3" } }, "node_modules/before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", + "version": "2.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", "dev": true }, "node_modules/bin-links": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-2.2.1.tgz", - "integrity": "sha512-wFzVTqavpgCCYAh8SVBdnZdiQMxTkGR+T3b14CNpBXIBe2neJWaMGAZ55XWWHELJJ89dscuq0VCBqcVaIOgCMg==", + "version": "2.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bin-links/-/bin-links-2.3.0.tgz", + "integrity": "sha512-JzrOLHLwX2zMqKdyYZjkDgQGT+kHDkIhv2/IK2lJ00qLxV4TmFoHi8drDBb6H5Zrz1YfgHkai4e2MGPqnoUhqA==", "dev": true, "dependencies": { "cmd-shim": "^4.0.1", - "mkdirp": "^1.0.3", + "mkdirp-infer-owner": "^2.0.0", "npm-normalize-package-bin": "^1.0.0", "read-cmd-shim": "^2.0.0", "rimraf": "^3.0.0", @@ -1010,9 +1073,9 @@ } }, "node_modules/binaryextensions": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.18.0.tgz", - "integrity": "sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==", + "version": "4.19.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/binaryextensions/-/binaryextensions-4.19.0.tgz", + "integrity": "sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==", "dev": true, "engines": { "node": ">=0.8" @@ -1023,7 +1086,7 @@ }, "node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "dependencies": { @@ -1034,7 +1097,7 @@ }, "node_modules/bl/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ @@ -1058,7 +1121,7 @@ }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { @@ -1068,7 +1131,7 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { @@ -1080,7 +1143,7 @@ }, "node_modules/buffer": { "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/buffer/-/buffer-4.9.2.tgz", "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, "dependencies": { @@ -1091,19 +1154,19 @@ }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "node_modules/builtins": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", "dev": true }, "node_modules/cacache": { "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "dev": true, "dependencies": { @@ -1130,24 +1193,15 @@ "node": ">= 10" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", "dev": true }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -1163,13 +1217,13 @@ }, "node_modules/chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, "node_modules/chevrotain": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-9.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chevrotain/-/chevrotain-9.0.2.tgz", "integrity": "sha512-6ZjgUdGvU4j1n1b2hTjb79Vr2V+qNtmP7f8FVt79+kdAYcUj2QfYNwI8ycCVsgHD/dIeO5Vr1hckkkfliVQTfg==", "dev": true, "dependencies": { @@ -1180,7 +1234,7 @@ }, "node_modules/chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, "engines": { @@ -1189,7 +1243,7 @@ }, "node_modules/clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, "engines": { @@ -1198,8 +1252,8 @@ }, "node_modules/cli-cursor": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", "dev": true, "dependencies": { "restore-cursor": "^2.0.0" @@ -1209,9 +1263,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", - "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", + "version": "2.9.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, "engines": { "node": ">=6" @@ -1221,9 +1275,9 @@ } }, "node_modules/cli-table": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz", - "integrity": "sha512-ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ==", + "version": "0.3.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-table/-/cli-table-0.3.11.tgz", + "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", "dev": true, "dependencies": { "colors": "1.0.3" @@ -1232,76 +1286,16 @@ "node": ">= 0.2.0" } }, - "node_modules/cli-table/node_modules/colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/cli-width": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-width/-/cli-width-2.2.1.tgz", "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, "node_modules/clone": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true, "engines": { "node": ">=0.8" @@ -1309,8 +1303,8 @@ }, "node_modules/clone-buffer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", "dev": true, "engines": { "node": ">= 0.10" @@ -1318,13 +1312,13 @@ }, "node_modules/clone-stats": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", "dev": true }, "node_modules/cloneable-readable": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cloneable-readable/-/cloneable-readable-1.1.3.tgz", "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", "dev": true, "dependencies": { @@ -1334,9 +1328,9 @@ } }, "node_modules/cloneable-readable/node_modules/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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -1350,13 +1344,13 @@ }, "node_modules/cloneable-readable/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/cloneable-readable/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { @@ -1365,7 +1359,7 @@ }, "node_modules/cmd-shim": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cmd-shim/-/cmd-shim-4.1.0.tgz", "integrity": "sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==", "dev": true, "dependencies": { @@ -1377,26 +1371,26 @@ }, "node_modules/code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", - "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", + "version": "3.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", "dev": true, "dependencies": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" + "color-convert": "^1.9.3", + "color-string": "^1.6.0" } }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -1408,14 +1402,14 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/color-string": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz", - "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", + "version": "1.9.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", "dev": true, "dependencies": { "color-name": "^1.0.0", @@ -1424,7 +1418,7 @@ }, "node_modules/color/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { @@ -1433,38 +1427,32 @@ }, "node_modules/color/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "version": "1.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", "dev": true, "engines": { "node": ">=0.1.90" } }, "node_modules/colorspace": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", - "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", + "version": "1.1.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", "dev": true, "dependencies": { - "color": "3.0.x", + "color": "^3.1.3", "text-hex": "1.0.x" } }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "dependencies": { @@ -1476,7 +1464,7 @@ }, "node_modules/commander": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-8.2.0.tgz", "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==", "dev": true, "engines": { @@ -1485,25 +1473,25 @@ }, "node_modules/common-ancestor-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", "dev": true }, "node_modules/commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "node_modules/concat-stream": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "engines": [ @@ -1517,9 +1505,9 @@ } }, "node_modules/concat-stream/node_modules/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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -1533,13 +1521,13 @@ }, "node_modules/concat-stream/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/concat-stream/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { @@ -1548,7 +1536,7 @@ }, "node_modules/conf": { "version": "10.0.2", - "resolved": "https://registry.npmjs.org/conf/-/conf-10.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/conf/-/conf-10.0.2.tgz", "integrity": "sha512-iyy4ArqyQ/yrzNASNBN+jaylu53JRuq0ztvL6KAWYHj4iN56BVuhy2SrzEEHBodNbacZr2Pd/4nWhoAwc66T1g==", "dev": true, "dependencies": { @@ -1572,35 +1560,19 @@ }, "node_modules/console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "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" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { @@ -1614,7 +1586,7 @@ }, "node_modules/dargs": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dargs/-/dargs-7.0.0.tgz", "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true, "engines": { @@ -1623,8 +1595,8 @@ }, "node_modules/dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, "dependencies": { "assert-plus": "^1.0.0" @@ -1635,7 +1607,7 @@ }, "node_modules/dateformat": { "version": "4.6.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dateformat/-/dateformat-4.6.3.tgz", "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", "dev": true, "engines": { @@ -1644,7 +1616,7 @@ }, "node_modules/debounce-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debounce-fn/-/debounce-fn-4.0.0.tgz", "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", "dev": true, "dependencies": { @@ -1659,7 +1631,7 @@ }, "node_modules/debug": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "dependencies": { @@ -1676,8 +1648,9 @@ }, "node_modules/debuglog": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, "engines": { "node": "*" @@ -1685,7 +1658,7 @@ }, "node_modules/deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, "engines": { @@ -1693,18 +1666,21 @@ } }, "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "version": "1.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, "dependencies": { "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/defaults/node_modules/clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, "engines": { "node": ">=0.8" @@ -1712,8 +1688,8 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, "engines": { "node": ">=0.4.0" @@ -1721,28 +1697,19 @@ }, "node_modules/delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "dev": true }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/deprecation": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/deprecation/-/deprecation-2.3.1.tgz", "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "dev": true }, "node_modules/detect-indent": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/detect-indent/-/detect-indent-6.1.0.tgz", "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true, "engines": { @@ -1751,7 +1718,7 @@ }, "node_modules/detect-newline": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, "engines": { @@ -1759,9 +1726,9 @@ } }, "node_modules/dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "version": "1.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", "dev": true, "dependencies": { "asap": "^2.0.0", @@ -1770,14 +1737,14 @@ }, "node_modules/didyoumean": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "dev": true }, "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true, "engines": { "node": ">=0.3.1" @@ -1785,7 +1752,7 @@ }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "dependencies": { @@ -1797,7 +1764,7 @@ }, "node_modules/dot-prop": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dot-prop/-/dot-prop-6.0.1.tgz", "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dev": true, "dependencies": { @@ -1812,7 +1779,7 @@ }, "node_modules/drange": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/drange/-/drange-1.1.1.tgz", "integrity": "sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==", "dev": true, "engines": { @@ -1821,8 +1788,8 @@ }, "node_modules/ecc-jsbn": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, "dependencies": { "jsbn": "~0.1.0", @@ -1831,7 +1798,7 @@ }, "node_modules/ejs": { "version": "3.1.6", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ejs/-/ejs-3.1.6.tgz", "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", "dev": true, "dependencies": { @@ -1846,19 +1813,19 @@ }, "node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "node_modules/enabled": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/enabled/-/enabled-2.0.0.tgz", "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", "dev": true }, "node_modules/encoding": { "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "optional": true, @@ -1868,7 +1835,7 @@ }, "node_modules/encoding/node_modules/iconv-lite": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "optional": true, @@ -1881,28 +1848,16 @@ }, "node_modules/end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "dependencies": { "once": "^1.4.0" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/env-paths": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, "engines": { @@ -1911,29 +1866,35 @@ }, "node_modules/err-code": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true }, "node_modules/error": { "version": "10.4.0", - "resolved": "https://registry.npmjs.org/error/-/error-10.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/error/-/error-10.4.0.tgz", "integrity": "sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==", "dev": true }, "node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "dependencies": { "is-arrayish": "^0.2.1" } }, + "node_modules/error-ex/node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -1941,7 +1902,7 @@ }, "node_modules/esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "bin": { @@ -1954,33 +1915,33 @@ }, "node_modules/eventemitter3": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, "node_modules/events": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/events/-/events-1.1.1.tgz", + "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==", "dev": true, "engines": { "node": ">=0.4.x" } }, "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "4.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", + "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.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" }, "engines": { @@ -1992,14 +1953,14 @@ }, "node_modules/extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, "node_modules/extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "dev": true, "dependencies": { "assign-symbols": "^1.0.0", @@ -2011,7 +1972,7 @@ }, "node_modules/external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "dependencies": { @@ -2025,8 +1986,8 @@ }, "node_modules/extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "dev": true, "engines": [ "node >=0.6.0" @@ -2034,20 +1995,20 @@ }, "node_modules/faker": { "version": "5.5.3", - "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/faker/-/faker-5.5.3.tgz", "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==", "dev": true }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.3.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -2057,34 +2018,34 @@ "micromatch": "^4.0.4" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" } }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.16.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", "dev": true, "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fecha": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", - "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==", + "version": "4.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", "dev": true }, "node_modules/figures": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", "dev": true, "dependencies": { "escape-string-regexp": "^1.0.5" @@ -2094,17 +2055,38 @@ } }, "node_modules/filelist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", - "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", + "version": "1.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, "dependencies": { - "minimatch": "^3.0.4" + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { @@ -2116,7 +2098,7 @@ }, "node_modules/find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "dependencies": { @@ -2128,7 +2110,7 @@ }, "node_modules/find-yarn-workspace-root2": { "version": "1.2.16", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", "dev": true, "dependencies": { @@ -2138,8 +2120,8 @@ }, "node_modules/first-chunk-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", - "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "integrity": "sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==", "dev": true, "dependencies": { "readable-stream": "^2.0.2" @@ -2149,9 +2131,9 @@ } }, "node_modules/first-chunk-stream/node_modules/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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -2165,13 +2147,13 @@ }, "node_modules/first-chunk-stream/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/first-chunk-stream/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { @@ -2180,14 +2162,14 @@ }, "node_modules/fn.name": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fn.name/-/fn.name-1.1.0.tgz", "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", "dev": true }, "node_modules/follow-redirects": { - "version": "1.14.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz", - "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==", + "version": "1.15.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "dev": true, "funding": [ { @@ -2206,8 +2188,8 @@ }, "node_modules/forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true, "engines": { "node": "*" @@ -2215,7 +2197,7 @@ }, "node_modules/form-data": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "dependencies": { @@ -2229,7 +2211,7 @@ }, "node_modules/fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "dependencies": { @@ -2241,20 +2223,23 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", "dev": true, "dependencies": { "aproba": "^1.0.3", @@ -2269,8 +2254,8 @@ }, "node_modules/gauge/node_modules/ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2278,8 +2263,8 @@ }, "node_modules/gauge/node_modules/is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", "dev": true, "dependencies": { "number-is-nan": "^1.0.0" @@ -2290,8 +2275,8 @@ }, "node_modules/gauge/node_modules/string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", "dev": true, "dependencies": { "code-point-at": "^1.0.0", @@ -2304,8 +2289,8 @@ }, "node_modules/gauge/node_modules/strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" @@ -2316,7 +2301,7 @@ }, "node_modules/generator-jhipster": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/generator-jhipster/-/generator-jhipster-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/generator-jhipster/-/generator-jhipster-7.2.0.tgz", "integrity": "sha512-ys3y8M70NfueQaTYPglYwOF5rqkZyguQPwTrMvGLE5DpDxG41m2XcuJA9OZjLk/E9G5vFljceYHOcyodfFFnMg==", "dev": true, "dependencies": { @@ -2368,19 +2353,16 @@ "url": "https://opencollective.com/generator-jhipster" } }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "version": "5.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -2388,8 +2370,8 @@ }, "node_modules/getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, "dependencies": { "assert-plus": "^1.0.0" @@ -2397,7 +2379,7 @@ }, "node_modules/git-hooks-list": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/git-hooks-list/-/git-hooks-list-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/git-hooks-list/-/git-hooks-list-1.0.3.tgz", "integrity": "sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==", "dev": true, "funding": { @@ -2406,7 +2388,7 @@ }, "node_modules/github-username": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/github-username/-/github-username-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/github-username/-/github-username-6.0.0.tgz", "integrity": "sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==", "dev": true, "dependencies": { @@ -2421,7 +2403,7 @@ }, "node_modules/glob": { "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob/-/glob-7.1.7.tgz", "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, "dependencies": { @@ -2441,7 +2423,7 @@ }, "node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { @@ -2452,16 +2434,16 @@ } }, "node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" }, "engines": { @@ -2472,14 +2454,14 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "version": "4.2.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "node_modules/grouped-queue": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/grouped-queue/-/grouped-queue-2.0.0.tgz", "integrity": "sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==", "dev": true, "engines": { @@ -2488,7 +2470,7 @@ }, "node_modules/gulp-filter": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/gulp-filter/-/gulp-filter-7.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/gulp-filter/-/gulp-filter-7.0.0.tgz", "integrity": "sha512-ZGWtJo0j1mHfP77tVuhyqem4MRA5NfNRjoVe6VAkLGeQQ/QGo2VsFwp7zfPTGDsd1rwzBmoDHhxpE6f5B3Zuaw==", "dev": true, "dependencies": { @@ -2514,8 +2496,8 @@ }, "node_modules/har-schema": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "dev": true, "engines": { "node": ">=4" @@ -2523,7 +2505,7 @@ }, "node_modules/har-validator": { "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "deprecated": "this library is no longer supported", "dev": true, @@ -2537,7 +2519,7 @@ }, "node_modules/har-validator/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { @@ -2553,26 +2535,14 @@ }, "node_modules/har-validator/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" @@ -2580,14 +2550,26 @@ }, "node_modules/has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "version": "4.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -2598,7 +2580,7 @@ }, "node_modules/http-basic": { "version": "8.1.3", - "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-basic/-/http-basic-8.1.3.tgz", "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", "dev": true, "dependencies": { @@ -2612,14 +2594,14 @@ } }, "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true }, "node_modules/http-proxy-agent": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, "dependencies": { @@ -2633,7 +2615,7 @@ }, "node_modules/http-response-object": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-response-object/-/http-response-object-3.0.2.tgz", "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", "dev": true, "dependencies": { @@ -2642,14 +2624,14 @@ }, "node_modules/http-response-object/node_modules/@types/node": { "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/node/-/node-10.17.60.tgz", "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", "dev": true }, "node_modules/http-signature": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "dev": true, "dependencies": { "assert-plus": "^1.0.0", @@ -2662,9 +2644,9 @@ } }, "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "dependencies": { "agent-base": "6", @@ -2675,41 +2657,26 @@ } }, "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "version": "1.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true, "engines": { - "node": ">=10.17.0" + "node": ">=8.12.0" } }, "node_modules/humanize-ms": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dev": true, "dependencies": { "ms": "^2.0.0" } }, - "node_modules/husky": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.2.tgz", - "integrity": "sha512-8yKEWNX4z2YsofXAMT7KvA1g8p+GxtB1ffV8XtpAEGuXNAbCV5wdNKH+qTpw8SM9fh4aMPDR+yQuKfgnreyZlg==", - "dev": true, - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, "node_modules/iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "dependencies": { @@ -2721,14 +2688,14 @@ }, "node_modules/ieee754": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ieee754/-/ieee754-1.1.13.tgz", "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, "node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, "engines": { "node": ">= 4" @@ -2736,33 +2703,17 @@ }, "node_modules/ignore-walk": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ignore-walk/-/ignore-walk-3.0.4.tgz", "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", "dev": true, "dependencies": { "minimatch": "^3.0.4" } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { "node": ">=0.8.19" @@ -2770,7 +2721,7 @@ }, "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "engines": { @@ -2779,14 +2730,14 @@ }, "node_modules/infer-owner": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", "dev": true }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { "once": "^1.3.0", @@ -2795,13 +2746,13 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "node_modules/inquirer": { "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inquirer/-/inquirer-6.5.2.tgz", "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "dev": true, "dependencies": { @@ -2825,7 +2776,7 @@ }, "node_modules/inquirer/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { @@ -2837,7 +2788,7 @@ }, "node_modules/inquirer/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { @@ -2851,7 +2802,7 @@ }, "node_modules/inquirer/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { @@ -2860,14 +2811,14 @@ }, "node_modules/inquirer/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/inquirer/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" @@ -2875,7 +2826,7 @@ }, "node_modules/inquirer/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { @@ -2887,7 +2838,7 @@ }, "node_modules/insight": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/insight/-/insight-0.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/insight/-/insight-0.11.1.tgz", "integrity": "sha512-TBcZ0qC9dgdmcxL93OoqkY/RZXJtIi0i07phX/QyYk2ysmJtZex59dgTj4Doq50N9CG9dLRe/RIudc/5CCoFNw==", "dev": true, "dependencies": { @@ -2907,7 +2858,7 @@ }, "node_modules/interpret": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, "engines": { @@ -2916,7 +2867,7 @@ }, "node_modules/invert-kv": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/invert-kv/-/invert-kv-3.0.1.tgz", "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==", "dev": true, "engines": { @@ -2927,14 +2878,14 @@ } }, "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", "dev": true }, "node_modules/is-absolute": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-absolute/-/is-absolute-1.0.0.tgz", "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "dev": true, "dependencies": { @@ -2946,18 +2897,18 @@ } }, "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "version": "0.3.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "dev": true }, "node_modules/is-core-module": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", - "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", + "version": "2.13.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2965,7 +2916,7 @@ }, "node_modules/is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "dependencies": { @@ -2977,25 +2928,25 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/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==", + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { @@ -3007,7 +2958,7 @@ }, "node_modules/is-interactive": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, "engines": { @@ -3016,14 +2967,14 @@ }, "node_modules/is-lambda": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, "node_modules/is-negated-glob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3031,7 +2982,7 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "engines": { @@ -3040,7 +2991,7 @@ }, "node_modules/is-obj": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, "engines": { @@ -3049,7 +3000,7 @@ }, "node_modules/is-plain-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, "engines": { @@ -3058,7 +3009,7 @@ }, "node_modules/is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "dependencies": { @@ -3068,18 +3019,9 @@ "node": ">=0.10.0" } }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-relative": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-relative/-/is-relative-1.0.0.tgz", "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, "dependencies": { @@ -3091,7 +3033,7 @@ }, "node_modules/is-scoped": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-scoped/-/is-scoped-2.1.0.tgz", "integrity": "sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==", "dev": true, "dependencies": { @@ -3103,7 +3045,7 @@ }, "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "engines": { @@ -3115,13 +3057,13 @@ }, "node_modules/is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, "node_modules/is-unc-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-unc-path/-/is-unc-path-1.0.0.tgz", "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, "dependencies": { @@ -3133,7 +3075,7 @@ }, "node_modules/is-unicode-supported": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, "engines": { @@ -3145,13 +3087,13 @@ }, "node_modules/is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", "dev": true }, "node_modules/is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, "engines": { @@ -3160,14 +3102,14 @@ }, "node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "node_modules/isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "version": "4.0.10", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true, "engines": { "node": ">= 8.0.0" @@ -3178,14 +3120,14 @@ }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "node_modules/isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3193,99 +3135,49 @@ }, "node_modules/isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", "dev": true }, "node_modules/jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "version": "10.8.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", "dev": true, "dependencies": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" }, "bin": { "jake": "bin/cli.js" }, "engines": { - "node": "*" - } - }, - "node_modules/jake/node_modules/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, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "node": ">=10" } }, "node_modules/jake/node_modules/async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "node_modules/jake/node_modules/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, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jake/node_modules/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, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "version": "3.2.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, - "node_modules/jake/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/jake/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/jake/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=4" + "node": "*" } }, "node_modules/java-parser": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/java-parser/-/java-parser-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/java-parser/-/java-parser-1.4.0.tgz", "integrity": "sha512-5r1Ez6D8SRprarqwXTYzu6Am//jw37USu8ie8a5166KfgTc2yKa0wlz08xKX1HXYRo/jbnODUfGMgd7gPhHLog==", "dev": true, "dependencies": { @@ -3295,7 +3187,7 @@ }, "node_modules/java-parser/node_modules/chevrotain": { "version": "6.5.0", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-6.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chevrotain/-/chevrotain-6.5.0.tgz", "integrity": "sha512-BwqQ/AgmKJ8jcMEjaSnfMybnKMgGTrtDKowfTP3pX4jwVy0kNjRsT/AP6h+wC3+3NC+X8X15VWBnTCQlX+wQFg==", "dev": true, "dependencies": { @@ -3304,14 +3196,14 @@ }, "node_modules/java-parser/node_modules/regexp-to-ast": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regexp-to-ast/-/regexp-to-ast-0.4.0.tgz", "integrity": "sha512-4qf/7IsIKfSNHQXSwial1IFmfM1Cc/whNBQqRwe0V2stPe7KmN1U0tWQiIx6JiirgSrisjE0eECdNf7Tav1Ntw==", "dev": true }, "node_modules/jmespath": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w==", "dev": true, "engines": { "node": ">= 0.6.0" @@ -3319,13 +3211,13 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { @@ -3337,37 +3229,37 @@ }, "node_modules/jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", "dev": true }, "node_modules/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "version": "0.4.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", "dev": true }, "node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/json-schema-typed": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-typed/-/json-schema-typed-7.0.3.tgz", "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", "dev": true }, "node_modules/json-stringify-nice": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==", "dev": true, "funding": { @@ -3376,55 +3268,55 @@ }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, "node_modules/jsonparse": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, "engines": [ "node >= 0.2.0" ] }, "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "version": "1.4.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, - "engines": [ - "node >=0.6.0" - ], "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.2.3", + "json-schema": "0.4.0", "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" } }, "node_modules/just-diff": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/just-diff/-/just-diff-3.1.1.tgz", "integrity": "sha512-sdMWKjRq8qWZEjDcVA6llnUT8RDEBIfOiGpYFPYa9u+2c39JCsejktSP7mj5eRid5EIvTzIpQ2kDOCw1Nq9BjQ==", "dev": true }, "node_modules/just-diff-apply": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-3.0.0.tgz", - "integrity": "sha512-K2MLc+ZC2DVxX4V61bIKPeMUUfj1YYZ3h0myhchDXOW1cKoPZMnjIoNCqv9bF2n5Oob1PFxuR2gVJxkxz4e58w==", + "version": "3.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/just-diff-apply/-/just-diff-apply-3.1.2.tgz", + "integrity": "sha512-TCa7ZdxCeq6q3Rgms2JCRHTCfWAETPZ8SzYUbkYF6KR3I03sN29DaOIC+xyWboIcMvjAsD5iG2u/RWzHD8XpgQ==", "dev": true }, "node_modules/kuler": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kuler/-/kuler-2.0.0.tgz", "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", "dev": true }, "node_modules/lcid": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lcid/-/lcid-3.1.1.tgz", "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==", "dev": true, "dependencies": { @@ -3435,72 +3327,14 @@ } }, "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "version": "1.2.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "node_modules/lint-staged": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.1.2.tgz", - "integrity": "sha512-6lYpNoA9wGqkL6Hew/4n1H6lRqF3qCsujVT0Oq5Z4hiSAM7S6NksPJ3gnr7A7R52xCtiZMcEUNNQ6d6X5Bvh9w==", - "dev": true, - "dependencies": { - "chalk": "^4.1.1", - "cli-truncate": "^2.1.0", - "commander": "^7.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", - "enquirer": "^2.3.6", - "execa": "^5.0.0", - "listr2": "^3.8.2", - "log-symbols": "^4.1.0", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/lint-staged/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/listr2": { - "version": "3.12.2", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.12.2.tgz", - "integrity": "sha512-64xC2CJ/As/xgVI3wbhlPWVPx0wfTqbUAkpb7bjDi0thSWMqrf07UFhrfsGoo8YSXmF049Rp9C0cjLC8rZxK9A==", - "dev": true, - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^1.4.0", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rxjs": "^6.6.7", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - } - }, "node_modules/load-yaml-file": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/load-yaml-file/-/load-yaml-file-0.2.0.tgz", "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", "dev": true, "dependencies": { @@ -3515,7 +3349,7 @@ }, "node_modules/load-yaml-file/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "dependencies": { @@ -3524,7 +3358,7 @@ }, "node_modules/load-yaml-file/node_modules/js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { @@ -3537,7 +3371,7 @@ }, "node_modules/load-yaml-file/node_modules/pify": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "engines": { @@ -3546,8 +3380,8 @@ }, "node_modules/load-yaml-file/node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { "node": ">=4" @@ -3555,7 +3389,7 @@ }, "node_modules/locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "dependencies": { @@ -3568,19 +3402,19 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "node_modules/lodash.debounce": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "node_modules/log-symbols": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "dependencies": { @@ -3594,158 +3428,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/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, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/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, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/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, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/logform": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.3.0.tgz", - "integrity": "sha512-graeoWUH2knKbGthMtuG1EfaSPMZFZBIrhuJHhkS5ZseFBrc7DupCzihOQAzsK/qIKPQaPJ/lFQFctILUY5ARQ==", + "version": "2.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", "dev": true, "dependencies": { - "colors": "^1.2.1", + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", "fecha": "^4.2.0", "ms": "^2.1.1", - "safe-stable-stringify": "^1.1.0", + "safe-stable-stringify": "^2.3.1", "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" } }, "node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { @@ -3756,9 +3458,9 @@ } }, "node_modules/macos-release": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.0.tgz", - "integrity": "sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g==", + "version": "2.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/macos-release/-/macos-release-2.5.1.tgz", + "integrity": "sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==", "dev": true, "engines": { "node": ">=6" @@ -3769,7 +3471,7 @@ }, "node_modules/make-fetch-happen": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, "dependencies": { @@ -3796,7 +3498,7 @@ }, "node_modules/map-age-cleaner": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, "dependencies": { @@ -3808,7 +3510,7 @@ }, "node_modules/mem": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/mem/-/mem-5.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mem/-/mem-5.1.1.tgz", "integrity": "sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==", "dev": true, "dependencies": { @@ -3821,12 +3523,12 @@ } }, "node_modules/mem-fs": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-2.2.1.tgz", - "integrity": "sha512-yiAivd4xFOH/WXlUi6v/nKopBh1QLzwjFi36NK88cGt/PRXI8WeBASqY+YSjIVWvQTx3hR8zHKDBMV6hWmglNA==", + "version": "2.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mem-fs/-/mem-fs-2.3.0.tgz", + "integrity": "sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==", "dev": true, "dependencies": { - "@types/node": "^15.6.1", + "@types/node": "^15.6.2", "@types/vinyl": "^2.0.4", "vinyl": "^2.0.1", "vinyl-file": "^3.0.0" @@ -3837,7 +3539,7 @@ }, "node_modules/mem-fs-editor": { "version": "9.3.0", - "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-9.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mem-fs-editor/-/mem-fs-editor-9.3.0.tgz", "integrity": "sha512-QKFbPwGCh1ypmc2H8BUYpbapwT/x2AOCYZQogzSui4rUNes7WVMagQXsirPIfp18EarX0SSY9Fpg426nSjew4Q==", "dev": true, "dependencies": { @@ -3866,13 +3568,13 @@ }, "node_modules/mem-fs/node_modules/@types/node": { "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/node/-/node-15.14.9.tgz", "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", "dev": true }, "node_modules/mem/node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { @@ -3881,13 +3583,13 @@ }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "engines": { @@ -3895,34 +3597,34 @@ } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" } }, "node_modules/mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", + "version": "1.52.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "version": "2.1.35", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "dependencies": { - "mime-db": "1.49.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -3930,7 +3632,7 @@ }, "node_modules/mimic-fn": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-3.1.0.tgz", "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", "dev": true, "engines": { @@ -3939,7 +3641,7 @@ }, "node_modules/minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "dependencies": { @@ -3950,15 +3652,18 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "version": "1.2.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/minipass": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", - "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "version": "3.3.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "dependencies": { "yallist": "^4.0.0" @@ -3969,7 +3674,7 @@ }, "node_modules/minipass-collect": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, "dependencies": { @@ -3981,7 +3686,7 @@ }, "node_modules/minipass-fetch": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-fetch/-/minipass-fetch-1.4.1.tgz", "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "dev": true, "dependencies": { @@ -3998,7 +3703,7 @@ }, "node_modules/minipass-flush": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, "dependencies": { @@ -4010,7 +3715,7 @@ }, "node_modules/minipass-json-stream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "dev": true, "dependencies": { @@ -4020,7 +3725,7 @@ }, "node_modules/minipass-pipeline": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, "dependencies": { @@ -4032,7 +3737,7 @@ }, "node_modules/minipass-sized": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, "dependencies": { @@ -4044,7 +3749,7 @@ }, "node_modules/minizlib": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "dependencies": { @@ -4057,7 +3762,7 @@ }, "node_modules/mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, "bin": { @@ -4069,7 +3774,7 @@ }, "node_modules/mkdirp-infer-owner": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", "dev": true, "dependencies": { @@ -4083,13 +3788,13 @@ }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/multimatch": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/multimatch/-/multimatch-5.0.0.tgz", "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", "dev": true, "dependencies": { @@ -4108,34 +3813,42 @@ }, "node_modules/mute-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", "dev": true }, "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "version": "0.6.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/node-fetch": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", - "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "version": "2.7.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, "dependencies": { "whatwg-url": "^5.0.0" }, "engines": { "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/node-gyp": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-gyp/-/node-gyp-7.1.2.tgz", "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", "dev": true, "dependencies": { @@ -4159,7 +3872,7 @@ }, "node_modules/nopt": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, "dependencies": { @@ -4174,7 +3887,7 @@ }, "node_modules/normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "dependencies": { @@ -4186,14 +3899,14 @@ }, "node_modules/normalize-package-data/node_modules/hosted-git-info": { "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -4201,7 +3914,7 @@ }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "engines": { @@ -4210,7 +3923,7 @@ }, "node_modules/npm-bundled": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-bundled/-/npm-bundled-1.1.2.tgz", "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", "dev": true, "dependencies": { @@ -4219,7 +3932,7 @@ }, "node_modules/npm-install-checks": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-install-checks/-/npm-install-checks-4.0.0.tgz", "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", "dev": true, "dependencies": { @@ -4231,13 +3944,13 @@ }, "node_modules/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", "dev": true }, "node_modules/npm-package-arg": { "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-package-arg/-/npm-package-arg-8.1.5.tgz", "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", "dev": true, "dependencies": { @@ -4251,7 +3964,7 @@ }, "node_modules/npm-packlist": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-packlist/-/npm-packlist-2.2.2.tgz", "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", "dev": true, "dependencies": { @@ -4269,7 +3982,7 @@ }, "node_modules/npm-pick-manifest": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", "dev": true, "dependencies": { @@ -4281,7 +3994,7 @@ }, "node_modules/npm-registry-fetch": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "dev": true, "dependencies": { @@ -4298,7 +4011,7 @@ }, "node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "dependencies": { @@ -4310,7 +4023,7 @@ }, "node_modules/npmlog": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "dependencies": { @@ -4322,8 +4035,8 @@ }, "node_modules/number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4331,7 +4044,7 @@ }, "node_modules/oauth-sign": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true, "engines": { @@ -4340,8 +4053,8 @@ }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4349,8 +4062,8 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { "wrappy": "1" @@ -4358,7 +4071,7 @@ }, "node_modules/one-time": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/one-time/-/one-time-1.0.0.tgz", "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", "dev": true, "dependencies": { @@ -4367,7 +4080,7 @@ }, "node_modules/onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "dependencies": { @@ -4382,7 +4095,7 @@ }, "node_modules/onetime/node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { @@ -4391,7 +4104,7 @@ }, "node_modules/ora": { "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, "dependencies": { @@ -4414,7 +4127,7 @@ }, "node_modules/ora/node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { @@ -4423,7 +4136,7 @@ }, "node_modules/ora/node_modules/cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "dependencies": { @@ -4435,7 +4148,7 @@ }, "node_modules/ora/node_modules/restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "dependencies": { @@ -4448,7 +4161,7 @@ }, "node_modules/ora/node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { @@ -4460,7 +4173,7 @@ }, "node_modules/os-locale": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/os-locale/-/os-locale-5.0.0.tgz", "integrity": "sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==", "dev": true, "dependencies": { @@ -4475,56 +4188,9 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/os-locale/node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "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" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/os-locale/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-locale/node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "engines": { - "node": ">=8.12.0" - } - }, "node_modules/os-name": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/os-name/-/os-name-4.0.1.tgz", "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", "dev": true, "dependencies": { @@ -4540,8 +4206,8 @@ }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4549,8 +4215,8 @@ }, "node_modules/p-defer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", "dev": true, "engines": { "node": ">=4" @@ -4558,8 +4224,8 @@ }, "node_modules/p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true, "engines": { "node": ">=4" @@ -4567,7 +4233,7 @@ }, "node_modules/p-is-promise": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-is-promise/-/p-is-promise-2.1.0.tgz", "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", "dev": true, "engines": { @@ -4576,7 +4242,7 @@ }, "node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { @@ -4591,7 +4257,7 @@ }, "node_modules/p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "dependencies": { @@ -4603,7 +4269,7 @@ }, "node_modules/p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "dependencies": { @@ -4618,7 +4284,7 @@ }, "node_modules/p-queue": { "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-queue/-/p-queue-6.6.2.tgz", "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", "dev": true, "dependencies": { @@ -4634,7 +4300,7 @@ }, "node_modules/p-timeout": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-timeout/-/p-timeout-3.2.0.tgz", "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "dev": true, "dependencies": { @@ -4646,7 +4312,7 @@ }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "engines": { @@ -4655,7 +4321,7 @@ }, "node_modules/pacote": { "version": "11.3.5", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pacote/-/pacote-11.3.5.tgz", "integrity": "sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==", "dev": true, "dependencies": { @@ -4686,27 +4352,15 @@ "node": ">=10" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/parse-cache-control": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", "dev": true }, "node_modules/parse-conflict-json": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz", "integrity": "sha512-4gySviBiW5TRl7XHvp1agcS7SOe0KZOjC//71dzZVWJrY9hCrgtvl5v3SyIxCZ4fZF47TxD9nfzmxcx76xmbUw==", "dev": true, "dependencies": { @@ -4717,7 +4371,7 @@ }, "node_modules/parse-gitignore": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-gitignore/-/parse-gitignore-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-gitignore/-/parse-gitignore-1.0.1.tgz", "integrity": "sha512-UGyowyjtx26n65kdAMWhm6/3uy5uSrpcuH7tt+QEVudiBoVS+eqHxD5kbi9oWVRwj7sCzXqwuM+rUGw7earl6A==", "dev": true, "engines": { @@ -4726,7 +4380,7 @@ }, "node_modules/parse-json": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "dependencies": { @@ -4744,8 +4398,8 @@ }, "node_modules/path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, "engines": { "node": ">=4" @@ -4753,8 +4407,8 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4762,7 +4416,7 @@ }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { @@ -4771,13 +4425,13 @@ }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "engines": { @@ -4786,14 +4440,14 @@ }, "node_modules/performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", "dev": true }, "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" @@ -4804,8 +4458,8 @@ }, "node_modules/pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4813,7 +4467,7 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "dependencies": { @@ -4825,7 +4479,7 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { @@ -4838,7 +4492,7 @@ }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { @@ -4850,7 +4504,7 @@ }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { @@ -4862,7 +4516,7 @@ }, "node_modules/pkg-dir/node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { @@ -4871,7 +4525,7 @@ }, "node_modules/pkg-up": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pkg-up/-/pkg-up-3.1.0.tgz", "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "dev": true, "dependencies": { @@ -4881,18 +4535,9 @@ "node": ">=8" } }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "dependencies": { - "semver-compare": "^1.0.0" - } - }, "node_modules/plugin-error": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/plugin-error/-/plugin-error-1.0.1.tgz", "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", "dev": true, "dependencies": { @@ -4905,21 +4550,9 @@ "node": ">= 0.10" } }, - "node_modules/plugin-error/node_modules/ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "dependencies": { - "ansi-wrap": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/pluralize": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, "engines": { @@ -4927,9 +4560,9 @@ } }, "node_modules/preferred-pm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz", - "integrity": "sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==", + "version": "3.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/preferred-pm/-/preferred-pm-3.1.2.tgz", + "integrity": "sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==", "dev": true, "dependencies": { "find-up": "^5.0.0", @@ -4943,7 +4576,7 @@ }, "node_modules/preferred-pm/node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { @@ -4959,7 +4592,7 @@ }, "node_modules/preferred-pm/node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { @@ -4974,7 +4607,7 @@ }, "node_modules/preferred-pm/node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { @@ -4989,7 +4622,7 @@ }, "node_modules/preferred-pm/node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { @@ -5004,7 +4637,7 @@ }, "node_modules/preferred-pm/node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { @@ -5013,7 +4646,7 @@ }, "node_modules/prettier": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier/-/prettier-2.4.0.tgz", "integrity": "sha512-DsEPLY1dE5HF3BxCRBmD4uYZ+5DCbvatnolqTqcxEgKVZnL2kUfyu7b8pPQ5+hTBkdhU9SLUmK0/pHb07RE4WQ==", "dev": true, "bin": { @@ -5025,7 +4658,7 @@ }, "node_modules/prettier-plugin-java": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/prettier-plugin-java/-/prettier-plugin-java-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier-plugin-java/-/prettier-plugin-java-1.4.0.tgz", "integrity": "sha512-Yie1yn4OdEF5Qey+3bChv8OuvMkzoMv07R6s/j1sn9HfZQxpw0eCSaXLOPyS7B6vVlaF1cr2TD1NsNSvxjVU1g==", "dev": true, "dependencies": { @@ -5036,7 +4669,7 @@ }, "node_modules/prettier-plugin-java/node_modules/prettier": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier/-/prettier-2.3.1.tgz", "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", "dev": true, "bin": { @@ -5048,7 +4681,7 @@ }, "node_modules/prettier-plugin-packagejson": { "version": "2.2.11", - "resolved": "https://registry.npmjs.org/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.2.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.2.11.tgz", "integrity": "sha512-oJCBCEkHIKScEv6qNQC47S39NXlevbzwvoJE3gflmBB8/3BEsC6ZRi+hwFVajw32b4tDI9hFXPIzmVd/T8Rm9w==", "dev": true, "dependencies": { @@ -5060,7 +4693,7 @@ }, "node_modules/pretty-bytes": { "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true, "engines": { @@ -5072,19 +4705,19 @@ }, "node_modules/proc-log": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/proc-log/-/proc-log-1.0.0.tgz", "integrity": "sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==", "dev": true }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, "node_modules/progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, "engines": { @@ -5092,9 +4725,9 @@ } }, "node_modules/promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "version": "8.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "dev": true, "dependencies": { "asap": "~2.0.6" @@ -5102,7 +4735,7 @@ }, "node_modules/promise-all-reject-late": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==", "dev": true, "funding": { @@ -5110,9 +4743,9 @@ } }, "node_modules/promise-call-limit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-1.0.1.tgz", - "integrity": "sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q==", + "version": "1.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-call-limit/-/promise-call-limit-1.0.2.tgz", + "integrity": "sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==", "dev": true, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5120,13 +4753,13 @@ }, "node_modules/promise-inflight": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", "dev": true }, "node_modules/promise-retry": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, "dependencies": { @@ -5138,14 +4771,14 @@ } }, "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "version": "1.9.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, "node_modules/pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "dependencies": { @@ -5154,18 +4787,18 @@ } }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "version": "6.5.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "dev": true, "engines": { "node": ">=0.6" @@ -5173,17 +4806,23 @@ }, "node_modules/querystring": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", "dev": true, "engines": { "node": ">=0.4.x" } }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ @@ -5203,7 +4842,7 @@ }, "node_modules/randexp": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.5.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/randexp/-/randexp-0.5.3.tgz", "integrity": "sha512-U+5l2KrcMNOUPYvazA3h5ekF80FHTUG+87SEAmHZmolh1M+i/WyTCxVzmi+tidIa1tM4BSe8g2Y/D3loWDjj+w==", "dev": true, "dependencies": { @@ -5216,13 +4855,13 @@ }, "node_modules/read-cmd-shim": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", "integrity": "sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==", "dev": true }, "node_modules/read-package-json-fast": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", "dev": true, "dependencies": { @@ -5235,7 +4874,7 @@ }, "node_modules/read-pkg": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "dependencies": { @@ -5250,7 +4889,7 @@ }, "node_modules/read-pkg-up": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-pkg-up/-/read-pkg-up-7.0.1.tgz", "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "dependencies": { @@ -5267,7 +4906,7 @@ }, "node_modules/read-pkg-up/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { @@ -5280,7 +4919,7 @@ }, "node_modules/read-pkg-up/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { @@ -5292,7 +4931,7 @@ }, "node_modules/read-pkg-up/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { @@ -5304,7 +4943,7 @@ }, "node_modules/read-pkg-up/node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { @@ -5313,7 +4952,7 @@ }, "node_modules/read-pkg/node_modules/type-fest": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.6.0.tgz", "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, "engines": { @@ -5321,9 +4960,9 @@ } }, "node_modules/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==", + "version": "3.6.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -5336,8 +4975,9 @@ }, "node_modules/readdir-scoped-modules": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, "dependencies": { "debuglog": "^1.0.1", @@ -5348,8 +4988,8 @@ }, "node_modules/rechoir": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, "dependencies": { "resolve": "^1.1.6" @@ -5360,19 +5000,19 @@ }, "node_modules/regexp-to-ast": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==", "dev": true }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", "dev": true }, "node_modules/replace-ext": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/replace-ext/-/replace-ext-1.0.1.tgz", "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "dev": true, "engines": { @@ -5381,7 +5021,7 @@ }, "node_modules/request": { "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dev": true, @@ -5413,7 +5053,7 @@ }, "node_modules/request/node_modules/tough-cookie": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "dependencies": { @@ -5426,7 +5066,7 @@ }, "node_modules/request/node_modules/uuid": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, @@ -5436,39 +5076,40 @@ }, "node_modules/require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/restore-cursor": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", "dev": true, "dependencies": { "onetime": "^2.0.0", @@ -5480,7 +5121,7 @@ }, "node_modules/restore-cursor/node_modules/mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true, "engines": { @@ -5489,8 +5130,8 @@ }, "node_modules/restore-cursor/node_modules/onetime": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", "dev": true, "dependencies": { "mimic-fn": "^1.0.0" @@ -5501,7 +5142,7 @@ }, "node_modules/ret": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ret/-/ret-0.2.2.tgz", "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", "dev": true, "engines": { @@ -5510,8 +5151,8 @@ }, "node_modules/retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, "engines": { "node": ">= 4" @@ -5519,7 +5160,7 @@ }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "engines": { @@ -5529,7 +5170,7 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { @@ -5544,7 +5185,7 @@ }, "node_modules/run-async": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true, "engines": { @@ -5553,7 +5194,7 @@ }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ @@ -5576,7 +5217,7 @@ }, "node_modules/rxjs": { "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { @@ -5588,7 +5229,7 @@ }, "node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ @@ -5607,26 +5248,29 @@ ] }, "node_modules/safe-stable-stringify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz", - "integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==", - "dev": true + "version": "2.4.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "dev": true, + "engines": { + "node": ">=10" + } }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "node_modules/sax": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sax/-/sax-1.2.1.tgz", + "integrity": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==", "dev": true }, "node_modules/scoped-regex": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/scoped-regex/-/scoped-regex-2.1.0.tgz", "integrity": "sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==", "dev": true, "engines": { @@ -5635,7 +5279,7 @@ }, "node_modules/semver": { "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { @@ -5648,21 +5292,15 @@ "node": ">=10" } }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, "node_modules/set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { @@ -5674,7 +5312,7 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { @@ -5683,7 +5321,7 @@ }, "node_modules/shelljs": { "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shelljs/-/shelljs-0.8.4.tgz", "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", "dev": true, "dependencies": { @@ -5699,14 +5337,14 @@ } }, "node_modules/signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", + "version": "3.0.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "node_modules/simple-git": { "version": "2.45.1", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-2.45.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/simple-git/-/simple-git-2.45.1.tgz", "integrity": "sha512-NmEoThiLTJxl26WNtZxtJTue18ReTcSrf3so5vJG/O8KY9uMxH+yAhXV/DElBJyOYZrrBbVsH8JOFxgENdc9Xg==", "dev": true, "dependencies": { @@ -5717,45 +5355,25 @@ }, "node_modules/simple-swizzle": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", "dev": true, "dependencies": { "is-arrayish": "^0.3.1" } }, - "node_modules/simple-swizzle/node_modules/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 - }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/smart-buffer": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, "engines": { @@ -5764,13 +5382,13 @@ } }, "node_modules/socks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "version": "2.7.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" }, "engines": { "node": ">= 10.13.0", @@ -5778,28 +5396,45 @@ } }, "node_modules/socks-proxy-agent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.0.tgz", - "integrity": "sha512-57e7lwCN4Tzt3mXz25VxOErJKXlPfXmkMLnk310v/jwW20jWRVcgsOit+xNkN3eIEdB47GwnfAEBLacZ/wVIKg==", + "version": "6.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", "dev": true, "dependencies": { "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" + "debug": "^4.3.3", + "socks": "^2.6.2" }, "engines": { "node": ">= 10" } }, + "node_modules/socks-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/sort-object-keys": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sort-object-keys/-/sort-object-keys-1.1.3.tgz", "integrity": "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==", "dev": true }, "node_modules/sort-package-json": { "version": "1.50.0", - "resolved": "https://registry.npmjs.org/sort-package-json/-/sort-package-json-1.50.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sort-package-json/-/sort-package-json-1.50.0.tgz", "integrity": "sha512-qZpqhMU9XTntebgAgc4hv/D6Fzhh7kFnwvV6a7+q8y8J5JoaDqPYQnvXPf7BBqG95tdE8X6JVNo7/jDzcbdfUg==", "dev": true, "dependencies": { @@ -5816,7 +5451,7 @@ }, "node_modules/sort-package-json/node_modules/globby": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globby/-/globby-10.0.0.tgz", "integrity": "sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==", "dev": true, "dependencies": { @@ -5834,9 +5469,9 @@ } }, "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -5845,13 +5480,13 @@ }, "node_modules/spdx-exceptions": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "node_modules/spdx-expression-parse": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "dependencies": { @@ -5860,21 +5495,21 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "version": "3.0.16", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", "dev": true }, "node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "version": "1.18.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, "dependencies": { "asn1": "~0.2.3", @@ -5898,7 +5533,7 @@ }, "node_modules/ssri": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, "dependencies": { @@ -5910,8 +5545,8 @@ }, "node_modules/stack-trace": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", "dev": true, "engines": { "node": "*" @@ -5919,7 +5554,7 @@ }, "node_modules/streamfilter": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/streamfilter/-/streamfilter-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/streamfilter/-/streamfilter-3.0.0.tgz", "integrity": "sha512-kvKNfXCmUyC8lAXSSHCIXBUlo/lhsLcCU/OmzACZYpRUdtKIH68xYhm/+HI15jFJYtNJGYtCgn2wmIiExY1VwA==", "dev": true, "dependencies": { @@ -5931,25 +5566,16 @@ }, "node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } }, - "node_modules/string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true, - "engines": { - "node": ">=0.6.19" - } - }, "node_modules/string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "dependencies": { @@ -5961,18 +5587,9 @@ } }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/string-width/node_modules/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=", + "version": "3.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true, "engines": { "node": ">=4" @@ -5980,8 +5597,8 @@ }, "node_modules/string-width/node_modules/strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, "dependencies": { "ansi-regex": "^3.0.0" @@ -5990,32 +5607,9 @@ "node": ">=4" } }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stringify-object/node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { @@ -6027,8 +5621,8 @@ }, "node_modules/strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", "dev": true, "dependencies": { "is-utf8": "^0.2.0" @@ -6039,8 +5633,8 @@ }, "node_modules/strip-bom-buf": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", - "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", + "integrity": "sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==", "dev": true, "dependencies": { "is-utf8": "^0.2.1" @@ -6051,8 +5645,8 @@ }, "node_modules/strip-bom-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", - "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "integrity": "sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==", "dev": true, "dependencies": { "first-chunk-stream": "^2.0.0", @@ -6064,7 +5658,7 @@ }, "node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, "engines": { @@ -6073,7 +5667,7 @@ }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -6083,39 +5677,60 @@ "node": ">=8" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "version": "6.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" } }, "node_modules/text-hex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/text-hex/-/text-hex-1.0.0.tgz", "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", "dev": true }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "node_modules/textextensions": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-5.14.0.tgz", - "integrity": "sha512-4cAYwNFNYlIAHBUo7p6zw8POUvWbZor+/R0Tanv+rIhsauEyV9QSrEXL40pI+GfTQxKX8k6Tyw6CmdSDSmASrg==", + "version": "5.16.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/textextensions/-/textextensions-5.16.0.tgz", + "integrity": "sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==", "dev": true, "engines": { "node": ">=0.8" @@ -6126,7 +5741,7 @@ }, "node_modules/then-request": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/then-request/-/then-request-6.0.2.tgz", "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", "dev": true, "dependencies": { @@ -6148,13 +5763,13 @@ }, "node_modules/through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "node_modules/tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "dependencies": { @@ -6166,8 +5781,8 @@ }, "node_modules/to-absolute-glob": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", "dev": true, "dependencies": { "is-absolute": "^1.0.0", @@ -6179,7 +5794,7 @@ }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "dependencies": { @@ -6190,14 +5805,15 @@ } }, "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "version": "4.1.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.1.2" + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, "engines": { "node": ">=6" @@ -6205,32 +5821,35 @@ }, "node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, "node_modules/treeverse": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/treeverse/-/treeverse-1.0.4.tgz", "integrity": "sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==", "dev": true }, "node_modules/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", - "dev": true + "version": "1.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "dev": true, + "engines": { + "node": ">= 14.0.0" + } }, "node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, "dependencies": { "safe-buffer": "^5.0.1" @@ -6241,13 +5860,13 @@ }, "node_modules/tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", "dev": true }, "node_modules/type-fest": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, "engines": { @@ -6256,13 +5875,13 @@ }, "node_modules/typedarray": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "dependencies": { @@ -6271,8 +5890,8 @@ }, "node_modules/unc-path-regex": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -6280,7 +5899,7 @@ }, "node_modules/unique-filename": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "dependencies": { @@ -6289,7 +5908,7 @@ }, "node_modules/unique-slug": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, "dependencies": { @@ -6297,15 +5916,15 @@ } }, "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "version": "6.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", "dev": true }, "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "version": "0.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true, "engines": { "node": ">= 4.0.0" @@ -6313,7 +5932,7 @@ }, "node_modules/untildify": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/untildify/-/untildify-4.0.0.tgz", "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true, "engines": { @@ -6322,7 +5941,7 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "dependencies": { @@ -6331,29 +5950,39 @@ }, "node_modules/url": { "version": "0.10.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/url/-/url-0.10.3.tgz", + "integrity": "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==", "dev": true, "dependencies": { "punycode": "1.3.2", "querystring": "0.2.0" } }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "node_modules/url/node_modules/punycode": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", "dev": true }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "node_modules/uuid": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, "bin": { @@ -6362,7 +5991,7 @@ }, "node_modules/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "dependencies": { @@ -6372,8 +6001,8 @@ }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", "dev": true, "dependencies": { "builtins": "^1.0.3" @@ -6381,8 +6010,8 @@ }, "node_modules/verror": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, "engines": [ "node >=0.6.0" @@ -6395,7 +6024,7 @@ }, "node_modules/vinyl": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/vinyl/-/vinyl-2.2.1.tgz", "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", "dev": true, "dependencies": { @@ -6412,8 +6041,8 @@ }, "node_modules/vinyl-file": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz", - "integrity": "sha1-sQTZ5ECf+jJfqt1SBkLQo7SIs2U=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/vinyl-file/-/vinyl-file-3.0.0.tgz", + "integrity": "sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -6428,14 +6057,14 @@ }, "node_modules/walk-up-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/walk-up-path/-/walk-up-path-1.0.0.tgz", "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==", "dev": true }, "node_modules/wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, "dependencies": { "defaults": "^1.0.3" @@ -6443,14 +6072,14 @@ }, "node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "dependencies": { "tr46": "~0.0.3", @@ -6459,7 +6088,7 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { @@ -6474,7 +6103,7 @@ }, "node_modules/which-pm": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/which-pm/-/which-pm-2.0.0.tgz", "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", "dev": true, "dependencies": { @@ -6487,7 +6116,7 @@ }, "node_modules/which-pm/node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { @@ -6495,17 +6124,17 @@ } }, "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "version": "1.1.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, "dependencies": { - "string-width": "^1.0.2 || 2" + "string-width": "^1.0.2 || 2 || 3 || 4" } }, "node_modules/windows-release": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/windows-release/-/windows-release-4.0.0.tgz", "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", "dev": true, "dependencies": { @@ -6518,56 +6147,9 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/windows-release/node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "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" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/windows-release/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/windows-release/node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "engines": { - "node": ">=8.12.0" - } - }, "node_modules/winston": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/winston/-/winston-3.3.3.tgz", "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", "dev": true, "dependencies": { @@ -6586,58 +6168,29 @@ } }, "node_modules/winston-transport": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", - "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", + "version": "4.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/winston-transport/-/winston-transport-4.6.0.tgz", + "integrity": "sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==", "dev": true, "dependencies": { - "readable-stream": "^2.3.7", - "triple-beam": "^1.2.0" + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" }, "engines": { - "node": ">= 6.4.0" - } - }, - "node_modules/winston-transport/node_modules/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, - "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" - } - }, - "node_modules/winston-transport/node_modules/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 - }, - "node_modules/winston-transport/node_modules/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, - "dependencies": { - "safe-buffer": "~5.1.0" + "node": ">= 12.0.0" } }, "node_modules/winston/node_modules/async": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", - "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==", + "version": "3.2.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "version": "6.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", @@ -6645,24 +6198,30 @@ "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=8" } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { "node": ">=8" } }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi/node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { @@ -6676,7 +6235,7 @@ }, "node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { @@ -6688,13 +6247,13 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "node_modules/write-file-atomic": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "dependencies": { @@ -6706,7 +6265,7 @@ }, "node_modules/xml2js": { "version": "0.4.19", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xml2js/-/xml2js-0.4.19.tgz", "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", "dev": true, "dependencies": { @@ -6716,8 +6275,8 @@ }, "node_modules/xmlbuilder": { "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==", "dev": true, "engines": { "node": ">=4.0" @@ -6725,22 +6284,13 @@ }, "node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/yeoman-environment": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yeoman-environment/-/yeoman-environment-3.6.0.tgz", "integrity": "sha512-X16N9lhzRdUKFT8MZrpwjLDKsdgAUqh4VPR2wAXeAqjJJaUxYBxCQGFxtZVTf3vbyNuIHXPunwOLtK60bpapbg==", "dev": true, "dependencies": { @@ -6792,7 +6342,7 @@ }, "node_modules/yeoman-environment/node_modules/ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "dependencies": { @@ -6807,7 +6357,7 @@ }, "node_modules/yeoman-environment/node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { @@ -6816,7 +6366,7 @@ }, "node_modules/yeoman-environment/node_modules/cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "dependencies": { @@ -6828,7 +6378,7 @@ }, "node_modules/yeoman-environment/node_modules/cli-width": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-width/-/cli-width-3.0.0.tgz", "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true, "engines": { @@ -6837,7 +6387,7 @@ }, "node_modules/yeoman-environment/node_modules/commander": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-7.1.0.tgz", "integrity": "sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==", "dev": true, "engines": { @@ -6846,7 +6396,7 @@ }, "node_modules/yeoman-environment/node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "engines": { @@ -6856,9 +6406,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yeoman-environment/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, "node_modules/yeoman-environment/node_modules/figures": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "dependencies": { @@ -6873,8 +6446,8 @@ }, "node_modules/yeoman-environment/node_modules/figures/node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -6882,7 +6455,7 @@ }, "node_modules/yeoman-environment/node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { @@ -6896,10 +6469,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yeoman-environment/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yeoman-environment/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/yeoman-environment/node_modules/inquirer": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.5.tgz", - "integrity": "sha512-G6/9xUqmt/r+UvufSyrPpt84NYwhKZ9jLsgMbQzlx804XErNupor8WQdBnBRrXmBfTPpuwf1sV+ss2ovjgdXIg==", + "version": "8.2.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", "dev": true, "dependencies": { "ansi-escapes": "^4.2.1", @@ -6912,18 +6506,28 @@ "mute-stream": "0.0.8", "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^7.2.0", + "rxjs": "^7.5.5", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=12.0.0" + } + }, + "node_modules/yeoman-environment/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" } }, "node_modules/yeoman-environment/node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { @@ -6938,13 +6542,13 @@ }, "node_modules/yeoman-environment/node_modules/mute-stream": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, "node_modules/yeoman-environment/node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { @@ -6959,7 +6563,7 @@ }, "node_modules/yeoman-environment/node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { @@ -6974,7 +6578,7 @@ }, "node_modules/yeoman-environment/node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { @@ -6983,7 +6587,7 @@ }, "node_modules/yeoman-environment/node_modules/restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "dependencies": { @@ -6995,17 +6599,17 @@ } }, "node_modules/yeoman-environment/node_modules/rxjs": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.3.0.tgz", - "integrity": "sha512-p2yuGIg9S1epc3vrjKf6iVb3RCaAYjYskkO+jHIaV0IjOPlJop4UnodOoFb2xeNwlguqLYvGw1b1McillYb5Gw==", + "version": "7.8.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "dependencies": { - "tslib": "~2.1.0" + "tslib": "^2.1.0" } }, "node_modules/yeoman-environment/node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { @@ -7019,7 +6623,7 @@ }, "node_modules/yeoman-environment/node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { @@ -7030,14 +6634,14 @@ } }, "node_modules/yeoman-environment/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", + "version": "2.6.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/yeoman-environment/node_modules/type-fest": { "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "engines": { @@ -7049,7 +6653,7 @@ }, "node_modules/yeoman-generator": { "version": "5.4.2", - "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-5.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yeoman-generator/-/yeoman-generator-5.4.2.tgz", "integrity": "sha512-xgS3A4r5VoEYq3vPdk1fWPVZ30y5NHlT2hn0OEyhKG79xojCtPkPkfWcKQamgvC9QLhaotVGvambBxwxwBeDTg==", "dev": true, "dependencies": { @@ -7078,56 +6682,9 @@ } } }, - "node_modules/yeoman-generator/node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "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" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/yeoman-generator/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yeoman-generator/node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "engines": { - "node": ">=8.12.0" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "engines": { @@ -7140,34 +6697,87 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.23.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, "requires": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "version": "7.22.20", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true }, "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "version": "7.23.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "dependencies": { "ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { @@ -7176,7 +6786,7 @@ }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { @@ -7187,7 +6797,7 @@ }, "color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { @@ -7196,19 +6806,19 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { @@ -7218,21 +6828,27 @@ } }, "@chevrotain/types": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-9.0.2.tgz", - "integrity": "sha512-lo1dQPX7DQffJb26eaYLEy4/jUTFmsGKa43mDvMNAHwItEgUQHUkTZR0iAkHG0aJv8ejM/KqYpRVSNetrOK8qw==", + "version": "9.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@chevrotain/types/-/types-9.1.0.tgz", + "integrity": "sha512-3hbCD1CThkv9gnaSIPq0GUXwKni68e0ph6jIHwCvcWiQ4JB2xi8bFxBain0RF04qHUWuDjgnZLj4rLgimuGO+g==", "dev": true }, "@chevrotain/utils": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-9.0.2.tgz", - "integrity": "sha512-iTju1VpbGruWagXS/XswuqeimOCRNeDvrXLlWHYsHp1qTU8sJfAfLiX5vs7DNxB1px6N8VWVI0SD8vMUksNBYw==", + "version": "9.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@chevrotain/utils/-/utils-9.1.0.tgz", + "integrity": "sha512-llLJZ8OAlZrjGlBvamm6Zdo/HmGAcCLq5gx7cSwUX8No+n/8ip+oaC4x33IdZIif8+Rh5dQUIZXmfbSghiOmNQ==", + "dev": true + }, + "@colors/colors": { + "version": "1.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", "dev": true }, "@dabh/diagnostics": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", - "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", + "version": "2.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", "dev": true, "requires": { "colorspace": "1.1.x", @@ -7241,20 +6857,20 @@ } }, "@gar/promisify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", - "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==", + "version": "1.1.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "dev": true }, "@isaacs/string-locale-compare": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", "dev": true }, "@kwsites/file-exists": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@kwsites/file-exists/-/file-exists-1.1.1.tgz", "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", "dev": true, "requires": { @@ -7263,13 +6879,13 @@ }, "@kwsites/promise-deferred": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", "dev": true }, "@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { @@ -7279,13 +6895,13 @@ }, "@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, "@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { @@ -7294,9 +6910,9 @@ } }, "@npmcli/arborist": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-2.9.0.tgz", - "integrity": "sha512-21DTow2xC0GlkowlE4zOu99UY21nSymW14fHZmB0yeAqhagmttJPmCUZXU+ngJmJ/Dwe5YP9QJUTgEVRLqnwcg==", + "version": "2.10.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/arborist/-/arborist-2.10.0.tgz", + "integrity": "sha512-CLnD+zXG9oijEEzViimz8fbOoFVb7hoypiaf7p6giJhvYtrxLAyY3cZAMPIFQvsG731+02eMDp3LqVBNo7BaZA==", "dev": true, "requires": { "@isaacs/string-locale-compare": "^1.0.1", @@ -7334,9 +6950,9 @@ } }, "@npmcli/fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz", - "integrity": "sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==", + "version": "1.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", "dev": true, "requires": { "@gar/promisify": "^1.0.1", @@ -7345,7 +6961,7 @@ }, "@npmcli/git": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/git/-/git-2.1.0.tgz", "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", "dev": true, "requires": { @@ -7361,7 +6977,7 @@ }, "@npmcli/installed-package-contents": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", "dev": true, "requires": { @@ -7371,7 +6987,7 @@ }, "@npmcli/map-workspaces": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/map-workspaces/-/map-workspaces-1.0.4.tgz", "integrity": "sha512-wVR8QxhyXsFcD/cORtJwGQodeeaDf0OxcHie8ema4VgFeqwYkFsDPnSrIRSytX8xR6nKPAH89WnwTcaU608b/Q==", "dev": true, "requires": { @@ -7383,7 +6999,7 @@ }, "@npmcli/metavuln-calculator": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/metavuln-calculator/-/metavuln-calculator-1.1.1.tgz", "integrity": "sha512-9xe+ZZ1iGVaUovBVFI9h3qW+UuECUzhvZPxK9RaEA2mjU26o5D0JloGYWwLYvQELJNmBdQB6rrpuN8jni6LwzQ==", "dev": true, "requires": { @@ -7394,7 +7010,7 @@ }, "@npmcli/move-file": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "dev": true, "requires": { @@ -7404,19 +7020,19 @@ }, "@npmcli/name-from-folder": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz", "integrity": "sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==", "dev": true }, "@npmcli/node-gyp": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz", - "integrity": "sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg==", + "version": "1.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", + "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", "dev": true }, "@npmcli/package-json": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/package-json/-/package-json-1.0.1.tgz", "integrity": "sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==", "dev": true, "requires": { @@ -7425,7 +7041,7 @@ }, "@npmcli/promise-spawn": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", "dev": true, "requires": { @@ -7434,7 +7050,7 @@ }, "@npmcli/run-script": { "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/run-script/-/run-script-1.8.6.tgz", "integrity": "sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g==", "dev": true, "requires": { @@ -7446,7 +7062,7 @@ }, "@octokit/auth-token": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/auth-token/-/auth-token-2.5.0.tgz", "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", "dev": true, "requires": { @@ -7454,14 +7070,14 @@ } }, "@octokit/core": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", - "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", + "version": "3.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/core/-/core-3.6.0.tgz", + "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", "dev": true, "requires": { "@octokit/auth-token": "^2.4.4", "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.0", + "@octokit/request": "^5.6.3", "@octokit/request-error": "^2.0.5", "@octokit/types": "^6.0.3", "before-after-hook": "^2.2.0", @@ -7470,7 +7086,7 @@ }, "@octokit/endpoint": { "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/endpoint/-/endpoint-6.0.12.tgz", "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", "dev": true, "requires": { @@ -7481,7 +7097,7 @@ "dependencies": { "is-plain-object": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true } @@ -7489,7 +7105,7 @@ }, "@octokit/graphql": { "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/graphql/-/graphql-4.8.0.tgz", "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", "dev": true, "requires": { @@ -7499,54 +7115,54 @@ } }, "@octokit/openapi-types": { - "version": "10.6.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-10.6.1.tgz", - "integrity": "sha512-53YKy8w8+sHQhUONhTiYt6MqNqPolejYr6rK/3VOevpORAIYGQEX2pmXnnhgdSsjHy176e5ZBgVt0ppOGziS7g==", + "version": "12.11.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==", "dev": true }, "@octokit/plugin-paginate-rest": { - "version": "2.16.5", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.16.5.tgz", - "integrity": "sha512-2PfRGymdBypqRes4Xelu0BAZZRCV/Qg0xgo8UB10UKoghCM+zg640+T5WkRsRD0edwfLBPP3VsJgDyDTG4EIYg==", + "version": "2.21.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", + "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", "dev": true, "requires": { - "@octokit/types": "^6.31.0" + "@octokit/types": "^6.40.0" } }, "@octokit/plugin-request-log": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", "dev": true, "requires": {} }, "@octokit/plugin-rest-endpoint-methods": { - "version": "5.11.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.11.3.tgz", - "integrity": "sha512-E19gqHqfP3uJa2/hx6Abhx2NrVP5tsNbst2/AeqGxlGM+eL4N8fRbzhd+NEIsGAB4y3R7e9kVE0y8OOghlXUXw==", + "version": "5.16.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", + "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", "dev": true, "requires": { - "@octokit/types": "^6.31.1", + "@octokit/types": "^6.39.0", "deprecation": "^2.3.1" } }, "@octokit/request": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.1.tgz", - "integrity": "sha512-Ls2cfs1OfXaOKzkcxnqw5MR6drMA/zWX/LIS/p8Yjdz7QKTPQLMsB3R+OvoxE6XnXeXEE2X7xe4G4l4X0gRiKQ==", + "version": "5.6.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", "dev": true, "requires": { "@octokit/endpoint": "^6.0.1", "@octokit/request-error": "^2.1.0", "@octokit/types": "^6.16.1", "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.1", + "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" }, "dependencies": { "is-plain-object": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true } @@ -7554,7 +7170,7 @@ }, "@octokit/request-error": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/request-error/-/request-error-2.1.0.tgz", "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", "dev": true, "requires": { @@ -7564,35 +7180,35 @@ } }, "@octokit/rest": { - "version": "18.11.3", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.11.3.tgz", - "integrity": "sha512-k4uCg4PVo6r9ncguSD4fXt6pYkM/FXs7759sYfpvIEhGNPJbFROooOJpkagKPAcSPoEGyEbIR+A9KYIv4jNe4A==", + "version": "18.12.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/rest/-/rest-18.12.0.tgz", + "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", "dev": true, "requires": { "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.4", + "@octokit/plugin-paginate-rest": "^2.16.8", "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "5.11.3" + "@octokit/plugin-rest-endpoint-methods": "^5.12.0" } }, "@octokit/types": { - "version": "6.31.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.31.1.tgz", - "integrity": "sha512-xkF46eaYcpT8ieO78mZWhMq3bt37zIsP5BUkN+zWgX+mTYDB7jOtUP1MOxcSF8hhJhsjjlB1YDgQAhX0z0oqPw==", + "version": "6.41.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", "dev": true, "requires": { - "@octokit/openapi-types": "^10.6.1" + "@octokit/openapi-types": "^12.11.0" } }, "@tootallnate/once": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true }, "@types/concat-stream": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/concat-stream/-/concat-stream-1.6.1.tgz", "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", "dev": true, "requires": { @@ -7601,23 +7217,23 @@ }, "@types/expect": { "version": "1.20.4", - "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/expect/-/expect-1.20.4.tgz", "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", "dev": true }, "@types/form-data": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", "dev": true, "requires": { "@types/node": "*" } }, "@types/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", + "version": "7.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, "requires": { "@types/minimatch": "*", @@ -7626,38 +7242,38 @@ }, "@types/minimatch": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/minimatch/-/minimatch-3.0.5.tgz", "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", "dev": true }, "@types/node": { "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/node/-/node-8.10.66.tgz", "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", "dev": true }, "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "version": "2.4.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "@types/qs": { + "version": "6.9.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==", "dev": true }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", "dev": true }, "@types/vinyl": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.6.tgz", - "integrity": "sha512-ayJ0iOCDNHnKpKTgBG6Q6JOnHTj9zFta+3j2b8Ejza0e4cvRyMn0ZoLEmbPrTHe5YYRlDYPvPWVdV4cTaRyH7g==", + "version": "2.0.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/vinyl/-/vinyl-2.0.11.tgz", + "integrity": "sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==", "dev": true, "requires": { "@types/expect": "^1.20.4", @@ -7666,13 +7282,13 @@ }, "abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, "agent-base": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "requires": { @@ -7680,19 +7296,17 @@ } }, "agentkeepalive": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", - "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", + "version": "4.5.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", "dev": true, "requires": { - "debug": "^4.1.0", - "depd": "^1.1.2", "humanize-ms": "^1.2.1" } }, "aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "requires": { @@ -7701,9 +7315,9 @@ } }, "ajv": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", - "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", + "version": "8.12.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -7714,7 +7328,7 @@ }, "ajv-formats": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "requires": { @@ -7722,26 +7336,29 @@ } }, "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 + "version": "1.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "requires": { + "ansi-wrap": "^0.1.0" + } }, "ansi-escapes": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-escapes/-/ansi-escapes-3.2.0.tgz", "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true }, "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -7750,19 +7367,19 @@ }, "ansi-wrap": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", "dev": true }, "aproba": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, "are-we-there-yet": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", "dev": true, "requires": { @@ -7771,9 +7388,9 @@ }, "dependencies": { "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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -7787,13 +7404,13 @@ }, "safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { @@ -7804,50 +7421,50 @@ }, "argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "dev": true }, "array-differ": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-differ/-/array-differ-3.0.0.tgz", "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", "dev": true }, "array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, "arrify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arrify/-/arrify-2.0.1.tgz", "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true }, "asap": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true }, "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "version": "0.2.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, "requires": { "safer-buffer": "~2.1.0" @@ -7855,26 +7472,20 @@ }, "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "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 - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", "dev": true }, "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, "requires": { "lodash": "^4.17.14" @@ -7882,19 +7493,19 @@ }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, "atomically": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/atomically/-/atomically-1.7.0.tgz", "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", "dev": true }, "aws-sdk": { "version": "2.987.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.987.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aws-sdk/-/aws-sdk-2.987.0.tgz", "integrity": "sha512-XgMrHWHE3aKg11D4QSlpyLvsGw6mHHiUQuowbswd11k89Q6wEfA+jMbYMC7/jsx3LrH9EKti70qhfZyw/wQIfg==", "dev": true, "requires": { @@ -7911,7 +7522,7 @@ "dependencies": { "uuid": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "dev": true } @@ -7919,19 +7530,19 @@ }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "dev": true }, "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "version": "1.12.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", "dev": true }, "axios": { "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/axios/-/axios-0.21.4.tgz", "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "dev": true, "requires": { @@ -7940,39 +7551,39 @@ }, "balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, "base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, "requires": { "tweetnacl": "^0.14.3" } }, "before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", + "version": "2.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", "dev": true }, "bin-links": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-2.2.1.tgz", - "integrity": "sha512-wFzVTqavpgCCYAh8SVBdnZdiQMxTkGR+T3b14CNpBXIBe2neJWaMGAZ55XWWHELJJ89dscuq0VCBqcVaIOgCMg==", + "version": "2.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bin-links/-/bin-links-2.3.0.tgz", + "integrity": "sha512-JzrOLHLwX2zMqKdyYZjkDgQGT+kHDkIhv2/IK2lJ00qLxV4TmFoHi8drDBb6H5Zrz1YfgHkai4e2MGPqnoUhqA==", "dev": true, "requires": { "cmd-shim": "^4.0.1", - "mkdirp": "^1.0.3", + "mkdirp-infer-owner": "^2.0.0", "npm-normalize-package-bin": "^1.0.0", "read-cmd-shim": "^2.0.0", "rimraf": "^3.0.0", @@ -7980,14 +7591,14 @@ } }, "binaryextensions": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.18.0.tgz", - "integrity": "sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==", + "version": "4.19.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/binaryextensions/-/binaryextensions-4.19.0.tgz", + "integrity": "sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==", "dev": true }, "bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "requires": { @@ -7998,7 +7609,7 @@ "dependencies": { "buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "requires": { @@ -8010,7 +7621,7 @@ }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { @@ -8020,7 +7631,7 @@ }, "braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { @@ -8029,7 +7640,7 @@ }, "buffer": { "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/buffer/-/buffer-4.9.2.tgz", "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, "requires": { @@ -8040,19 +7651,19 @@ }, "buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "builtins": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", "dev": true }, "cacache": { "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "dev": true, "requires": { @@ -8076,21 +7687,15 @@ "unique-filename": "^1.1.1" } }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", "dev": true }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -8100,13 +7705,13 @@ }, "chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, "chevrotain": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-9.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chevrotain/-/chevrotain-9.0.2.tgz", "integrity": "sha512-6ZjgUdGvU4j1n1b2hTjb79Vr2V+qNtmP7f8FVt79+kdAYcUj2QfYNwI8ycCVsgHD/dIeO5Vr1hckkkfliVQTfg==", "dev": true, "requires": { @@ -8117,113 +7722,67 @@ }, "chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, "clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true }, "cli-cursor": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", "dev": true, "requires": { "restore-cursor": "^2.0.0" } }, "cli-spinners": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", - "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", + "version": "2.9.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true }, "cli-table": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz", - "integrity": "sha512-ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ==", + "version": "0.3.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-table/-/cli-table-0.3.11.tgz", + "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", "dev": true, "requires": { "colors": "1.0.3" - }, - "dependencies": { - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true - } - } - }, - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "cli-width": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-width/-/cli-width-2.2.1.tgz", "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, "clone": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true }, "clone-buffer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", "dev": true }, "clone-stats": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", "dev": true }, "cloneable-readable": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cloneable-readable/-/cloneable-readable-1.1.3.tgz", "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", "dev": true, "requires": { @@ -8233,9 +7792,9 @@ }, "dependencies": { "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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -8249,13 +7808,13 @@ }, "safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { @@ -8266,7 +7825,7 @@ }, "cmd-shim": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cmd-shim/-/cmd-shim-4.1.0.tgz", "integrity": "sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==", "dev": true, "requires": { @@ -8275,23 +7834,23 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", "dev": true }, "color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", - "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", + "version": "3.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", "dev": true, "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" + "color-convert": "^1.9.3", + "color-string": "^1.6.0" }, "dependencies": { "color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { @@ -8300,15 +7859,15 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true } } }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -8317,45 +7876,39 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "color-string": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz", - "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", + "version": "1.9.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", "dev": true, "requires": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "version": "1.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", "dev": true }, "colorspace": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", - "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", + "version": "1.1.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", "dev": true, "requires": { - "color": "3.0.x", + "color": "^3.1.3", "text-hex": "1.0.x" } }, "combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { @@ -8364,31 +7917,31 @@ }, "commander": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-8.2.0.tgz", "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==", "dev": true }, "common-ancestor-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", "dev": true }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "concat-stream": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { @@ -8399,9 +7952,9 @@ }, "dependencies": { "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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -8415,13 +7968,13 @@ }, "safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { @@ -8432,7 +7985,7 @@ }, "conf": { "version": "10.0.2", - "resolved": "https://registry.npmjs.org/conf/-/conf-10.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/conf/-/conf-10.0.2.tgz", "integrity": "sha512-iyy4ArqyQ/yrzNASNBN+jaylu53JRuq0ztvL6KAWYHj4iN56BVuhy2SrzEEHBodNbacZr2Pd/4nWhoAwc66T1g==", "dev": true, "requires": { @@ -8450,32 +8003,19 @@ }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "requires": { - "@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" - } - }, "cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { @@ -8486,14 +8026,14 @@ }, "dargs": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dargs/-/dargs-7.0.0.tgz", "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, "requires": { "assert-plus": "^1.0.0" @@ -8501,13 +8041,13 @@ }, "dateformat": { "version": "4.6.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dateformat/-/dateformat-4.6.3.tgz", "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", "dev": true }, "debounce-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debounce-fn/-/debounce-fn-4.0.0.tgz", "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", "dev": true, "requires": { @@ -8516,7 +8056,7 @@ }, "debug": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { @@ -8525,20 +8065,20 @@ }, "debuglog": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", "dev": true }, "deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "version": "1.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, "requires": { "clone": "^1.0.2" @@ -8546,52 +8086,46 @@ "dependencies": { "clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true } } }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true }, "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "version": "1.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "dev": true }, "deprecation": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/deprecation/-/deprecation-2.3.1.tgz", "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "dev": true }, "detect-indent": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/detect-indent/-/detect-indent-6.1.0.tgz", "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true }, "detect-newline": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, "dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "version": "1.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", "dev": true, "requires": { "asap": "^2.0.0", @@ -8600,19 +8134,19 @@ }, "didyoumean": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "dev": true }, "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true }, "dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { @@ -8621,7 +8155,7 @@ }, "dot-prop": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dot-prop/-/dot-prop-6.0.1.tgz", "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dev": true, "requires": { @@ -8630,14 +8164,14 @@ }, "drange": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/drange/-/drange-1.1.1.tgz", "integrity": "sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==", "dev": true }, "ecc-jsbn": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, "requires": { "jsbn": "~0.1.0", @@ -8646,7 +8180,7 @@ }, "ejs": { "version": "3.1.6", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ejs/-/ejs-3.1.6.tgz", "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", "dev": true, "requires": { @@ -8655,19 +8189,19 @@ }, "emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "enabled": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/enabled/-/enabled-2.0.0.tgz", "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", "dev": true }, "encoding": { "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "optional": true, @@ -8677,7 +8211,7 @@ "dependencies": { "iconv-lite": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "optional": true, @@ -8689,100 +8223,99 @@ }, "end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, "env-paths": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true }, "err-code": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true }, "error": { "version": "10.4.0", - "resolved": "https://registry.npmjs.org/error/-/error-10.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/error/-/error-10.4.0.tgz", "integrity": "sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==", "dev": true }, "error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true }, "esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "eventemitter3": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, "events": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/events/-/events-1.1.1.tgz", + "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==", "dev": true }, "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "4.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", + "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.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" } }, "extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "dev": true, "requires": { "assign-symbols": "^1.0.0", @@ -8791,7 +8324,7 @@ }, "external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { @@ -8802,26 +8335,26 @@ }, "extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "dev": true }, "faker": { "version": "5.5.3", - "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/faker/-/faker-5.5.3.tgz", "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==", "dev": true }, "fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.3.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -8833,46 +8366,66 @@ }, "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.16.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", "dev": true, "requires": { "reusify": "^1.0.4" } }, "fecha": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", - "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==", + "version": "4.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", "dev": true }, "figures": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } }, "filelist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", - "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", + "version": "1.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, "fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { @@ -8881,7 +8434,7 @@ }, "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { @@ -8890,7 +8443,7 @@ }, "find-yarn-workspace-root2": { "version": "1.2.16", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", "dev": true, "requires": { @@ -8900,17 +8453,17 @@ }, "first-chunk-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", - "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "integrity": "sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==", "dev": true, "requires": { "readable-stream": "^2.0.2" }, "dependencies": { "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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -8924,13 +8477,13 @@ }, "safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { @@ -8941,25 +8494,25 @@ }, "fn.name": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fn.name/-/fn.name-1.1.0.tgz", "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", "dev": true }, "follow-redirects": { - "version": "1.14.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz", - "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==", + "version": "1.15.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "dev": true }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true }, "form-data": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { @@ -8970,7 +8523,7 @@ }, "fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "requires": { @@ -8979,20 +8532,20 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "version": "1.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", "dev": true, "requires": { "aproba": "^1.0.3", @@ -9007,14 +8560,14 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", "dev": true, "requires": { "number-is-nan": "^1.0.0" @@ -9022,8 +8575,8 @@ }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -9033,8 +8586,8 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -9044,7 +8597,7 @@ }, "generator-jhipster": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/generator-jhipster/-/generator-jhipster-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/generator-jhipster/-/generator-jhipster-7.2.0.tgz", "integrity": "sha512-ys3y8M70NfueQaTYPglYwOF5rqkZyguQPwTrMvGLE5DpDxG41m2XcuJA9OZjLk/E9G5vFljceYHOcyodfFFnMg==", "dev": true, "requires": { @@ -9085,22 +8638,19 @@ "yeoman-generator": "5.4.2" } }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true + "version": "5.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } }, "getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, "requires": { "assert-plus": "^1.0.0" @@ -9108,13 +8658,13 @@ }, "git-hooks-list": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/git-hooks-list/-/git-hooks-list-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/git-hooks-list/-/git-hooks-list-1.0.3.tgz", "integrity": "sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==", "dev": true }, "github-username": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/github-username/-/github-username-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/github-username/-/github-username-6.0.0.tgz", "integrity": "sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==", "dev": true, "requires": { @@ -9123,7 +8673,7 @@ }, "glob": { "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob/-/glob-7.1.7.tgz", "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, "requires": { @@ -9137,7 +8687,7 @@ }, "glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { @@ -9145,34 +8695,34 @@ } }, "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "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", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" } }, "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "version": "4.2.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "grouped-queue": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/grouped-queue/-/grouped-queue-2.0.0.tgz", "integrity": "sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==", "dev": true }, "gulp-filter": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/gulp-filter/-/gulp-filter-7.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/gulp-filter/-/gulp-filter-7.0.0.tgz", "integrity": "sha512-ZGWtJo0j1mHfP77tVuhyqem4MRA5NfNRjoVe6VAkLGeQQ/QGo2VsFwp7zfPTGDsd1rwzBmoDHhxpE6f5B3Zuaw==", "dev": true, "requires": { @@ -9184,13 +8734,13 @@ }, "har-schema": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "dev": true }, "har-validator": { "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "dev": true, "requires": { @@ -9200,7 +8750,7 @@ "dependencies": { "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { @@ -9212,37 +8762,37 @@ }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true } } }, - "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-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true }, + "hasown": { + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, "hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "version": "4.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -9250,7 +8800,7 @@ }, "http-basic": { "version": "8.1.3", - "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-basic/-/http-basic-8.1.3.tgz", "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", "dev": true, "requires": { @@ -9261,14 +8811,14 @@ } }, "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true }, "http-proxy-agent": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, "requires": { @@ -9279,7 +8829,7 @@ }, "http-response-object": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-response-object/-/http-response-object-3.0.2.tgz", "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", "dev": true, "requires": { @@ -9288,7 +8838,7 @@ "dependencies": { "@types/node": { "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/node/-/node-10.17.60.tgz", "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", "dev": true } @@ -9296,8 +8846,8 @@ }, "http-signature": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "dev": true, "requires": { "assert-plus": "^1.0.0", @@ -9306,9 +8856,9 @@ } }, "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "requires": { "agent-base": "6", @@ -9316,29 +8866,23 @@ } }, "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "version": "1.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true }, "humanize-ms": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dev": true, "requires": { "ms": "^2.0.0" } }, - "husky": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.2.tgz", - "integrity": "sha512-8yKEWNX4z2YsofXAMT7KvA1g8p+GxtB1ffV8XtpAEGuXNAbCV5wdNKH+qTpw8SM9fh4aMPDR+yQuKfgnreyZlg==", - "dev": true - }, "iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { @@ -9347,57 +8891,47 @@ }, "ieee754": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ieee754/-/ieee754-1.1.13.tgz", "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true }, "ignore-walk": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ignore-walk/-/ignore-walk-3.0.4.tgz", "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", "dev": true, "requires": { "minimatch": "^3.0.4" } }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, "indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, "infer-owner": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "requires": { "once": "^1.3.0", @@ -9406,13 +8940,13 @@ }, "inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "inquirer": { "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inquirer/-/inquirer-6.5.2.tgz", "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "dev": true, "requires": { @@ -9433,7 +8967,7 @@ "dependencies": { "ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { @@ -9442,7 +8976,7 @@ }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { @@ -9453,7 +8987,7 @@ }, "color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { @@ -9462,19 +8996,19 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { @@ -9485,7 +9019,7 @@ }, "insight": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/insight/-/insight-0.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/insight/-/insight-0.11.1.tgz", "integrity": "sha512-TBcZ0qC9dgdmcxL93OoqkY/RZXJtIi0i07phX/QyYk2ysmJtZex59dgTj4Doq50N9CG9dLRe/RIudc/5CCoFNw==", "dev": true, "requires": { @@ -9502,25 +9036,25 @@ }, "interpret": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, "invert-kv": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/invert-kv/-/invert-kv-3.0.1.tgz", "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==", "dev": true }, "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", "dev": true }, "is-absolute": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-absolute/-/is-absolute-1.0.0.tgz", "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "dev": true, "requires": { @@ -9529,23 +9063,23 @@ } }, "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "version": "0.3.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "dev": true }, "is-core-module": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", - "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", + "version": "2.13.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { @@ -9554,19 +9088,19 @@ }, "is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "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==", + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true }, "is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { @@ -9575,58 +9109,52 @@ }, "is-interactive": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true }, "is-lambda": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, "is-negated-glob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", "dev": true }, "is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true }, "is-plain-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { "isobject": "^3.0.1" } }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true - }, "is-relative": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-relative/-/is-relative-1.0.0.tgz", "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, "requires": { @@ -9635,7 +9163,7 @@ }, "is-scoped": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-scoped/-/is-scoped-2.1.0.tgz", "integrity": "sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==", "dev": true, "requires": { @@ -9644,19 +9172,19 @@ }, "is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, "is-unc-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-unc-path/-/is-unc-path-1.0.0.tgz", "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, "requires": { @@ -9665,125 +9193,84 @@ }, "is-unicode-supported": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", "dev": true }, "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "version": "4.0.10", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", "dev": true }, "jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "version": "10.8.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", "dev": true, "requires": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" }, "dependencies": { - "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" - } - }, "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "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" - } - }, - "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 - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "version": "3.2.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "minimatch": { + "version": "3.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "brace-expansion": "^1.1.7" } } } }, "java-parser": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/java-parser/-/java-parser-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/java-parser/-/java-parser-1.4.0.tgz", "integrity": "sha512-5r1Ez6D8SRprarqwXTYzu6Am//jw37USu8ie8a5166KfgTc2yKa0wlz08xKX1HXYRo/jbnODUfGMgd7gPhHLog==", "dev": true, "requires": { @@ -9793,7 +9280,7 @@ "dependencies": { "chevrotain": { "version": "6.5.0", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-6.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chevrotain/-/chevrotain-6.5.0.tgz", "integrity": "sha512-BwqQ/AgmKJ8jcMEjaSnfMybnKMgGTrtDKowfTP3pX4jwVy0kNjRsT/AP6h+wC3+3NC+X8X15VWBnTCQlX+wQFg==", "dev": true, "requires": { @@ -9802,7 +9289,7 @@ }, "regexp-to-ast": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regexp-to-ast/-/regexp-to-ast-0.4.0.tgz", "integrity": "sha512-4qf/7IsIKfSNHQXSwial1IFmfM1Cc/whNBQqRwe0V2stPe7KmN1U0tWQiIx6JiirgSrisjE0eECdNf7Tav1Ntw==", "dev": true } @@ -9810,19 +9297,19 @@ }, "jmespath": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w==", "dev": true }, "js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { @@ -9831,85 +9318,85 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "version": "0.4.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", "dev": true }, "json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "json-schema-typed": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-typed/-/json-schema-typed-7.0.3.tgz", "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", "dev": true }, "json-stringify-nice": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, "jsonparse": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true }, "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "version": "1.4.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.2.3", + "json-schema": "0.4.0", "verror": "1.10.0" } }, "just-diff": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/just-diff/-/just-diff-3.1.1.tgz", "integrity": "sha512-sdMWKjRq8qWZEjDcVA6llnUT8RDEBIfOiGpYFPYa9u+2c39JCsejktSP7mj5eRid5EIvTzIpQ2kDOCw1Nq9BjQ==", "dev": true }, "just-diff-apply": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-3.0.0.tgz", - "integrity": "sha512-K2MLc+ZC2DVxX4V61bIKPeMUUfj1YYZ3h0myhchDXOW1cKoPZMnjIoNCqv9bF2n5Oob1PFxuR2gVJxkxz4e58w==", + "version": "3.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/just-diff-apply/-/just-diff-apply-3.1.2.tgz", + "integrity": "sha512-TCa7ZdxCeq6q3Rgms2JCRHTCfWAETPZ8SzYUbkYF6KR3I03sN29DaOIC+xyWboIcMvjAsD5iG2u/RWzHD8XpgQ==", "dev": true }, "kuler": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kuler/-/kuler-2.0.0.tgz", "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", "dev": true }, "lcid": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lcid/-/lcid-3.1.1.tgz", "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==", "dev": true, "requires": { @@ -9917,59 +9404,14 @@ } }, "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "version": "1.2.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "lint-staged": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.1.2.tgz", - "integrity": "sha512-6lYpNoA9wGqkL6Hew/4n1H6lRqF3qCsujVT0Oq5Z4hiSAM7S6NksPJ3gnr7A7R52xCtiZMcEUNNQ6d6X5Bvh9w==", - "dev": true, - "requires": { - "chalk": "^4.1.1", - "cli-truncate": "^2.1.0", - "commander": "^7.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", - "enquirer": "^2.3.6", - "execa": "^5.0.0", - "listr2": "^3.8.2", - "log-symbols": "^4.1.0", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - } - } - }, - "listr2": { - "version": "3.12.2", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.12.2.tgz", - "integrity": "sha512-64xC2CJ/As/xgVI3wbhlPWVPx0wfTqbUAkpb7bjDi0thSWMqrf07UFhrfsGoo8YSXmF049Rp9C0cjLC8rZxK9A==", - "dev": true, - "requires": { - "cli-truncate": "^2.1.0", - "colorette": "^1.4.0", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rxjs": "^6.6.7", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - } - }, "load-yaml-file": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/load-yaml-file/-/load-yaml-file-0.2.0.tgz", "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", "dev": true, "requires": { @@ -9981,7 +9423,7 @@ "dependencies": { "argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { @@ -9990,7 +9432,7 @@ }, "js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { @@ -10000,162 +9442,67 @@ }, "pify": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true }, "strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true } } }, - "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.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "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" - } - }, - "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" - } - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "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" - } - } + "locate-path": { + "version": "3.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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.21", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" } }, "logform": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.3.0.tgz", - "integrity": "sha512-graeoWUH2knKbGthMtuG1EfaSPMZFZBIrhuJHhkS5ZseFBrc7DupCzihOQAzsK/qIKPQaPJ/lFQFctILUY5ARQ==", + "version": "2.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", "dev": true, "requires": { - "colors": "^1.2.1", + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", "fecha": "^4.2.0", "ms": "^2.1.1", - "safe-stable-stringify": "^1.1.0", + "safe-stable-stringify": "^2.3.1", "triple-beam": "^1.3.0" } }, "lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { @@ -10163,14 +9510,14 @@ } }, "macos-release": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.0.tgz", - "integrity": "sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g==", + "version": "2.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/macos-release/-/macos-release-2.5.1.tgz", + "integrity": "sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==", "dev": true }, "make-fetch-happen": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, "requires": { @@ -10194,7 +9541,7 @@ }, "map-age-cleaner": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, "requires": { @@ -10203,7 +9550,7 @@ }, "mem": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/mem/-/mem-5.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mem/-/mem-5.1.1.tgz", "integrity": "sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==", "dev": true, "requires": { @@ -10214,19 +9561,19 @@ "dependencies": { "mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true } } }, "mem-fs": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-2.2.1.tgz", - "integrity": "sha512-yiAivd4xFOH/WXlUi6v/nKopBh1QLzwjFi36NK88cGt/PRXI8WeBASqY+YSjIVWvQTx3hR8zHKDBMV6hWmglNA==", + "version": "2.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mem-fs/-/mem-fs-2.3.0.tgz", + "integrity": "sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==", "dev": true, "requires": { - "@types/node": "^15.6.1", + "@types/node": "^15.6.2", "@types/vinyl": "^2.0.4", "vinyl": "^2.0.1", "vinyl-file": "^3.0.0" @@ -10234,7 +9581,7 @@ "dependencies": { "@types/node": { "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/node/-/node-15.14.9.tgz", "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", "dev": true } @@ -10242,7 +9589,7 @@ }, "mem-fs-editor": { "version": "9.3.0", - "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-9.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mem-fs-editor/-/mem-fs-editor-9.3.0.tgz", "integrity": "sha512-QKFbPwGCh1ypmc2H8BUYpbapwT/x2AOCYZQogzSui4rUNes7WVMagQXsirPIfp18EarX0SSY9Fpg426nSjew4Q==", "dev": true, "requires": { @@ -10260,50 +9607,50 @@ }, "merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", + "version": "1.52.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true }, "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "version": "2.1.35", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "requires": { - "mime-db": "1.49.0" + "mime-db": "1.52.0" } }, "mimic-fn": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-3.1.0.tgz", "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { @@ -10311,15 +9658,15 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true }, "minipass": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", - "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "version": "3.3.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "requires": { "yallist": "^4.0.0" @@ -10327,7 +9674,7 @@ }, "minipass-collect": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, "requires": { @@ -10336,7 +9683,7 @@ }, "minipass-fetch": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-fetch/-/minipass-fetch-1.4.1.tgz", "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "dev": true, "requires": { @@ -10348,7 +9695,7 @@ }, "minipass-flush": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, "requires": { @@ -10357,7 +9704,7 @@ }, "minipass-json-stream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "dev": true, "requires": { @@ -10367,7 +9714,7 @@ }, "minipass-pipeline": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, "requires": { @@ -10376,7 +9723,7 @@ }, "minipass-sized": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, "requires": { @@ -10385,7 +9732,7 @@ }, "minizlib": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "requires": { @@ -10395,13 +9742,13 @@ }, "mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, "mkdirp-infer-owner": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", "dev": true, "requires": { @@ -10412,13 +9759,13 @@ }, "ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "multimatch": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/multimatch/-/multimatch-5.0.0.tgz", "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", "dev": true, "requires": { @@ -10431,20 +9778,20 @@ }, "mute-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", "dev": true }, "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "version": "0.6.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true }, "node-fetch": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", - "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "version": "2.7.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, "requires": { "whatwg-url": "^5.0.0" @@ -10452,7 +9799,7 @@ }, "node-gyp": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-gyp/-/node-gyp-7.1.2.tgz", "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", "dev": true, "requires": { @@ -10470,7 +9817,7 @@ }, "nopt": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, "requires": { @@ -10479,7 +9826,7 @@ }, "normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { @@ -10491,27 +9838,27 @@ "dependencies": { "hosted-git-info": { "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true } } }, "normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "npm-bundled": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-bundled/-/npm-bundled-1.1.2.tgz", "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", "dev": true, "requires": { @@ -10520,7 +9867,7 @@ }, "npm-install-checks": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-install-checks/-/npm-install-checks-4.0.0.tgz", "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", "dev": true, "requires": { @@ -10529,13 +9876,13 @@ }, "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-package-arg/-/npm-package-arg-8.1.5.tgz", "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", "dev": true, "requires": { @@ -10546,7 +9893,7 @@ }, "npm-packlist": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-packlist/-/npm-packlist-2.2.2.tgz", "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", "dev": true, "requires": { @@ -10558,7 +9905,7 @@ }, "npm-pick-manifest": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", "dev": true, "requires": { @@ -10570,7 +9917,7 @@ }, "npm-registry-fetch": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "dev": true, "requires": { @@ -10584,7 +9931,7 @@ }, "npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { @@ -10593,7 +9940,7 @@ }, "npmlog": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "requires": { @@ -10605,26 +9952,26 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "dev": true }, "oauth-sign": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "requires": { "wrappy": "1" @@ -10632,7 +9979,7 @@ }, "one-time": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/one-time/-/one-time-1.0.0.tgz", "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", "dev": true, "requires": { @@ -10641,7 +9988,7 @@ }, "onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { @@ -10650,7 +9997,7 @@ "dependencies": { "mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true } @@ -10658,7 +10005,7 @@ }, "ora": { "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, "requires": { @@ -10675,13 +10022,13 @@ "dependencies": { "ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { @@ -10690,7 +10037,7 @@ }, "restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { @@ -10700,7 +10047,7 @@ }, "strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { @@ -10711,52 +10058,18 @@ }, "os-locale": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/os-locale/-/os-locale-5.0.0.tgz", "integrity": "sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==", "dev": true, "requires": { "execa": "^4.0.0", "lcid": "^3.0.0", "mem": "^5.0.0" - }, - "dependencies": { - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "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" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - } } }, "os-name": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/os-name/-/os-name-4.0.1.tgz", "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", "dev": true, "requires": { @@ -10766,31 +10079,31 @@ }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true }, "p-defer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", "dev": true }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true }, "p-is-promise": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-is-promise/-/p-is-promise-2.1.0.tgz", "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", "dev": true }, "p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { @@ -10799,7 +10112,7 @@ }, "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { @@ -10808,7 +10121,7 @@ }, "p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "requires": { @@ -10817,7 +10130,7 @@ }, "p-queue": { "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-queue/-/p-queue-6.6.2.tgz", "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", "dev": true, "requires": { @@ -10827,7 +10140,7 @@ }, "p-timeout": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-timeout/-/p-timeout-3.2.0.tgz", "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "dev": true, "requires": { @@ -10836,13 +10149,13 @@ }, "p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "pacote": { "version": "11.3.5", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pacote/-/pacote-11.3.5.tgz", "integrity": "sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==", "dev": true, "requires": { @@ -10867,24 +10180,15 @@ "tar": "^6.1.0" } }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, "parse-cache-control": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", "dev": true }, "parse-conflict-json": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz", "integrity": "sha512-4gySviBiW5TRl7XHvp1agcS7SOe0KZOjC//71dzZVWJrY9hCrgtvl5v3SyIxCZ4fZF47TxD9nfzmxcx76xmbUw==", "dev": true, "requires": { @@ -10895,13 +10199,13 @@ }, "parse-gitignore": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-gitignore/-/parse-gitignore-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-gitignore/-/parse-gitignore-1.0.1.tgz", "integrity": "sha512-UGyowyjtx26n65kdAMWhm6/3uy5uSrpcuH7tt+QEVudiBoVS+eqHxD5kbi9oWVRwj7sCzXqwuM+rUGw7earl6A==", "dev": true }, "parse-json": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "requires": { @@ -10913,55 +10217,55 @@ }, "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, "path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, "performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", "dev": true }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true }, "pkg-dir": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { @@ -10970,7 +10274,7 @@ "dependencies": { "find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { @@ -10980,7 +10284,7 @@ }, "locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { @@ -10989,7 +10293,7 @@ }, "p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { @@ -10998,7 +10302,7 @@ }, "path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true } @@ -11006,25 +10310,16 @@ }, "pkg-up": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pkg-up/-/pkg-up-3.1.0.tgz", "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "dev": true, "requires": { "find-up": "^3.0.0" } }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "requires": { - "semver-compare": "^1.0.0" - } - }, "plugin-error": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/plugin-error/-/plugin-error-1.0.1.tgz", "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", "dev": true, "requires": { @@ -11032,29 +10327,18 @@ "arr-diff": "^4.0.0", "arr-union": "^3.1.0", "extend-shallow": "^3.0.2" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - } } }, "pluralize": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true }, "preferred-pm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz", - "integrity": "sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==", + "version": "3.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/preferred-pm/-/preferred-pm-3.1.2.tgz", + "integrity": "sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==", "dev": true, "requires": { "find-up": "^5.0.0", @@ -11065,7 +10349,7 @@ "dependencies": { "find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { @@ -11075,7 +10359,7 @@ }, "locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { @@ -11084,7 +10368,7 @@ }, "p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { @@ -11093,7 +10377,7 @@ }, "p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { @@ -11102,7 +10386,7 @@ }, "path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true } @@ -11110,13 +10394,13 @@ }, "prettier": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier/-/prettier-2.4.0.tgz", "integrity": "sha512-DsEPLY1dE5HF3BxCRBmD4uYZ+5DCbvatnolqTqcxEgKVZnL2kUfyu7b8pPQ5+hTBkdhU9SLUmK0/pHb07RE4WQ==", "dev": true }, "prettier-plugin-java": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/prettier-plugin-java/-/prettier-plugin-java-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier-plugin-java/-/prettier-plugin-java-1.4.0.tgz", "integrity": "sha512-Yie1yn4OdEF5Qey+3bChv8OuvMkzoMv07R6s/j1sn9HfZQxpw0eCSaXLOPyS7B6vVlaF1cr2TD1NsNSvxjVU1g==", "dev": true, "requires": { @@ -11127,7 +10411,7 @@ "dependencies": { "prettier": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier/-/prettier-2.3.1.tgz", "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", "dev": true } @@ -11135,7 +10419,7 @@ }, "prettier-plugin-packagejson": { "version": "2.2.11", - "resolved": "https://registry.npmjs.org/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.2.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.2.11.tgz", "integrity": "sha512-oJCBCEkHIKScEv6qNQC47S39NXlevbzwvoJE3gflmBB8/3BEsC6ZRi+hwFVajw32b4tDI9hFXPIzmVd/T8Rm9w==", "dev": true, "requires": { @@ -11144,32 +10428,32 @@ }, "pretty-bytes": { "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true }, "proc-log": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/proc-log/-/proc-log-1.0.0.tgz", "integrity": "sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==", "dev": true }, "process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, "progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, "promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "version": "8.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "dev": true, "requires": { "asap": "~2.0.6" @@ -11177,25 +10461,25 @@ }, "promise-all-reject-late": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==", "dev": true }, "promise-call-limit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-1.0.1.tgz", - "integrity": "sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q==", + "version": "1.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-call-limit/-/promise-call-limit-1.0.2.tgz", + "integrity": "sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==", "dev": true }, "promise-inflight": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", "dev": true }, "promise-retry": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, "requires": { @@ -11204,14 +10488,14 @@ } }, "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "version": "1.9.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, "pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { @@ -11220,32 +10504,38 @@ } }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true }, "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "version": "6.5.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "dev": true }, "querystring": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, "queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, "randexp": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.5.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/randexp/-/randexp-0.5.3.tgz", "integrity": "sha512-U+5l2KrcMNOUPYvazA3h5ekF80FHTUG+87SEAmHZmolh1M+i/WyTCxVzmi+tidIa1tM4BSe8g2Y/D3loWDjj+w==", "dev": true, "requires": { @@ -11255,13 +10545,13 @@ }, "read-cmd-shim": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", "integrity": "sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==", "dev": true }, "read-package-json-fast": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", "dev": true, "requires": { @@ -11271,7 +10561,7 @@ }, "read-pkg": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { @@ -11283,7 +10573,7 @@ "dependencies": { "type-fest": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.6.0.tgz", "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true } @@ -11291,7 +10581,7 @@ }, "read-pkg-up": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-pkg-up/-/read-pkg-up-7.0.1.tgz", "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "requires": { @@ -11302,7 +10592,7 @@ "dependencies": { "find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { @@ -11312,7 +10602,7 @@ }, "locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { @@ -11321,7 +10611,7 @@ }, "p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { @@ -11330,16 +10620,16 @@ }, "path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true } } }, "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==", + "version": "3.6.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -11349,7 +10639,7 @@ }, "readdir-scoped-modules": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", "dev": true, "requires": { @@ -11361,8 +10651,8 @@ }, "rechoir": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, "requires": { "resolve": "^1.1.6" @@ -11370,25 +10660,25 @@ }, "regexp-to-ast": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", "dev": true }, "replace-ext": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/replace-ext/-/replace-ext-1.0.1.tgz", "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "dev": true }, "request": { "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "dev": true, "requires": { @@ -11416,7 +10706,7 @@ "dependencies": { "tough-cookie": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { @@ -11426,7 +10716,7 @@ }, "uuid": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true } @@ -11434,30 +10724,31 @@ }, "require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, "restore-cursor": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", "dev": true, "requires": { "onetime": "^2.0.0", @@ -11466,14 +10757,14 @@ "dependencies": { "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "onetime": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", "dev": true, "requires": { "mimic-fn": "^1.0.0" @@ -11483,25 +10774,25 @@ }, "ret": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ret/-/ret-0.2.2.tgz", "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", "dev": true }, "retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true }, "reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, "rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { @@ -11510,13 +10801,13 @@ }, "run-async": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true }, "run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "requires": { @@ -11525,7 +10816,7 @@ }, "rxjs": { "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { @@ -11534,58 +10825,52 @@ }, "safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, "safe-stable-stringify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz", - "integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==", + "version": "2.4.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", "dev": true }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "sax": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sax/-/sax-1.2.1.tgz", + "integrity": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==", "dev": true }, "scoped-regex": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/scoped-regex/-/scoped-regex-2.1.0.tgz", "integrity": "sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==", "dev": true }, "semver": { "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" } }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, "shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { @@ -11594,13 +10879,13 @@ }, "shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "shelljs": { "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shelljs/-/shelljs-0.8.4.tgz", "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", "dev": true, "requires": { @@ -11610,14 +10895,14 @@ } }, "signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", + "version": "3.0.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "simple-git": { "version": "2.45.1", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-2.45.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/simple-git/-/simple-git-2.45.1.tgz", "integrity": "sha512-NmEoThiLTJxl26WNtZxtJTue18ReTcSrf3so5vJG/O8KY9uMxH+yAhXV/DElBJyOYZrrBbVsH8JOFxgENdc9Xg==", "dev": true, "requires": { @@ -11628,74 +10913,66 @@ }, "simple-swizzle": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, "smart-buffer": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true }, "socks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "version": "2.7.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" } }, "socks-proxy-agent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.0.tgz", - "integrity": "sha512-57e7lwCN4Tzt3mXz25VxOErJKXlPfXmkMLnk310v/jwW20jWRVcgsOit+xNkN3eIEdB47GwnfAEBLacZ/wVIKg==", + "version": "6.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", "dev": true, "requires": { "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + } } }, "sort-object-keys": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sort-object-keys/-/sort-object-keys-1.1.3.tgz", "integrity": "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==", "dev": true }, "sort-package-json": { "version": "1.50.0", - "resolved": "https://registry.npmjs.org/sort-package-json/-/sort-package-json-1.50.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sort-package-json/-/sort-package-json-1.50.0.tgz", "integrity": "sha512-qZpqhMU9XTntebgAgc4hv/D6Fzhh7kFnwvV6a7+q8y8J5JoaDqPYQnvXPf7BBqG95tdE8X6JVNo7/jDzcbdfUg==", "dev": true, "requires": { @@ -11709,7 +10986,7 @@ "dependencies": { "globby": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globby/-/globby-10.0.0.tgz", "integrity": "sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==", "dev": true, "requires": { @@ -11726,9 +11003,9 @@ } }, "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -11737,13 +11014,13 @@ }, "spdx-exceptions": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { @@ -11752,21 +11029,21 @@ } }, "spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "version": "3.0.16", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", "dev": true }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "version": "1.18.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, "requires": { "asn1": "~0.2.3", @@ -11782,7 +11059,7 @@ }, "ssri": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, "requires": { @@ -11791,13 +11068,13 @@ }, "stack-trace": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", "dev": true }, "streamfilter": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/streamfilter/-/streamfilter-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/streamfilter/-/streamfilter-3.0.0.tgz", "integrity": "sha512-kvKNfXCmUyC8lAXSSHCIXBUlo/lhsLcCU/OmzACZYpRUdtKIH68xYhm/+HI15jFJYtNJGYtCgn2wmIiExY1VwA==", "dev": true, "requires": { @@ -11806,22 +11083,16 @@ }, "string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "requires": { "safe-buffer": "~5.2.0" } }, - "string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true - }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { @@ -11830,21 +11101,15 @@ }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "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=", + "version": "3.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, "requires": { "ansi-regex": "^3.0.0" @@ -11852,28 +11117,9 @@ } } }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "dependencies": { - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - } - } - }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { @@ -11882,8 +11128,8 @@ }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", "dev": true, "requires": { "is-utf8": "^0.2.0" @@ -11891,8 +11137,8 @@ }, "strip-bom-buf": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", - "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", + "integrity": "sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==", "dev": true, "requires": { "is-utf8": "^0.2.1" @@ -11900,8 +11146,8 @@ }, "strip-bom-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", - "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "integrity": "sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==", "dev": true, "requires": { "first-chunk-stream": "^2.0.0", @@ -11910,54 +11156,68 @@ }, "strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "version": "6.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "5.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true + } } }, "text-hex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/text-hex/-/text-hex-1.0.0.tgz", "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", "dev": true }, "text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "textextensions": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-5.14.0.tgz", - "integrity": "sha512-4cAYwNFNYlIAHBUo7p6zw8POUvWbZor+/R0Tanv+rIhsauEyV9QSrEXL40pI+GfTQxKX8k6Tyw6CmdSDSmASrg==", + "version": "5.16.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/textextensions/-/textextensions-5.16.0.tgz", + "integrity": "sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==", "dev": true }, "then-request": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/then-request/-/then-request-6.0.2.tgz", "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", "dev": true, "requires": { @@ -11976,13 +11236,13 @@ }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { @@ -11991,8 +11251,8 @@ }, "to-absolute-glob": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", "dev": true, "requires": { "is-absolute": "^1.0.0", @@ -12001,7 +11261,7 @@ }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { @@ -12009,44 +11269,45 @@ } }, "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "version": "4.1.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, "requires": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.1.2" + "universalify": "^0.2.0", + "url-parse": "^1.5.3" } }, "tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, "treeverse": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/treeverse/-/treeverse-1.0.4.tgz", "integrity": "sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==", "dev": true }, "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", + "version": "1.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", "dev": true }, "tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, "requires": { "safe-buffer": "^5.0.1" @@ -12054,25 +11315,25 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", "dev": true }, "type-fest": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, "typedarray-to-buffer": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "requires": { @@ -12081,13 +11342,13 @@ }, "unc-path-regex": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", "dev": true }, "unique-filename": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "requires": { @@ -12096,7 +11357,7 @@ }, "unique-slug": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, "requires": { @@ -12104,26 +11365,26 @@ } }, "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "version": "6.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", "dev": true }, "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "version": "0.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true }, "untildify": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/untildify/-/untildify-4.0.0.tgz", "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true }, "uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { @@ -12132,8 +11393,8 @@ }, "url": { "version": "0.10.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/url/-/url-0.10.3.tgz", + "integrity": "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==", "dev": true, "requires": { "punycode": "1.3.2", @@ -12142,27 +11403,37 @@ "dependencies": { "punycode": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", "dev": true } } }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "uuid": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { @@ -12172,8 +11443,8 @@ }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", "dev": true, "requires": { "builtins": "^1.0.3" @@ -12181,8 +11452,8 @@ }, "verror": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, "requires": { "assert-plus": "^1.0.0", @@ -12192,7 +11463,7 @@ }, "vinyl": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/vinyl/-/vinyl-2.2.1.tgz", "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", "dev": true, "requires": { @@ -12206,8 +11477,8 @@ }, "vinyl-file": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz", - "integrity": "sha1-sQTZ5ECf+jJfqt1SBkLQo7SIs2U=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/vinyl-file/-/vinyl-file-3.0.0.tgz", + "integrity": "sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -12219,14 +11490,14 @@ }, "walk-up-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/walk-up-path/-/walk-up-path-1.0.0.tgz", "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==", "dev": true }, "wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, "requires": { "defaults": "^1.0.3" @@ -12234,14 +11505,14 @@ }, "webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "requires": { "tr46": "~0.0.3", @@ -12250,7 +11521,7 @@ }, "which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { @@ -12259,7 +11530,7 @@ }, "which-pm": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/which-pm/-/which-pm-2.0.0.tgz", "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", "dev": true, "requires": { @@ -12269,67 +11540,33 @@ "dependencies": { "path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true } } }, "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "version": "1.1.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, "requires": { - "string-width": "^1.0.2 || 2" + "string-width": "^1.0.2 || 2 || 3 || 4" } }, "windows-release": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/windows-release/-/windows-release-4.0.0.tgz", "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", "dev": true, "requires": { "execa": "^4.0.2" - }, - "dependencies": { - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "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" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - } } }, "winston": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/winston/-/winston-3.3.3.tgz", "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", "dev": true, "requires": { @@ -12345,59 +11582,28 @@ }, "dependencies": { "async": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", - "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==", + "version": "3.2.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true } } }, "winston-transport": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", - "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", + "version": "4.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/winston-transport/-/winston-transport-4.6.0.tgz", + "integrity": "sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==", "dev": true, "requires": { - "readable-stream": "^2.3.7", - "triple-beam": "^1.2.0" - }, - "dependencies": { - "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" - } - }, - "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 - }, - "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" - } - } + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" } }, "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "version": "6.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -12407,13 +11613,19 @@ "dependencies": { "ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { @@ -12424,7 +11636,7 @@ }, "strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { @@ -12435,13 +11647,13 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "write-file-atomic": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { @@ -12453,7 +11665,7 @@ }, "xml2js": { "version": "0.4.19", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xml2js/-/xml2js-0.4.19.tgz", "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", "dev": true, "requires": { @@ -12463,25 +11675,19 @@ }, "xmlbuilder": { "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==", "dev": true }, "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, "yeoman-environment": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yeoman-environment/-/yeoman-environment-3.6.0.tgz", "integrity": "sha512-X16N9lhzRdUKFT8MZrpwjLDKsdgAUqh4VPR2wAXeAqjJJaUxYBxCQGFxtZVTf3vbyNuIHXPunwOLtK60bpapbg==", "dev": true, "requires": { @@ -12523,7 +11729,7 @@ "dependencies": { "ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { @@ -12532,13 +11738,13 @@ }, "ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { @@ -12547,25 +11753,42 @@ }, "cli-width": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-width/-/cli-width-3.0.0.tgz", "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true }, "commander": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-7.1.0.tgz", "integrity": "sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==", "dev": true }, "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, + "execa": { + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, "figures": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { @@ -12574,15 +11797,15 @@ "dependencies": { "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true } } }, "find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { @@ -12590,10 +11813,22 @@ "path-exists": "^4.0.0" } }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, "inquirer": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.5.tgz", - "integrity": "sha512-G6/9xUqmt/r+UvufSyrPpt84NYwhKZ9jLsgMbQzlx804XErNupor8WQdBnBRrXmBfTPpuwf1sV+ss2ovjgdXIg==", + "version": "8.2.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", @@ -12606,15 +11841,22 @@ "mute-stream": "0.0.8", "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^7.2.0", + "rxjs": "^7.5.5", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" } }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, "locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { @@ -12623,13 +11865,13 @@ }, "mute-stream": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, "p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { @@ -12638,7 +11880,7 @@ }, "p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { @@ -12647,13 +11889,13 @@ }, "path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { @@ -12662,17 +11904,17 @@ } }, "rxjs": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.3.0.tgz", - "integrity": "sha512-p2yuGIg9S1epc3vrjKf6iVb3RCaAYjYskkO+jHIaV0IjOPlJop4UnodOoFb2xeNwlguqLYvGw1b1McillYb5Gw==", + "version": "7.8.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "requires": { - "tslib": "~2.1.0" + "tslib": "^2.1.0" } }, "string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { @@ -12683,7 +11925,7 @@ }, "strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { @@ -12691,14 +11933,14 @@ } }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", + "version": "2.6.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "type-fest": { "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true } @@ -12706,7 +11948,7 @@ }, "yeoman-generator": { "version": "5.4.2", - "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-5.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yeoman-generator/-/yeoman-generator-5.4.2.tgz", "integrity": "sha512-xgS3A4r5VoEYq3vPdk1fWPVZ30y5NHlT2hn0OEyhKG79xojCtPkPkfWcKQamgvC9QLhaotVGvambBxwxwBeDTg==", "dev": true, "requires": { @@ -12722,45 +11964,11 @@ "semver": "^7.2.1", "shelljs": "^0.8.4", "text-table": "^0.2.0" - }, - "dependencies": { - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "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" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - } } }, "yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true } diff --git a/git/sh-backend/package.json b/git/sh-backend/package.json index 92e7d3b71e5e8bed5a55920a774464a30bdfb5f3..181625651528eeb80e581001a60b600f6e3e44df 100644 --- a/git/sh-backend/package.json +++ b/git/sh-backend/package.json @@ -1,5 +1,5 @@ { - "name": "self-healing-service", + "name": "sh-backend", "version": "0.0.0", "private": true, "description": "Description for shBackend", @@ -7,14 +7,13 @@ "scripts": { "prettier:check": "prettier --check \"{,src/**/}*.{md,json,yml,html,java}\"", "prettier:format": "prettier --write \"{,src/**/}*.{md,json,yml,html,java}\"", - "prepare": "husky install", "docker:db:up": "docker-compose -f src/main/docker/mysql.yml up -d", "docker:db:down": "docker-compose -f src/main/docker/mysql.yml down -v --remove-orphans", "docker:kafka:up": "docker-compose -f src/main/docker/kafka.yml up -d", "docker:kafka:down": "docker-compose -f src/main/docker/kafka.yml down -v --remove-orphans", "docker:jhipster-registry:up": "docker-compose -f src/main/docker/jhipster-registry.yml up -d", "docker:jhipster-registry:down": "docker-compose -f src/main/docker/jhipster-registry.yml down -v --remove-orphans", - "docker:app:up": "docker-compose -f src/main/docker/app.yml up -d self-healing-service-app", + "docker:app:up": "docker-compose -f src/main/docker/app.yml up -d sh-backend-app", "docker:others:await": "echo \"Waiting for jhipster-registry to start\" && wait-on http-get://localhost:8761/management/health && echo \"jhipster-registry started\"", "predocker:others:up": "", "docker:others:up": "npm run docker:kafka:up && npm run docker:jhipster-registry:up", @@ -53,8 +52,6 @@ }, "devDependencies": { "generator-jhipster": "7.2.0", - "husky": "7.0.2", - "lint-staged": "11.1.2", "prettier": "2.4.0", "prettier-plugin-java": "1.4.0", "prettier-plugin-packagejson": "2.2.11" diff --git a/git/sh-backend/pom.xml b/git/sh-backend/pom.xml index d6229fc1408d3e49c344929f3a7edf703447839f..134cca0c1a622e565418ea0ecee7ada8f612b53a 100644 --- a/git/sh-backend/pom.xml +++ b/git/sh-backend/pom.xml @@ -6,13 +6,21 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.piacere.selfhealing.backend</groupId> - <artifactId>self-healing-service</artifactId> + <artifactId>sh-backend</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> - <name>Self Healing Service</name> + <name>Sh Backend</name> <repositories> - <!-- jhipster-needle-maven-repository --> + <repository> + <id>eclipse-2022-12</id> + <url>http://download.eclipse.org/releases/2022-12</url> + <layout>p2</layout> + </repository> + <repository> + <id>doml repository</id> + <url>https://nginx.resources.piacere.digital.tecnalia.dev/repository</url> + </repository> </repositories> <pluginRepositories> @@ -30,7 +38,7 @@ <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target> - <start-class>com.piacere.selfhealing.backend.shBackendApp</start-class> + <start-class>com.piacere.selfhealing.backend.ShBackendApp</start-class> <argLine>-Djava.security.egd=file:/dev/./urandom -Xmx256m</argLine> <m2e.apt.activation>jdt_apt</m2e.apt.activation> <run.addResources>false</run.addResources> @@ -83,6 +91,7 @@ <properties-maven-plugin.version>1.0.0</properties-maven-plugin.version> <sonar-maven-plugin.version>3.9.0.2155</sonar-maven-plugin.version> <!-- jhipster-needle-maven-property --> + <tycho-version>2.7.3</tycho-version> </properties> <dependencyManagement> @@ -136,6 +145,10 @@ <groupId>com.hazelcast</groupId> <artifactId>hazelcast</artifactId> </dependency> + <dependency> + <groupId>com.hazelcast</groupId> + <artifactId>hazelcast-hibernate53</artifactId> + </dependency> <dependency> <groupId>com.hazelcast</groupId> <artifactId>hazelcast-spring</artifactId> @@ -223,6 +236,13 @@ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> + <!-- exclude log4j-api-java9--> + <exclusions> + <exclusion> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api-java9</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> @@ -345,6 +365,105 @@ <artifactId>metrics-core</artifactId> </dependency> <!-- jhipster-needle-maven-add-dependency --> + <dependency> + <groupId>eu.piacere</groupId> + <artifactId>eu.piacere.prc.client</artifactId> + <version>0.1.0</version> + <!-- exclude okhttp3:logging-interceptor --> + <exclusions> + <exclusion> + <groupId>com.squareup.okhttp3</groupId> + <artifactId>logging-interceptor</artifactId> + </exclusion> + </exclusions> + </dependency> + + <!-- add lombok --> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>1.18.24</version> + <scope>provided</scope> + </dependency> + + <!-- org.projectlombok:lombok-mapstruct-binding:jar:0.2.0:provided --> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok-mapstruct-binding</artifactId> + <version>0.2.0</version> + <scope>provided</scope> + </dependency> + + <!-- jinjava for jinja processing --> + <dependency> + <groupId>com.hubspot.jinjava</groupId> + <artifactId>jinjava</artifactId> + <version>2.0.10</version> + </dependency> + + <!-- fix okhttp3 version --> + <dependency> + <groupId>com.squareup.okhttp3</groupId> + <artifactId>logging-interceptor</artifactId> + <version>4.10.0</version> + <exclusions> + <exclusion> + <groupId>com.squareup.okhttp3</groupId> + <artifactId>okhttp</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>com.squareup.okhttp3</groupId> + <artifactId>okhttp</artifactId> + <version>4.10.0</version> + </dependency> + + <dependency> + <groupId>net.lingala.zip4j</groupId> + <artifactId>zip4j</artifactId> + <version>2.11.5</version> + </dependency> + + <!--doml--> + <dependency> + <groupId>eu.piacere</groupId> + <artifactId>eu.piacere.doml</artifactId> + <version>0.1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>eu.piacere</groupId> + <artifactId>eu.piacere.doml.grammar</artifactId> + <version>1.0.0-SNAPSHOT</version> + </dependency> + <!-- java: cannot access org.eclipse.xtext.ISetup. Not sure that this is needed, I think that is an intellidea issue --> + <dependency> + <groupId>org.eclipse.xtext</groupId> + <artifactId>org.eclipse.xtext</artifactId> + <version>2.29.0</version> + </dependency> + <!-- org.eclipse.xtext.util.ReflectionUtil class not found --> + <dependency> + <groupId>org.eclipse.xtext</groupId> + <artifactId>org.eclipse.xtext.util</artifactId> + <version>2.29.0</version> + </dependency> + <!-- org.eclipse.xtext.xbase.lib.Functions$Function1 class not found --> + <dependency> + <groupId>org.eclipse.xtext</groupId> + <artifactId>org.eclipse.xtext.xbase.lib</artifactId> + <version>2.29.0</version> + </dependency> + + <!-- for mime useage --> + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpmime</artifactId> + <version>4.5.9</version> + </dependency> + + </dependencies> <build> @@ -353,6 +472,25 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <annotationProcessorPaths> + <path> + <groupId>org.mapstruct</groupId> + <artifactId>mapstruct-processor</artifactId> + <version>${mapstruct.version}</version> + </path> + <path> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>1.18.24</version> + </path> + <path> + <groupId>org.projectlombok</groupId> + <artifactId>lombok-mapstruct-binding</artifactId> + <version>0.2.0</version> + </path> + </annotationProcessorPaths> + </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -415,6 +553,12 @@ <artifactId>modernizer-maven-plugin</artifactId> </plugin> <!-- jhipster-needle-maven-add-plugin --> + <plugin> + <groupId>org.eclipse.tycho</groupId> + <artifactId>tycho-maven-plugin</artifactId> + <version>${tycho-version}</version> + <extensions>true</extensions> + </plugin> </plugins> <pluginManagement> <plugins> @@ -615,7 +759,7 @@ </platforms> </from> <to> - <image>shBackend:latest</image> + <image>shbackend:latest</image> </to> <container> <entrypoint> diff --git a/git/sh-backend/selfHealingService.jdl b/git/sh-backend/selfHealingService.jdl index 49de0b820d27a54ebe9431ffad26b9c78b9b163e..44bd49cb01f13c6a3abb6742f3a36b5ba409d825 100644 --- a/git/sh-backend/selfHealingService.jdl +++ b/git/sh-backend/selfHealingService.jdl @@ -1,19 +1,51 @@ +// https://www.jhipster.tech/jdl/applications#available-application-configuration-options +application { + config { + applicationType microservice + authenticationType jwt + baseName shBackend + buildTool maven + cacheProvider hazelcast + clientPackageManager npm + databaseType sql + devDatabaseType mysql + dtoSuffix DTO + jhiPrefix jhi + jwtSecretKey "MDBhMjI4YTczOWZlZjFhOTMzMDMyNmI1OGFiODViZjFkMzlkMzI1ZDJjZmNiOGM1YmVlNDJjNDhkNDQ3Mzk4YjEyZmIxZmYzODRhMWZmMDE0MDZlYjViOTNlNjk1Y2I1M2ZjYWQ3NmJkOGZlOWVhNDRjZTZkODgyZDNlOWRjZDI=" + languages [en] + messageBroker kafka + nativeLanguage en + packageName com.piacere.selfhealing.backend + prodDatabaseType mysql + reactive false + searchEngine false + serverPort 8081 + serviceDiscoveryType eureka + skipClient true + skipUserManagement true + testFrameworks [] + websocket false + } + entities SelfHealingMessage, EventType, Strategy, Deployment, StrategyApplication +} + enum Status { PENDING("Pending") PROCESSED("Processed") + IGNORED("Ignored") ERROR("Error") } /** -* Messages received definition +* Messages received definition https://www.jhipster.tech/jdl/entities-fields#field-types-and-validations * * @author Tecnalia */ entity SelfHealingMessage { - origin String required /** message origin component */ - applicationId String /** id of app related to message */ timestamp Instant /** message timestamp */ + origin String required /** message origin component */ + deploymentId String /** id of app related to message */ status Status /** status of the message */ - error String /** error description if status error */ + error TextBlob /** error description if status error */ } /** @@ -22,7 +54,7 @@ entity SelfHealingMessage { * @author Tecnalia */ entity EventType { - code String required /** event type code */ + code String required unique /** event type code */ description String /** event type description */ } @@ -32,19 +64,41 @@ entity EventType { * @author Tecnalia */ entity Strategy { - code String required /** strategy code */ + code String required unique /** strategy code */ description String /** strategy description */ - bpmn String /** business process modelling annotation to propose*/ + configuration TextBlob /** business process modelling annotation to propose*/ } -relationship ManyToOne { - SelfHealingMessage{eventType(code)} to EventType +/** +* deployment of self-healing +* +* @author Tecnalia +*/ +entity Deployment { + deploymentId String required unique /** deployment id */ + bundle Blob required /** information about the deployment zip bundle */ } -relationship OneToMany { - Strategy{eventType(code)} to EventType{strategy(code)} +/** +* strategyApplication of self-healing +* +* @author Tecnalia +*/ +entity StrategyApplication { + timestamp Instant /** strategyApplication timestamp */ + summary TextBlob /** json with summary of strategyApplication */ + bundle Blob /** optional bundle with strategyApplication resources */ +} + +relationship ManyToOne { + SelfHealingMessage{eventType(code)} to EventType + StrategyApplication{strategy(code)} to Strategy + StrategyApplication{deployment(deploymentId)} to Deployment + EventType{strategy(code)} to Strategy + EventType{deployment(deploymentId)} to Deployment + Strategy{deployment(deploymentId)} to Deployment } -skipClient * -microservice SelfHealingMessage, EventType, Strategy with shBackend -clientRootFolder SelfHealingMessage with shBackend +// skipClient * +microservice SelfHealingMessage, EventType, Strategy, Deployment, StrategyApplication with shBackend +// clientRootFolder SelfHealingMessage with shBackend diff --git a/git/sh-backend/selfHealingService.png b/git/sh-backend/selfHealingService.png deleted file mode 100644 index 8a62d6f896c938a316985d22d2236626573400f1..0000000000000000000000000000000000000000 Binary files a/git/sh-backend/selfHealingService.png and /dev/null differ diff --git a/git/sh-backend/src/main/docker/app.yml b/git/sh-backend/src/main/docker/app.yml index 0022d495d17c36d0160625764ad8ce17ce1f1833..db682adece0d8938aa591f0a5286b57e7ad78649 100644 --- a/git/sh-backend/src/main/docker/app.yml +++ b/git/sh-backend/src/main/docker/app.yml @@ -1,25 +1,25 @@ # This configuration is intended for development purpose, it's **your** responsibility to harden it for production version: '3.8' services: - shBackend-app: - image: shBackend + shbackend-app: + image: shbackend environment: - _JAVA_OPTIONS=-Xmx512m -Xms256m - SPRING_PROFILES_ACTIVE=prod,api-docs - MANAGEMENT_METRICS_EXPORT_PROMETHEUS_ENABLED=true - EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=http://admin:$${jhipster.registry.password}@jhipster-registry:8761/eureka - SPRING_CLOUD_CONFIG_URI=http://admin:$${jhipster.registry.password}@jhipster-registry:8761/config - - SPRING_DATASOURCE_URL=jdbc:mysql://shBackend-mysql:3306/shBackend?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true - - SPRING_LIQUIBASE_URL=jdbc:mysql://shBackend-mysql:3306/shBackend?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true + - SPRING_DATASOURCE_URL=jdbc:mysql://shbackend-mysql:3306/shbackend?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true + - SPRING_LIQUIBASE_URL=jdbc:mysql://shbackend-mysql:3306/shbackend?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true - JHIPSTER_SLEEP=30 # gives time for other services to boot before the application - KAFKA_BOOTSTRAPSERVERS=kafka:9092 - shBackend-mysql: + shbackend-mysql: image: mysql:8.0.26 # volumes: # - ~/volumes/jhipster/shBackend/mysql/:/var/lib/mysql/ environment: - MYSQL_ALLOW_EMPTY_PASSWORD=yes - - MYSQL_DATABASE=shBackend + - MYSQL_DATABASE=shbackend # If you want to expose these ports outside your dev PC, # remove the "127.0.0.1:" prefix ports: diff --git a/git/sh-backend/src/main/docker/central-server-config/docker-config/application.yml b/git/sh-backend/src/main/docker/central-server-config/docker-config/application.yml index 123ba5362fdbbb1a54276a21cf6c0be54a01fa48..e24010e6c058c32fae7cb42c9c7926114448984b 100644 --- a/git/sh-backend/src/main/docker/central-server-config/docker-config/application.yml +++ b/git/sh-backend/src/main/docker/central-server-config/docker-config/application.yml @@ -8,7 +8,7 @@ jhipster: authentication: jwt: # secret key which should be base64 encoded and changed in production - base64-secret: MDczODYyNzM4OThhMmNhYmUwNzk2OTNiYzFlYTQ0ZTJhNzkyMTczZjE2YzMzNWJhZWQ3MTBhNGFlYzU4OTM5MTNhNDU3YmI2NzJjMzMyY2E4ZGM3NWNjYjljZTc5ZjZiZmU0M2FmODExYzMyZDRkNDNiYWFiYzI3Zjk5MGM5YmI= + base64-secret: MDBhMjI4YTczOWZlZjFhOTMzMDMyNmI1OGFiODViZjFkMzlkMzI1ZDJjZmNiOGM1YmVlNDJjNDhkNDQ3Mzk4YjEyZmIxZmYzODRhMWZmMDE0MDZlYjViOTNlNjk1Y2I1M2ZjYWQ3NmJkOGZlOWVhNDRjZTZkODgyZDNlOWRjZDI= eureka: client: diff --git a/git/sh-backend/src/main/docker/central-server-config/localhost-config/application.yml b/git/sh-backend/src/main/docker/central-server-config/localhost-config/application.yml index 9314a40ba203ace56dc9b5dcf2de77c9115a3d92..038e809cdac79a31dc15d2e25fa55733d718fec1 100644 --- a/git/sh-backend/src/main/docker/central-server-config/localhost-config/application.yml +++ b/git/sh-backend/src/main/docker/central-server-config/localhost-config/application.yml @@ -8,7 +8,7 @@ jhipster: authentication: jwt: # secret key which should be base64 encoded and changed in production - base64-secret: MDczODYyNzM4OThhMmNhYmUwNzk2OTNiYzFlYTQ0ZTJhNzkyMTczZjE2YzMzNWJhZWQ3MTBhNGFlYzU4OTM5MTNhNDU3YmI2NzJjMzMyY2E4ZGM3NWNjYjljZTc5ZjZiZmU0M2FmODExYzMyZDRkNDNiYWFiYzI3Zjk5MGM5YmI= + base64-secret: MDBhMjI4YTczOWZlZjFhOTMzMDMyNmI1OGFiODViZjFkMzlkMzI1ZDJjZmNiOGM1YmVlNDJjNDhkNDQ3Mzk4YjEyZmIxZmYzODRhMWZmMDE0MDZlYjViOTNlNjk1Y2I1M2ZjYWQ3NmJkOGZlOWVhNDRjZTZkODgyZDNlOWRjZDI= eureka: client: diff --git a/git/sh-backend/src/main/docker/hazelcast-management-center.yml b/git/sh-backend/src/main/docker/hazelcast-management-center.yml index c3f7a0b54dd09a3347afb281d475145037d0e7b7..e5454f284435f565c8d478fc240b8555e3bd4e1f 100644 --- a/git/sh-backend/src/main/docker/hazelcast-management-center.yml +++ b/git/sh-backend/src/main/docker/hazelcast-management-center.yml @@ -1,7 +1,7 @@ # This configuration is intended for development purpose, it's **your** responsibility to harden it for production version: '3.8' services: - shBackend-hazelcast-management-center: + shbackend-hazelcast-management-center: image: hazelcast/management-center:4.2021.06 # If you want to expose these ports outside your dev PC, # remove the "127.0.0.1:" prefix diff --git a/git/sh-backend/src/main/docker/jhipster-control-center.yml b/git/sh-backend/src/main/docker/jhipster-control-center.yml index 86092ab44a372060a3e71db33e825d5cc9d27a79..97eb324a5a6c18ced0c39747ee4732e16ef1240a 100644 --- a/git/sh-backend/src/main/docker/jhipster-control-center.yml +++ b/git/sh-backend/src/main/docker/jhipster-control-center.yml @@ -43,7 +43,7 @@ services: - JHIPSTER_SLEEP=30 # gives time for other services to boot before the application - SPRING_SECURITY_USER_PASSWORD=admin # The token should have the same value than the one declared in you Spring configuration under the jhipster.security.authentication.jwt.base64-secret configuration's entry - - JHIPSTER_SECURITY_AUTHENTICATION_JWT_BASE64_SECRET=MDczODYyNzM4OThhMmNhYmUwNzk2OTNiYzFlYTQ0ZTJhNzkyMTczZjE2YzMzNWJhZWQ3MTBhNGFlYzU4OTM5MTNhNDU3YmI2NzJjMzMyY2E4ZGM3NWNjYjljZTc5ZjZiZmU0M2FmODExYzMyZDRkNDNiYWFiYzI3Zjk5MGM5YmI= + - JHIPSTER_SECURITY_AUTHENTICATION_JWT_BASE64_SECRET=MDBhMjI4YTczOWZlZjFhOTMzMDMyNmI1OGFiODViZjFkMzlkMzI1ZDJjZmNiOGM1YmVlNDJjNDhkNDQ3Mzk4YjEyZmIxZmYzODRhMWZmMDE0MDZlYjViOTNlNjk1Y2I1M2ZjYWQ3NmJkOGZlOWVhNDRjZTZkODgyZDNlOWRjZDI= - EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=http://admin:admin@host.docker.internal:8761/eureka/ - LOGGING_FILE_NAME=/tmp/jhipster-control-center.log # If you want to expose these ports outside your dev PC, diff --git a/git/sh-backend/src/main/docker/jib/entrypoint.sh b/git/sh-backend/src/main/docker/jib/entrypoint.sh index 7c8257c663855bf8cf5ddc5e1160f9296c9708fa..dcde6cdbd8fb04c926b83db31227462328d87cf8 100644 --- a/git/sh-backend/src/main/docker/jib/entrypoint.sh +++ b/git/sh-backend/src/main/docker/jib/entrypoint.sh @@ -1,4 +1,4 @@ #!/bin/sh echo "The application will start in ${JHIPSTER_SLEEP}s..." && sleep ${JHIPSTER_SLEEP} -exec java ${JAVA_OPTS} -noverify -XX:+AlwaysPreTouch -Djava.security.egd=file:/dev/./urandom -cp /app/resources/:/app/classes/:/app/libs/* "com.piacere.selfhealing.backend.shBackendApp" "$@" +exec java ${JAVA_OPTS} -noverify -XX:+AlwaysPreTouch -Djava.security.egd=file:/dev/./urandom -cp /app/resources/:/app/classes/:/app/libs/* "com.piacere.selfhealing.backend.ShBackendApp" "$@" diff --git a/git/sh-backend/src/main/docker/monitoring.yml b/git/sh-backend/src/main/docker/monitoring.yml index 0cc7193e6d23aeaa3e7ad83cf3a691284268416f..134146a87c423ca03598d558fccc1228fd9220b1 100644 --- a/git/sh-backend/src/main/docker/monitoring.yml +++ b/git/sh-backend/src/main/docker/monitoring.yml @@ -1,7 +1,7 @@ # This configuration is intended for development purpose, it's **your** responsibility to harden it for production version: '3.8' services: - shBackend-prometheus: + shbackend-prometheus: image: prom/prometheus:v2.29.2 volumes: - ./prometheus/:/etc/prometheus/ @@ -14,14 +14,14 @@ services: # On MacOS, remove next line and replace localhost by host.docker.internal in prometheus/prometheus.yml and # grafana/provisioning/datasources/datasource.yml network_mode: 'host' # to test locally running service - shBackend-grafana: + shbackend-grafana: image: grafana/grafana:8.1.3 volumes: - ./grafana/provisioning/:/etc/grafana/provisioning/ environment: - GF_SECURITY_ADMIN_PASSWORD=admin - GF_USERS_ALLOW_SIGN_UP=false - - GF_INSTALL_PLUGINS=grafana-pshhart-panel + - GF_INSTALL_PLUGINS=grafana-piechart-panel # If you want to expose these ports outside your dev PC, # remove the "127.0.0.1:" prefix ports: diff --git a/git/sh-backend/src/main/docker/mysql.yml b/git/sh-backend/src/main/docker/mysql.yml index e159728f236a3f1bd7e243f856a30a10a2f95361..3e3509fc0a24836091bd54b8fb77f39454c00beb 100644 --- a/git/sh-backend/src/main/docker/mysql.yml +++ b/git/sh-backend/src/main/docker/mysql.yml @@ -1,13 +1,13 @@ # This configuration is intended for development purpose, it's **your** responsibility to harden it for production version: '3.8' services: - shBackend-mysql: + shbackend-mysql: image: mysql:8.0.26 # volumes: # - ~/volumes/jhipster/shBackend/mysql/:/var/lib/mysql/ environment: - MYSQL_ALLOW_EMPTY_PASSWORD=yes - - MYSQL_DATABASE=shBackend + - MYSQL_DATABASE=shbackend # If you want to expose these ports outside your dev PC, # remove the "127.0.0.1:" prefix ports: diff --git a/git/sh-backend/src/main/docker/sonar.yml b/git/sh-backend/src/main/docker/sonar.yml index ceaded3a8de258959f0e24e7cac72852d57b775c..c0919fa099679dfdda9e9b1d1da1eb10e84336d8 100644 --- a/git/sh-backend/src/main/docker/sonar.yml +++ b/git/sh-backend/src/main/docker/sonar.yml @@ -1,7 +1,7 @@ # This configuration is intended for development purpose, it's **your** responsibility to harden it for production version: '3.8' services: - shBackend-sonar: + shbackend-sonar: image: sonarqube:8.9.2-community # Authentication is turned off for out of the box experience while trying out SonarQube # For real use cases delete sonar.forceAuthentication variable or set sonar.forceAuthentication=true diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/ApplicationWebXml.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/ApplicationWebXml.java index 1468e241370f2b37f6cecf3e3b7285e080a5ec20..cda8e8b9ccd63501380773c775cb3ec2d3d8bb9d 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/ApplicationWebXml.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/ApplicationWebXml.java @@ -14,6 +14,6 @@ public class ApplicationWebXml extends SpringBootServletInitializer { protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { // set a default to use when no profile is configured. DefaultProfileUtil.addDefaultProfile(application.application()); - return application.sources(shBackendApp.class); + return application.sources(ShBackendApp.class); } } diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/client/UserFeignClientInterceptor.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/client/UserFeignClientInterceptor.java index 8d86b41fbd5eb87c326ede33577b9419220812fe..2bd75d7df41039b2712de9bcd997ab8a92d4084a 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/client/UserFeignClientInterceptor.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/client/UserFeignClientInterceptor.java @@ -1,11 +1,10 @@ package com.piacere.selfhealing.backend.client; +import com.piacere.selfhealing.backend.security.SecurityUtils; import feign.RequestInterceptor; import feign.RequestTemplate; import org.springframework.stereotype.Component; -import com.piacere.selfhealing.backend.security.SecurityUtils; - @Component public class UserFeignClientInterceptor implements RequestInterceptor { diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/ApplicationProperties.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/ApplicationProperties.java index 4a141564ff69e0e65537e47000f63062d3b807d8..d1c7fa8ee76a8024dabe121607070d5ddf166841 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/ApplicationProperties.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/ApplicationProperties.java @@ -1,12 +1,33 @@ package com.piacere.selfhealing.backend.config; +import lombok.Getter; +import lombok.Setter; import org.springframework.boot.context.properties.ConfigurationProperties; +import java.util.Map; /** - * Properties specific to Self Healing Service. + * Properties specific to Sh Backend. * <p> * Properties are configured in the {@code application.yml} file. * See {@link tech.jhipster.config.JHipsterProperties} for a good example. */ -@ConfigurationProperties(prefix = "application", ignoreUnknownFields = false) -public class ApplicationProperties {} +@Getter +@Setter +@ConfigurationProperties(prefix = "application", ignoreUnknownFields = true) +public class ApplicationProperties { + private Map<String, String> addHosts; + private Webhook webhook; + private Strategy strategy; + + @Getter + @Setter + public static class Webhook { + private Integer keepLastRequests; + } + + @Getter + @Setter + public static class Strategy { + private String repeatNotBefore = "PT24H"; + } +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/CacheConfiguration.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/CacheConfiguration.java index b0caf9cc3f8be3b39f5e95a644515417d5c33673..8c8fbe0c551892c7595799311babf7430d8185ae 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/CacheConfiguration.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/CacheConfiguration.java @@ -106,6 +106,7 @@ public class CacheConfiguration { } config.setManagementCenterConfig(new ManagementCenterConfig()); config.addMapConfig(initializeDefaultMapConfig(jHipsterProperties)); + config.addMapConfig(initializeDomainMapConfig(jHipsterProperties)); return Hazelcast.newHazelcastInstance(config); } diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/DmcProperties.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/DmcProperties.java new file mode 100644 index 0000000000000000000000000000000000000000..2679a44c960f36dd5644a20c428d37866e846717 --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/DmcProperties.java @@ -0,0 +1,14 @@ +package com.piacere.selfhealing.backend.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Configuration +@Getter +@Setter +@ConfigurationProperties(prefix = "dmc", ignoreUnknownFields = true) +public class DmcProperties { + private String url; +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/HostsConfigurer.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/HostsConfigurer.java new file mode 100644 index 0000000000000000000000000000000000000000..b63ffe24e2ba5fa326c4993c1cb315914ab288f8 --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/HostsConfigurer.java @@ -0,0 +1,101 @@ +package com.piacere.selfhealing.backend.config; + + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.autoconfigure.AutoConfigureBefore; +import org.springframework.boot.web.servlet.ServletContextInitializer; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; + +import javax.servlet.ServletContext; +import javax.servlet.ServletException; +import java.io.File; +import java.io.IOException; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.net.InetAddress; +import java.util.Map; + +@Configuration +@AutoConfigureBefore(value = {WebConfigurer.class, AsyncConfiguration.class}) +public class HostsConfigurer implements ServletContextInitializer { + + private final Logger log = LoggerFactory.getLogger(WebConfigurer.class); + + private final Environment env; + + private final ApplicationProperties applicationProperties; + + public HostsConfigurer(Environment env, ApplicationProperties applicationProperties) { + this.env = env; + this.applicationProperties = applicationProperties; + } + + @Override + public void onStartup(ServletContext servletContext) throws ServletException { + processApplicationAddHosts(); + log.info("Hosts fully configured"); + } + + private void processApplicationAddHosts() { + if (applicationProperties.getAddHosts() == null) return; + + // locate system /etc/hosts file either in linux or windows + String etcHostsFilePath = null; + if (System.getProperty("os.name").toLowerCase().contains("win")) { + etcHostsFilePath = "C:\\Windows\\System32\\drivers\\etc\\hosts"; + } else { + etcHostsFilePath = "/etc/hosts"; + } + + // create a temporary file and copy the content of /etc/hosts file + File tmpFile = null; + try { + tmpFile = File.createTempFile("hosts", ".tmp"); + } catch (IOException e) { + throw new RuntimeException(e); + } + + if (etcHostsFilePath != null) { + try { + org.apache.commons.io.FileUtils.copyFile(new File(etcHostsFilePath), tmpFile); + } catch (IOException e) { + throw new RuntimeException(e); + } + } else { + // create empty file + try { + tmpFile.createNewFile(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + for (Map.Entry<String, String> entry : applicationProperties.getAddHosts().entrySet()) { + log.info("Setting system property: " + entry.getKey() + " = " + entry.getValue()); + // append to temporary file + try { + org.apache.commons.io.FileUtils.writeStringToFile(tmpFile, entry.getValue() + " " + entry.getKey() + "\n", "UTF-8", true); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + String hostsFileName = tmpFile.getAbsolutePath(); + System.setProperty("jdk.net.hosts.file", hostsFileName); + try { + Field fieldHostsFileName = InetAddress.class.getDeclaredField("nameService"); + fieldHostsFileName.setAccessible(true); + Method methodCreateNameService = InetAddress.class.getDeclaredMethod("createNameService"); + methodCreateNameService.setAccessible(true); + Object nameService = methodCreateNameService.invoke(null); + fieldHostsFileName.set(null, nameService); + } catch (Exception e) { + e.printStackTrace(); + // exit application + System.exit(1); + } + } + +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/IcgProperties.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/IcgProperties.java new file mode 100644 index 0000000000000000000000000000000000000000..f9b0f9e0efd2eb39edb287b708b3e9c82aca3c5f --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/IcgProperties.java @@ -0,0 +1,14 @@ +package com.piacere.selfhealing.backend.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Configuration +@Getter +@Setter +@ConfigurationProperties(prefix = "icg", ignoreUnknownFields = true) +public class IcgProperties { + private String url; +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/IopProperties.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/IopProperties.java new file mode 100644 index 0000000000000000000000000000000000000000..b8d48d2a1fb8df6c82c8567607c27e8c623b0a79 --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/IopProperties.java @@ -0,0 +1,14 @@ +package com.piacere.selfhealing.backend.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Configuration +@Getter +@Setter +@ConfigurationProperties(prefix = "iop", ignoreUnknownFields = true) +public class IopProperties { + private String url; +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/IsrProperties.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/IsrProperties.java new file mode 100644 index 0000000000000000000000000000000000000000..3e38eeb00465e8e2d5d05790dcc2486943085a39 --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/IsrProperties.java @@ -0,0 +1,16 @@ +package com.piacere.selfhealing.backend.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Configuration +@Getter +@Setter +@ConfigurationProperties(prefix = "isr", ignoreUnknownFields = true) +public class IsrProperties { + private String url; + private String username; + private String password; +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/KafkaProperties.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/KafkaProperties.java index 8cd398eb966169dcef2a0ccbec2e0a3fb1a6fccb..907403f8fc244a2fa54458b882ca4756792f881c 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/KafkaProperties.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/KafkaProperties.java @@ -3,19 +3,23 @@ package com.piacere.selfhealing.backend.config; import java.util.HashMap; import java.util.Map; -import javax.annotation.PostConstruct; - +import org.apache.kafka.clients.consumer.ConsumerConfig; +import org.apache.kafka.clients.producer.ProducerConfig; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; -import org.apache.kafka.clients.consumer.ConsumerConfig; -import org.apache.kafka.clients.producer.ProducerConfig; +import lombok.Getter; +import lombok.Setter; + +import javax.annotation.PostConstruct; @Configuration @ConfigurationProperties(prefix = "kafka") +@Getter +@Setter public class KafkaProperties { @Value("${kafka.bootstrap.servers:kafka:9092}") - private String bootstrapServers; + private String bootStrapServers; @Value("${kafka.polling.timeout:10000}") private Integer pollingTimeout; @@ -29,39 +33,15 @@ public class KafkaProperties { for (String consumerKey : consumer.keySet()) { final Map<String, Object> properties = consumer.get(consumerKey); if (!properties.containsKey(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG)) { - properties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers); + properties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootStrapServers); } } for (String consumerKey : producer.keySet()) { final Map<String, Object> properties = producer.get(consumerKey); if (!properties.containsKey(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG)) { - properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers); + properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootStrapServers); } } } - - public Map<String, Map<String, Object>> getConsumer() { - return this.consumer; - } - - public void setConsumer(Map<String, Map<String, Object>> consumer) { - this.consumer = consumer; - } - - public Map<String, Map<String, Object>> getProducer() { - return this.producer; - } - - public void setProducer(Map<String, Map<String, Object>> producer) { - this.producer = producer; - } - - public Integer getPollingTimeout() { - return pollingTimeout; - } - - public void setPollingTimeout(Integer pollingTimeout) { - this.pollingTimeout = pollingTimeout; - } } diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/LoggingAspectConfiguration.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/LoggingAspectConfiguration.java index e1572c5b4e12c1ac76f89bc2dc082ef86ff7b3c1..9fa0c8907b6fd893bf7dc0d4e3b2ac91a0bef7c4 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/LoggingAspectConfiguration.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/LoggingAspectConfiguration.java @@ -1,10 +1,8 @@ package com.piacere.selfhealing.backend.config; +import com.piacere.selfhealing.backend.aop.logging.LoggingAspect; import org.springframework.context.annotation.*; import org.springframework.core.env.Environment; - -import com.piacere.selfhealing.backend.aop.logging.LoggingAspect; - import tech.jhipster.config.JHipsterConstants; @Configuration diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/PrcProperties.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/PrcProperties.java new file mode 100644 index 0000000000000000000000000000000000000000..5cf64f038adb1e89e5af0cb3b2d5ba380dc7811a --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/PrcProperties.java @@ -0,0 +1,22 @@ +package com.piacere.selfhealing.backend.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import java.util.Map; + +/** + * Properties specific to Self Healing Service. + * <p> + * Properties are configured in the {@code application.yml} file. + * See {@link tech.jhipster.config.JHipsterProperties} for a good example. + */ +@Configuration +@Getter +@Setter +@ConfigurationProperties(prefix = "prc", ignoreUnknownFields = true) +public class PrcProperties { + private String url; +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/SecurityConfiguration.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/SecurityConfiguration.java index c1d57cb034ee9cc3f7f6cc61d3faab5698de4bcb..6677b62f73e0896c876fd3fe17af22c05e87fc5a 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/SecurityConfiguration.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/config/SecurityConfiguration.java @@ -2,7 +2,6 @@ package com.piacere.selfhealing.backend.config; import com.piacere.selfhealing.backend.security.*; import com.piacere.selfhealing.backend.security.jwt.*; - import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; import org.springframework.http.HttpMethod; @@ -62,7 +61,7 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { .authorizeRequests() .antMatchers("/api/authenticate").permitAll() .antMatchers("/api/admin/**").hasAuthority(AuthoritiesConstants.ADMIN) - .antMatchers("/api/**").authenticated() + .antMatchers("/api/**").permitAll() .antMatchers("/management/health").permitAll() .antMatchers("/management/health/**").permitAll() .antMatchers("/management/info").permitAll() diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/consumer/GenericConsumer.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/consumer/GenericConsumer.java index 8be4cb27a768c4b412e4a9bdc28c23ebf8315fc2..d7394c9ac9964917538f3ec4cb13f48d7057c97a 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/consumer/GenericConsumer.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/consumer/GenericConsumer.java @@ -23,14 +23,17 @@ public abstract class GenericConsumer<T> implements Runnable { private final AtomicBoolean closed = new AtomicBoolean(false); - private final KafkaConsumer<String, Either<DeserializationError, T>> consumer; private final String topicName; private final int pollingTimeout; + private KafkaConsumer<String, Either<DeserializationError, T>> consumer; + + private final Map <String, Object> properties; + public GenericConsumer(final String topicName, final Map<String, Object> properties, final int pollingTimeout) { this.topicName = topicName; - this.consumer = new KafkaConsumer<>(properties); this.pollingTimeout = pollingTimeout; + this.properties = properties; } @PostConstruct @@ -45,29 +48,34 @@ public abstract class GenericConsumer<T> implements Runnable { @Override public void run() { - try { - consumer.subscribe(Collections.singleton(topicName)); - while (!closed.get()) { - final ConsumerRecords<String, Either<DeserializationError, T>> records = consumer.poll(Duration.ofMillis(pollingTimeout)); - for (final ConsumerRecord<String, Either<DeserializationError, T>> record : records) { - handleMessage(record); + while (true) { + consumer = new KafkaConsumer<>(properties); + log.debug("Polling records from topic {}", topicName); + try { + consumer.subscribe(Collections.singleton(topicName)); + while (!closed.get()) { + final ConsumerRecords<String, Either<DeserializationError, T>> records = consumer.poll(Duration.ofMillis(pollingTimeout)); + for (final ConsumerRecord<String, Either<DeserializationError, T>> record : records) { + handleMessage(record); + } + consumer.commitSync(); } - consumer.commitSync(); + } catch (final WakeupException e) { + // Ignore exception if closing + if (!closed.get()) throw e; + } catch (final Exception e) { + log.error("An error occurred while trying to poll records from topic!", e); + } finally { + // Close consumer gracefully and destroy the instance + consumer.close(); } - } catch (final WakeupException e) { - // Ignore exception if closing - if (!closed.get()) throw e; - } catch (final Exception e) { - log.error("An error occurred while trying to poll records from topic!", e); - } finally { - consumer.close(); } } // Shutdown hook which can be called from a separate thread public void shutdown() { closed.set(true); - consumer.wakeup(); + if (consumer != null) consumer.wakeup(); } protected abstract void handleMessage(ConsumerRecord<String, Either<DeserializationError, T>> record); diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/consumer/SelfHealingMessageConsumer.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/consumer/SelfHealingMessageConsumer.java index 8f35d5cf49b3fca6d462e4a28a4a7f4b0a6eb2c1..824deedd819c3529d341633787fd3944f36e8c41 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/consumer/SelfHealingMessageConsumer.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/consumer/SelfHealingMessageConsumer.java @@ -4,6 +4,8 @@ import org.apache.kafka.clients.consumer.ConsumerRecord; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; +import org.springframework.beans.factory.support.DefaultSingletonBeanRegistry; +import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.core.task.SimpleAsyncTaskExecutor; import org.springframework.stereotype.Service; @@ -15,18 +17,24 @@ import com.piacere.selfhealing.backend.service.SelfHealingMessageService; import io.vavr.control.Either; +import java.util.Map; + @Service public class SelfHealingMessageConsumer extends GenericConsumer<SelfHealingMessage> { private final Logger log = LoggerFactory.getLogger(SelfHealingMessageConsumer.class); private final SelfHealingMessageService selfHealingMessageService; + private final ApplicationContext applicationContext; + public SelfHealingMessageConsumer( @Value("${kafka.topic.selfHealingMessage}") final String topicName, final KafkaProperties kafkaProperties, - SelfHealingMessageService selfHealingMessageService + SelfHealingMessageService selfHealingMessageService, + ApplicationContext applicationContext ) { super(topicName, kafkaProperties.getConsumer().get("selfHealingMessage"), kafkaProperties.getPollingTimeout()); this.selfHealingMessageService = selfHealingMessageService; + this.applicationContext = applicationContext; } @Override @@ -41,7 +49,12 @@ public class SelfHealingMessageConsumer extends GenericConsumer<SelfHealingMessa return; } log.debug("----SELF-HEALING PROCESS STARTED------------------------------"); - this.selfHealingMessageService.processMessage(value.get()); + try { + this.selfHealingMessageService.processMessage(value.get()); + } catch (Exception e) { + e.printStackTrace(); + } + log.debug("----SELF-HEALING PROCESS FINISHED------------------------------"); } diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/consumer/package-info.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/consumer/package-info.java deleted file mode 100644 index cceaecedcfd27aaa5fb4771b5c901b70653155c2..0000000000000000000000000000000000000000 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/consumer/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package com.piacere.selfhealing.backend.consumer; \ No newline at end of file diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/Deployment.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/Deployment.java new file mode 100644 index 0000000000000000000000000000000000000000..3e574027fa7bd8e3ad574ca690ba3d8f5b8810bb --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/Deployment.java @@ -0,0 +1,130 @@ +package com.piacere.selfhealing.backend.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import javax.persistence.*; +import javax.validation.constraints.*; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +/** + * deployment of self-healing\n\n@author Tecnalia + */ +@ApiModel(description = "deployment of self-healing\n\n@author Tecnalia") +@Entity +@Table(name = "deployment") +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +public class Deployment implements Serializable { + + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id") + private Long id; + + /** + * deployment id + */ + @ApiModelProperty(value = "deployment id", required = true) + @NotNull + @Column(name = "deployment_id", nullable = false, unique = true) + private String deploymentId; + + /** + * information about the deployment zip bundle + */ + @ApiModelProperty(value = "information about the deployment zip bundle", required = true) + @Lob + @Column(name = "bundle", nullable = false) + private byte[] bundle; + + @NotNull + @Column(name = "bundle_content_type", nullable = false) + private String bundleContentType; + + // jhipster-needle-entity-add-field - JHipster will add fields here + + public Long getId() { + return this.id; + } + + public Deployment id(Long id) { + this.setId(id); + return this; + } + + public void setId(Long id) { + this.id = id; + } + + public String getDeploymentId() { + return this.deploymentId; + } + + public Deployment deploymentId(String deploymentId) { + this.setDeploymentId(deploymentId); + return this; + } + + public void setDeploymentId(String deploymentId) { + this.deploymentId = deploymentId; + } + + public byte[] getBundle() { + return this.bundle; + } + + public Deployment bundle(byte[] bundle) { + this.setBundle(bundle); + return this; + } + + public void setBundle(byte[] bundle) { + this.bundle = bundle; + } + + public String getBundleContentType() { + return this.bundleContentType; + } + + public Deployment bundleContentType(String bundleContentType) { + this.bundleContentType = bundleContentType; + return this; + } + + public void setBundleContentType(String bundleContentType) { + this.bundleContentType = bundleContentType; + } + + // jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof Deployment)) { + return false; + } + return id != null && id.equals(((Deployment) o).id); + } + + @Override + public int hashCode() { + // see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/ + return getClass().hashCode(); + } + + // prettier-ignore + @Override + public String toString() { + return "Deployment{" + + "id=" + getId() + + ", deploymentId='" + getDeploymentId() + "'" + + ", bundle='" + getBundle() + "'" + + ", bundleContentType='" + getBundleContentType() + "'" + + "}"; + } +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/EventType.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/EventType.java index e42257ec3aa02c342211fc3eb2fe7e3e19028914..6a36773cbc37913ba24c069294f9345fe03085db 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/EventType.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/EventType.java @@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import javax.persistence.*; import javax.validation.constraints.*; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; /** * type of events managed by self-healing\n\n@author Tecnalia @@ -13,6 +15,7 @@ import javax.validation.constraints.*; @ApiModel(description = "type of events managed by self-healing\n\n@author Tecnalia") @Entity @Table(name = "event_type") +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class EventType implements Serializable { private static final long serialVersionUID = 1L; @@ -27,7 +30,7 @@ public class EventType implements Serializable { */ @ApiModelProperty(value = "event type code", required = true) @NotNull - @Column(name = "code", nullable = false) + @Column(name = "code", nullable = false, unique = true) private String code; /** @@ -38,9 +41,12 @@ public class EventType implements Serializable { private String description; @ManyToOne - @JsonIgnoreProperties(value = { "eventTypes" }, allowSetters = true) + @JsonIgnoreProperties(value = { "deployment" }, allowSetters = true) private Strategy strategy; + @ManyToOne + private Deployment deployment; + // jhipster-needle-entity-add-field - JHipster will add fields here public Long getId() { @@ -95,6 +101,19 @@ public class EventType implements Serializable { return this; } + public Deployment getDeployment() { + return this.deployment; + } + + public void setDeployment(Deployment deployment) { + this.deployment = deployment; + } + + public EventType deployment(Deployment deployment) { + this.setDeployment(deployment); + return this; + } + // jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here @Override diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/SelfHealingMessage.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/SelfHealingMessage.java index 5b49fa83f74b42e51e7d3213d429b4785897bcef..f500671f1680aef4c338b2d97177ffeaebb43f66 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/SelfHealingMessage.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/SelfHealingMessage.java @@ -2,20 +2,22 @@ package com.piacere.selfhealing.backend.domain; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.piacere.selfhealing.backend.domain.enumeration.Status; - import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import java.time.Instant; import javax.persistence.*; import javax.validation.constraints.*; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; /** - * Messages received definition\n\n@author Tecnalia + * Messages received definition https:\n\n@author Tecnalia */ -@ApiModel(description = "Messages received definition\n\n@author Tecnalia") +@ApiModel(description = "Messages received definition https:\n\n@author Tecnalia") @Entity @Table(name = "self_healing_message") +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class SelfHealingMessage implements Serializable { private static final long serialVersionUID = 1L; @@ -25,6 +27,13 @@ public class SelfHealingMessage implements Serializable { @Column(name = "id") private Long id; + /** + * message timestamp + */ + @ApiModelProperty(value = "message timestamp") + @Column(name = "timestamp") + private Instant timestamp; + /** * message origin component */ @@ -37,15 +46,8 @@ public class SelfHealingMessage implements Serializable { * id of app related to message */ @ApiModelProperty(value = "id of app related to message") - @Column(name = "application_id") - private String applicationId; - - /** - * message timestamp - */ - @ApiModelProperty(value = "message timestamp") - @Column(name = "timestamp") - private Instant timestamp; + @Column(name = "deployment_id") + private String deploymentId; /** * status of the message @@ -59,11 +61,12 @@ public class SelfHealingMessage implements Serializable { * error description if status error */ @ApiModelProperty(value = "error description if status error") + @Lob @Column(name = "error") private String error; - @ManyToOne(optional = false) - @JsonIgnoreProperties(value = { "strategy" }, allowSetters = true) + @ManyToOne + @JsonIgnoreProperties(value = { "strategy", "deployment" }, allowSetters = true) private EventType eventType; // jhipster-needle-entity-add-field - JHipster will add fields here @@ -81,43 +84,43 @@ public class SelfHealingMessage implements Serializable { this.id = id; } - public String getOrigin() { - return this.origin; + public Instant getTimestamp() { + return this.timestamp; } - public SelfHealingMessage origin(String origin) { - this.setOrigin(origin); + public SelfHealingMessage timestamp(Instant timestamp) { + this.setTimestamp(timestamp); return this; } - public void setOrigin(String origin) { - this.origin = origin; + public void setTimestamp(Instant timestamp) { + this.timestamp = timestamp; } - public String getApplicationId() { - return this.applicationId; + public String getOrigin() { + return this.origin; } - public SelfHealingMessage applicationId(String applicationId) { - this.setApplicationId(applicationId); + public SelfHealingMessage origin(String origin) { + this.setOrigin(origin); return this; } - public void setApplicationId(String applicationId) { - this.applicationId = applicationId; + public void setOrigin(String origin) { + this.origin = origin; } - public Instant getTimestamp() { - return this.timestamp; + public String getDeploymentId() { + return this.deploymentId; } - public SelfHealingMessage timestamp(Instant timestamp) { - this.setTimestamp(timestamp); + public SelfHealingMessage deploymentId(String deploymentId) { + this.setDeploymentId(deploymentId); return this; } - public void setTimestamp(Instant timestamp) { - this.timestamp = timestamp; + public void setDeploymentId(String deploymentId) { + this.deploymentId = deploymentId; } public Status getStatus() { @@ -183,9 +186,9 @@ public class SelfHealingMessage implements Serializable { public String toString() { return "SelfHealingMessage{" + "id=" + getId() + - ", origin='" + getOrigin() + "'" + - ", applicationId='" + getApplicationId() + "'" + ", timestamp='" + getTimestamp() + "'" + + ", origin='" + getOrigin() + "'" + + ", deploymentId='" + getDeploymentId() + "'" + ", status='" + getStatus() + "'" + ", error='" + getError() + "'" + "}"; diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/Strategy.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/Strategy.java index c858d72ca2d1627be04275b619841e7473e741f5..9357cf23467b6583f8abf48a66172a11c75cce00 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/Strategy.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/Strategy.java @@ -1,13 +1,12 @@ package com.piacere.selfhealing.backend.domain; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; -import java.util.HashSet; -import java.util.Set; import javax.persistence.*; import javax.validation.constraints.*; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; /** * strategys managed by self-healing\n\n@author Tecnalia @@ -15,6 +14,7 @@ import javax.validation.constraints.*; @ApiModel(description = "strategys managed by self-healing\n\n@author Tecnalia") @Entity @Table(name = "strategy") +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class Strategy implements Serializable { private static final long serialVersionUID = 1L; @@ -29,7 +29,7 @@ public class Strategy implements Serializable { */ @ApiModelProperty(value = "strategy code", required = true) @NotNull - @Column(name = "code", nullable = false) + @Column(name = "code", nullable = false, unique = true) private String code; /** @@ -43,12 +43,12 @@ public class Strategy implements Serializable { * business process modelling annotation to propose */ @ApiModelProperty(value = "business process modelling annotation to propose") - @Column(name = "bpmn") - private String bpmn; + @Lob + @Column(name = "configuration") + private String configuration; - @OneToMany(mappedBy = "strategy") - @JsonIgnoreProperties(value = { "strategy" }, allowSetters = true) - private Set<EventType> eventTypes = new HashSet<>(); + @ManyToOne + private Deployment deployment; // jhipster-needle-entity-add-field - JHipster will add fields here @@ -91,47 +91,29 @@ public class Strategy implements Serializable { this.description = description; } - public String getBpmn() { - return this.bpmn; + public String getConfiguration() { + return this.configuration; } - public Strategy bpmn(String bpmn) { - this.setBpmn(bpmn); + public Strategy configuration(String configuration) { + this.setConfiguration(configuration); return this; } - public void setBpmn(String bpmn) { - this.bpmn = bpmn; + public void setConfiguration(String configuration) { + this.configuration = configuration; } - public Set<EventType> getEventTypes() { - return this.eventTypes; + public Deployment getDeployment() { + return this.deployment; } - public void setEventTypes(Set<EventType> eventTypes) { - if (this.eventTypes != null) { - this.eventTypes.forEach(i -> i.setStrategy(null)); - } - if (eventTypes != null) { - eventTypes.forEach(i -> i.setStrategy(this)); - } - this.eventTypes = eventTypes; - } - - public Strategy eventTypes(Set<EventType> eventTypes) { - this.setEventTypes(eventTypes); - return this; - } - - public Strategy addEventType(EventType eventType) { - this.eventTypes.add(eventType); - eventType.setStrategy(this); - return this; + public void setDeployment(Deployment deployment) { + this.deployment = deployment; } - public Strategy removeEventType(EventType eventType) { - this.eventTypes.remove(eventType); - eventType.setStrategy(null); + public Strategy deployment(Deployment deployment) { + this.setDeployment(deployment); return this; } @@ -161,7 +143,7 @@ public class Strategy implements Serializable { "id=" + getId() + ", code='" + getCode() + "'" + ", description='" + getDescription() + "'" + - ", bpmn='" + getBpmn() + "'" + + ", configuration='" + getConfiguration() + "'" + "}"; } } diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/StrategyApplication.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/StrategyApplication.java new file mode 100644 index 0000000000000000000000000000000000000000..77f065624828463896f61792bbd09c2db11b6ea6 --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/StrategyApplication.java @@ -0,0 +1,184 @@ +package com.piacere.selfhealing.backend.domain; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.time.Instant; +import javax.persistence.*; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +/** + * strategyApplication of self-healing\n\n@author Tecnalia + */ +@ApiModel(description = "strategyApplication of self-healing\n\n@author Tecnalia") +@Entity +@Table(name = "strategy_application") +@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +public class StrategyApplication implements Serializable { + + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id") + private Long id; + + /** + * strategyApplication timestamp + */ + @ApiModelProperty(value = "strategyApplication timestamp") + @Column(name = "timestamp") + private Instant timestamp; + + /** + * json with summary of strategyApplication + */ + @ApiModelProperty(value = "json with summary of strategyApplication") + @Lob + @Column(name = "summary") + private String summary; + + /** + * optional bundle with strategyApplication resources + */ + @ApiModelProperty(value = "optional bundle with strategyApplication resources") + @Lob + @Column(name = "bundle") + private byte[] bundle; + + @Column(name = "bundle_content_type") + private String bundleContentType; + + @ManyToOne + @JsonIgnoreProperties(value = { "deployment" }, allowSetters = true) + private Strategy strategy; + + @ManyToOne + private Deployment deployment; + + // jhipster-needle-entity-add-field - JHipster will add fields here + + public Long getId() { + return this.id; + } + + public StrategyApplication id(Long id) { + this.setId(id); + return this; + } + + public void setId(Long id) { + this.id = id; + } + + public Instant getTimestamp() { + return this.timestamp; + } + + public StrategyApplication timestamp(Instant timestamp) { + this.setTimestamp(timestamp); + return this; + } + + public void setTimestamp(Instant timestamp) { + this.timestamp = timestamp; + } + + public String getSummary() { + return this.summary; + } + + public StrategyApplication summary(String summary) { + this.setSummary(summary); + return this; + } + + public void setSummary(String summary) { + this.summary = summary; + } + + public byte[] getBundle() { + return this.bundle; + } + + public StrategyApplication bundle(byte[] bundle) { + this.setBundle(bundle); + return this; + } + + public void setBundle(byte[] bundle) { + this.bundle = bundle; + } + + public String getBundleContentType() { + return this.bundleContentType; + } + + public StrategyApplication bundleContentType(String bundleContentType) { + this.bundleContentType = bundleContentType; + return this; + } + + public void setBundleContentType(String bundleContentType) { + this.bundleContentType = bundleContentType; + } + + public Strategy getStrategy() { + return this.strategy; + } + + public void setStrategy(Strategy strategy) { + this.strategy = strategy; + } + + public StrategyApplication strategy(Strategy strategy) { + this.setStrategy(strategy); + return this; + } + + public Deployment getDeployment() { + return this.deployment; + } + + public void setDeployment(Deployment deployment) { + this.deployment = deployment; + } + + public StrategyApplication deployment(Deployment deployment) { + this.setDeployment(deployment); + return this; + } + + // jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof StrategyApplication)) { + return false; + } + return id != null && id.equals(((StrategyApplication) o).id); + } + + @Override + public int hashCode() { + // see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/ + return getClass().hashCode(); + } + + // prettier-ignore + @Override + public String toString() { + return "StrategyApplication{" + + "id=" + getId() + + ", timestamp='" + getTimestamp() + "'" + + ", summary='" + getSummary() + "'" + + ", bundle='" + getBundle() + "'" + + ", bundleContentType='" + getBundleContentType() + "'" + + "}"; + } +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/enumeration/Status.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/enumeration/Status.java index b23f5290a904d262d8604d19b980e78b98985c24..f3e067d2b09d00ffdd639510dc10cdba9474ef35 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/enumeration/Status.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/domain/enumeration/Status.java @@ -6,6 +6,7 @@ package com.piacere.selfhealing.backend.domain.enumeration; public enum Status { PENDING("Pending"), PROCESSED("Processed"), + IGNORED("Ignored"), ERROR("Error"); private final String value; diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/producer/SelfHealingMessageProducer.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/producer/SelfHealingMessageProducer.java index 4d0c0bc1f68dcd4f7a714b6b016dd2961372839a..bd9f4b59b36e5a238838182c84f67a0e82ae6e91 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/producer/SelfHealingMessageProducer.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/producer/SelfHealingMessageProducer.java @@ -11,6 +11,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.util.Map; + @Service public class SelfHealingMessageProducer { enum ReferenceTomProducerKey { diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/producer/package-info.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/producer/package-info.java deleted file mode 100644 index 11db96d836de1a09a03c11fdeb6e1131cbc59e96..0000000000000000000000000000000000000000 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/producer/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package com.piacere.selfhealing.backend.producer; \ No newline at end of file diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/DeploymentRepository.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/DeploymentRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..4ef26bf984ced55ee56eb7f3029ebc22ca33efe2 --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/DeploymentRepository.java @@ -0,0 +1,14 @@ +package com.piacere.selfhealing.backend.repository; + +import com.piacere.selfhealing.backend.domain.Deployment; +import org.springframework.data.jpa.repository.*; +import org.springframework.stereotype.Repository; + +/** + * Spring Data SQL repository for the Deployment entity. + */ +@SuppressWarnings("unused") +@Repository +public interface DeploymentRepository extends JpaRepository<Deployment, Long> { + Deployment getByDeploymentId(String deploymentId); +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/EventTypeRepository.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/EventTypeRepository.java index 307e927074cc416654327bf51006588e6d056aa4..a644f4a41abdb4006c9648336dc52fd0a142c0c3 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/EventTypeRepository.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/EventTypeRepository.java @@ -1,9 +1,10 @@ package com.piacere.selfhealing.backend.repository; +import com.piacere.selfhealing.backend.domain.EventType; import org.springframework.data.jpa.repository.*; import org.springframework.stereotype.Repository; -import com.piacere.selfhealing.backend.domain.EventType; +import java.util.List; /** * Spring Data SQL repository for the EventType entity. @@ -13,9 +14,10 @@ import com.piacere.selfhealing.backend.domain.EventType; public interface EventTypeRepository extends JpaRepository<EventType, Long> { /** * Find eventtype by code - * + * * @param code * @return the eventtype with code provided */ public EventType findByCode(String code); + public List<EventType> findAllByDeploymentId(Long deploymentId); } diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/SelfHealingMessageRepository.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/SelfHealingMessageRepository.java index 4f5d738bef85fba867733dd6274655b4da358f9c..1f94345a94e6a1b9a414e049cdba08999ec4800f 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/SelfHealingMessageRepository.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/SelfHealingMessageRepository.java @@ -1,13 +1,18 @@ package com.piacere.selfhealing.backend.repository; +import com.piacere.selfhealing.backend.domain.EventType; +import com.piacere.selfhealing.backend.domain.SelfHealingMessage; +import com.piacere.selfhealing.backend.domain.StrategyApplication; import org.springframework.data.jpa.repository.*; import org.springframework.stereotype.Repository; -import com.piacere.selfhealing.backend.domain.SelfHealingMessage; +import java.util.List; /** * Spring Data SQL repository for the SelfHealingMessage entity. */ @SuppressWarnings("unused") @Repository -public interface SelfHealingMessageRepository extends JpaRepository<SelfHealingMessage, Long> {} +public interface SelfHealingMessageRepository extends JpaRepository<SelfHealingMessage, Long> { + public List<SelfHealingMessage> findAllByEventType(EventType eventType); +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/StrategyApplicationRepository.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/StrategyApplicationRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..b6637cf780ffacc44bf51a504c442eac720c27e8 --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/StrategyApplicationRepository.java @@ -0,0 +1,19 @@ +package com.piacere.selfhealing.backend.repository; + +import com.piacere.selfhealing.backend.domain.Strategy; +import com.piacere.selfhealing.backend.domain.StrategyApplication; +import org.springframework.data.jpa.repository.*; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * Spring Data SQL repository for the StrategyApplication entity. + */ +@SuppressWarnings("unused") +@Repository +public interface StrategyApplicationRepository extends JpaRepository<StrategyApplication, Long> { + public List<StrategyApplication> findAllByDeploymentId(Long deploymentId); + + public List<StrategyApplication> findAllByStrategy(Strategy strategy); +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/StrategyRepository.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/StrategyRepository.java index 0c08365e59548b9ecf2a2b54ffad772b4dc1e11f..8a4688db849339862f9c2d7b63ec38408dab8e0e 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/StrategyRepository.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/repository/StrategyRepository.java @@ -1,13 +1,19 @@ package com.piacere.selfhealing.backend.repository; +import com.piacere.selfhealing.backend.domain.EventType; +import com.piacere.selfhealing.backend.domain.Strategy; import org.springframework.data.jpa.repository.*; import org.springframework.stereotype.Repository; -import com.piacere.selfhealing.backend.domain.Strategy; +import java.util.List; /** * Spring Data SQL repository for the Strategy entity. */ @SuppressWarnings("unused") @Repository -public interface StrategyRepository extends JpaRepository<Strategy, Long> {} +public interface StrategyRepository extends JpaRepository<Strategy, Long> { + public Strategy findByCode(String code); + public List<Strategy> findAllByDeploymentId(Long deploymentId); + +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/security/SpringSecurityAuditorAware.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/security/SpringSecurityAuditorAware.java index 9f77c16232edbc4807d288648d351e8ff63f9b89..874e5ac4932150c9da822479017558ed31c05503 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/security/SpringSecurityAuditorAware.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/security/SpringSecurityAuditorAware.java @@ -1,11 +1,10 @@ package com.piacere.selfhealing.backend.security; +import com.piacere.selfhealing.backend.config.Constants; import java.util.Optional; import org.springframework.data.domain.AuditorAware; import org.springframework.stereotype.Component; -import com.piacere.selfhealing.backend.config.Constants; - /** * Implementation of {@link AuditorAware} based on Spring Security. */ diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/serde/package-info.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/serde/package-info.java deleted file mode 100644 index 336d4f3e3525d56286639da8d4e275d410ce4b8c..0000000000000000000000000000000000000000 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/serde/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package com.piacere.selfhealing.backend.serde; \ No newline at end of file diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/BundleService.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/BundleService.java new file mode 100644 index 0000000000000000000000000000000000000000..50b2596841136aa0eebb68a5d8ab8bef1ff464ef --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/BundleService.java @@ -0,0 +1,92 @@ +package com.piacere.selfhealing.backend.service; + +import com.piacere.selfhealing.backend.domain.Deployment; +import com.piacere.selfhealing.backend.domain.StrategyApplication; +import net.lingala.zip4j.ZipFile; +import net.lingala.zip4j.exception.ZipException; +import net.lingala.zip4j.model.ZipParameters; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; + +@Service +public class BundleService { + private final Logger log = LoggerFactory.getLogger(BundleService.class); + + public Path unpackBundle(Deployment deployment) { + Path tmpDir = createTmpDir(); + + // save base64 encoded deployment bundle to tmp directory + Path deploymentBundlePath = tmpDir.resolve("bundle.zip"); + log.info("Writing deployment bundle to {}", deploymentBundlePath); + try { + Files.write(deploymentBundlePath, deployment.getBundle()); + } catch (IOException e) { + log.error("Error writing deployment bundle to tmp directory"); + e.printStackTrace(); + throw new RuntimeException(e); + } + + // unpack deployment bundle into tmp directory with ZipFile().extractAll() + log.info("Unpacking deployment bundle"); + try { + new ZipFile(deploymentBundlePath.toString()).extractAll(tmpDir.toString()); + } catch (ZipException e) { + log.error("Error unpacking deployment bundle"); + e.printStackTrace(); + throw new RuntimeException(e); + } + return tmpDir; + } + + public byte[] getByteArrayFromFile(Path domlPath) { + // get byte[] from domlxPath file + byte[] domlBytes = null; + try { + domlBytes = Files.readAllBytes(domlPath); + } catch (IOException e) { + log.error("Error reading doml file", e); + throw new RuntimeException(e); + } + return domlBytes; + } + + public Path createTmpDir() { + // create a random folder name in tmp directory + Path tmpDir = null; + try { + tmpDir = Files.createTempDirectory("piacere-"); + } catch (IOException e) { + log.error("Error creating tmp directory"); + e.printStackTrace(); + throw new RuntimeException(e); + } + return tmpDir; + } + + public void packBundle(StrategyApplication strategyApplication, Path deploymentUnpackTmpDir) { + Path tempDir = createTmpDir(); + Path bundlePath = tempDir.resolve("bundle.zip"); + packBundle(deploymentUnpackTmpDir, bundlePath); + byte[] bundleBytes = getByteArrayFromFile(bundlePath); + strategyApplication.setBundle(bundleBytes); + strategyApplication.bundleContentType("application/zip"); + } + + public void packBundle(Path deploymentUnpackTmpDir, Path bundlePath) { + log.info("Packing bundle to {}", bundlePath); + ZipParameters zipParameters = new ZipParameters(); + zipParameters.setIncludeRootFolder(false); + try { + new ZipFile(bundlePath.toString()).addFolder(deploymentUnpackTmpDir.toFile(), zipParameters); + } catch (ZipException e) { + log.error("Error packing bundle"); + e.printStackTrace(); + throw new RuntimeException(e); + } + } +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/DOMLService.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/DOMLService.java new file mode 100644 index 0000000000000000000000000000000000000000..588918852196355a4d7397c6308150d102d49d00 --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/DOMLService.java @@ -0,0 +1,182 @@ +package com.piacere.selfhealing.backend.service; + +import com.piacere.selfhealing.backend.domain.Deployment; +import com.piacere.selfhealing.backend.domain.StrategyApplication; +import eu.piacere.doml.DomlStandaloneSetup; +import eu.piacere.doml.doml.application.ApplicationPackage; +import eu.piacere.doml.doml.commons.CommonsPackage; +import eu.piacere.doml.doml.commons.DOMLModel; +import eu.piacere.doml.doml.concrete.ConcretePackage; +import eu.piacere.doml.doml.infrastructure.InfrastructurePackage; +import eu.piacere.doml.doml.optimization.OptimizationPackage; +import net.lingala.zip4j.ZipFile; +import net.lingala.zip4j.exception.ZipException; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; +import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; + +@Service + +public class DOMLService { + private final Logger log = LoggerFactory.getLogger(DOMLService.class); + private final BundleService bundleService; + + public DOMLService(BundleService bundleService) { + this.bundleService = bundleService; + + DomlStandaloneSetup.doSetup(); + if (!EPackage.Registry.INSTANCE.containsKey(CommonsPackage.eNS_URI)) { + EPackage.Registry.INSTANCE.put(CommonsPackage.eNS_URI, CommonsPackage.eINSTANCE); + } + if (!EPackage.Registry.INSTANCE.containsKey(ApplicationPackage.eNS_URI)) { + EPackage.Registry.INSTANCE.put(ApplicationPackage.eNS_URI, ApplicationPackage.eINSTANCE); + } + if (!EPackage.Registry.INSTANCE.containsKey(InfrastructurePackage.eNS_URI)) { + EPackage.Registry.INSTANCE.put(InfrastructurePackage.eNS_URI, InfrastructurePackage.eINSTANCE); + } + if (!EPackage.Registry.INSTANCE.containsKey(ConcretePackage.eNS_URI)) { + EPackage.Registry.INSTANCE.put(ConcretePackage.eNS_URI, ConcretePackage.eINSTANCE); + } + if (!EPackage.Registry.INSTANCE.containsKey(OptimizationPackage.eNS_URI)) { + EPackage.Registry.INSTANCE.put(OptimizationPackage.eNS_URI, OptimizationPackage.eINSTANCE); + } + if (!Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().containsKey("domlx")) { + Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("domlx", new XMIResourceFactoryImpl()); + } + if (!Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().containsKey("doml")) { + Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("doml", new XMIResourceFactoryImpl()); + } + } + @NotNull + public DOMLModel getDomlxModel(Deployment deployment) { + log.info("unpacking deployment bundle for deployment {}", deployment.getDeploymentId()); + Path tmpDir = bundleService.unpackBundle(deployment); + + // find the domlx file in the tmp directory + Path domlxPath = null; + try { + domlxPath = Files.list(tmpDir).filter(path -> path.toString().endsWith(".domlx")).findFirst().orElseThrow(() -> new RuntimeException("domlx file not found")); + } catch (IOException e) { + log.error("Error finding domlx file"); + e.printStackTrace(); + throw new RuntimeException(e); + } + log.info("Found domlx file {}", domlxPath); + + return getDomlxModel(domlxPath); + } + public DOMLModel getDomlxModel(Path domlxPath) { + // create inputStream from domlxPath file + InputStream inputStream = null; + try { + inputStream = new FileInputStream(domlxPath.toFile()); + } catch (FileNotFoundException e) { + log.error("Error creating input stream from domlx file", e); + throw new RuntimeException(e); + } + + ResourceSet resourceSet = new ResourceSetImpl(); + + Resource inputResource = resourceSet.createResource(URI.createFileURI(domlxPath.toString())); + + try{ + inputResource.load(inputStream, null); + } catch (Exception e) { + log.error("Error while loading domlx into ecore resource"); + e.printStackTrace(); + throw new RuntimeException(e); + } + + //get Doml model + DOMLModel doml = (DOMLModel) inputResource.getContents().get(0); + if (doml == null) { + log.error("Error while loading domlx into ecore resource"); + throw new RuntimeException("Error while loading domlx into ecore resource"); + } + return doml; + } + public void saveDomlModel(StrategyApplication strategyApplication, DOMLModel doml) { + + Path tmpDir = bundleService.createTmpDir(); + + Path domlPath = tmpDir.resolve("tmp.doml"); + + saveDomlModel(domlPath, doml); + + byte[] domlBytes = bundleService.getByteArrayFromFile(domlPath); + + strategyApplication.setBundle(domlBytes); + } + + public void saveDomlModel(Path domlPath, DOMLModel doml) { + ResourceSet resourceSet = new ResourceSetImpl(); + Resource targetResource = resourceSet.createResource(URI.createFileURI(domlPath.toString())); + try{ + targetResource.getContents().add(EcoreUtil.copy(doml)); + targetResource.save(null); + } catch (Exception e) { + log.error("Error while saving domlx into ecore resource"); + e.printStackTrace(); + throw new RuntimeException(e); + } + } + + public void saveDomlxModel(Path domlxPath, DOMLModel doml) { + ResourceSet resourceSet = new ResourceSetImpl(); + Resource targetResource = resourceSet.createResource(URI.createFileURI(domlxPath.toString())); + try{ + targetResource.getContents().add(EcoreUtil.copy(doml)); + targetResource.save(null); + } catch (Exception e) { + log.error("Error while saving domlx into ecore resource"); + e.printStackTrace(); + throw new RuntimeException(e); + } + } + + public DOMLModel getDomlModel(Path domlPath) { + // create inputStream from domlPath file + InputStream inputStream = null; + try { + inputStream = new FileInputStream(domlPath.toFile()); + } catch (FileNotFoundException e) { + log.error("Error creating input stream from doml file", e); + throw new RuntimeException(e); + } + + ResourceSet resourceSet = new ResourceSetImpl(); + + Resource inputResource = resourceSet.createResource(URI.createFileURI(domlPath.toString())); + + try{ + inputResource.load(inputStream, null); + } catch (Exception e) { + log.error("Error while loading doml into ecore resource"); + e.printStackTrace(); + throw new RuntimeException(e); + } + + //get Doml model + DOMLModel doml = (DOMLModel) inputResource.getContents().get(0); + if (doml == null) { + log.error("Error while loading doml into ecore resource"); + throw new RuntimeException("Error while loading doml into ecore resource"); + } + return doml; + } +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/DeploymentService.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/DeploymentService.java new file mode 100644 index 0000000000000000000000000000000000000000..92e548302ea124eda61544a62ecc0ab28f5468dd --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/DeploymentService.java @@ -0,0 +1,177 @@ +package com.piacere.selfhealing.backend.service; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.piacere.selfhealing.backend.config.ApplicationProperties; +import com.piacere.selfhealing.backend.domain.*; +import com.piacere.selfhealing.backend.repository.*; +import com.piacere.selfhealing.backend.web.rest.EventTypeResource; +import com.piacere.selfhealing.backend.web.rest.StrategyResource; +import eu.piacere.doml.doml.commons.DOMLModel; +import eu.piacere.doml.doml.infrastructure.InfrastructureLayer; +import eu.piacere.doml.doml.infrastructure.MonitoringRule; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.net.URISyntaxException; + +@Service +public class DeploymentService { + private final Logger log = LoggerFactory.getLogger(DeploymentService.class); + private final EventTypeRepository eventTypeRepository; + private final StrategyRepository strategyRepository; + private final StrategyResource strategyResource; + private final EventTypeResource eventTypeResource; + private final ApplicationProperties applicationProperties; + private final DeploymentRepository deploymentRepository; + private final StrategyApplicationRepository strategyApplicationRepository; + private final SelfHealingMessageRepository selfHealingMessageRepository; + private final DOMLService domlService; + + public DeploymentService(EventTypeRepository eventTypeRepository, StrategyRepository strategyRepository, StrategyResource strategyResource, EventTypeResource eventTypeResource, ApplicationProperties applicationProperties, DeploymentRepository deploymentRepository, StrategyApplicationRepository strategyApplicationRepository, DOMLService domlService, SelfHealingMessageRepository selfHealingMessageRepository) { + this.eventTypeRepository = eventTypeRepository; + this.strategyRepository = strategyRepository; + this.strategyResource = strategyResource; + this.eventTypeResource = eventTypeResource; + this.applicationProperties = applicationProperties; + this.deploymentRepository = deploymentRepository; + this.strategyApplicationRepository = strategyApplicationRepository; + this.domlService = domlService; + this.selfHealingMessageRepository = selfHealingMessageRepository; + } + + @Async + public void configure(Deployment deployment) { + + DOMLModel doml = domlService.getDomlxModel(deployment); + + //get the infrastructure model + InfrastructureLayer infrastructureLayer = doml.getInfrastructure(); + if (infrastructureLayer == null) { + log.error("Error while loading domlx into ecore resource"); + throw new RuntimeException("Error while loading domlx into ecore resource"); + } + + // iterate monitoring rules and create event types + for (MonitoringRule monitoringRule : infrastructureLayer.getRules()) { + log.info("Creating event type for monitoring rule {}", monitoringRule.getName()); + String eventType_Id = deployment.getDeploymentId() + "-" + monitoringRule.getName(); + // if the eventType_Id already exists then skip + EventType eventType = eventTypeRepository.findByCode(eventType_Id); + if (eventType != null ) { + log.info("Event type {} already exists", eventType_Id); + continue; + } + + // if the strategy is not ansible then find the strategy and create the event type + String strategy_id = monitoringRule.getStrategy(); + // if strategy_id is ansible log + if (strategy_id.equals("ansible")) { + log.info("ansible strategy need to create custom strategy with the configuration"); + String strategyConfigJsonString = monitoringRule.getStrategyConfigurationString(); + + JsonObject strategyConfigJson = new JsonObject(); + try { + strategyConfigJson = JsonParser.parseString(strategyConfigJsonString).getAsJsonObject(); + } catch (Exception e) { + log.debug("Error loading strategy configuration"); + continue; + } + + /** + * "{\"repeat_not_before\": \"PT1M\",\"ansible\": \"{% raw %}---\n- hosts: servers_for_self_healing_monitoring\n tasks:\n - name: reboot\n lineinfile:\n line: \\\"{{ ansible_date_time.iso8601}}\\\"\n path: \\\"{{ ansible_env.HOME}}/fake_shutdown\\\"\n create: yes{% endraw %}\n {{ sh_filter }}\n\"}" + * { + * "strategy_type": "reboot", + * "repeat_not_before": "PT1M", + * "ansible_j2": "{% raw %}---\n- hosts: servers_for_self_healing_monitoring\n tasks:\n - name: reboot\n lineinfile:\n line: \"{{ ansible_date_time.iso8601}}\"\n path: \"{{ ansible_env.HOME}}/fake_reboot\"\n create: yes{% endraw %}\n {{ sh_filter }}\n" + * } + * + * "{\"repeat_not_before\": \"PT1M\",\"ansible_j2_template\": \"reboot\",\"key_1_for_template\": \"value_1_for_template\"}" + * { + * "strategy_type": "ansible", + * "repeat_not_before": "PT1M", + * "ansible_j2_template": "reboot", + * "key_1_for_template": "value_1_for_template" + * } + * + */ + + if (!strategyConfigJson.has("strategy_type")) { + log.debug("Adding strategy_type to strategy configuration"); + strategyConfigJson.addProperty("strategy_type", "ansible"); + } else if (!strategyConfigJson.get("strategy_type").getAsString().equals("ansible")) { + log.debug("Skipping strategy configuration with incorrect strategy_type {}", strategyConfigJson.get("strategy_type").getAsString()); + continue; + } + + // create strategy with the strategyConfigurationJson + strategy_id = deployment.getDeploymentId() + "-" + monitoringRule.getName() ; + Strategy strategy = new Strategy(); + strategy.setCode(strategy_id); + strategy.setDeployment(deployment); + strategy.setDescription("Strategy for deployment " + deployment.getDeploymentId() + " and monitoring rule " + monitoringRule.getName()); + strategy.setConfiguration(strategyConfigJson.toString()); + + try { + strategyResource.createStrategy(strategy); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + + // find the strategy with the strategy_id + Strategy strategy = strategyRepository.findByCode(strategy_id); + + // create event type with the strategy_id + eventType = new EventType(); + eventType.setCode(eventType_Id); + eventType.setStrategy(strategy); + eventType.setDeployment(deployment); + eventType.setDescription("Event type for deployment " + deployment.getDeploymentId() + " and monitoring rule " + monitoringRule.getName()); + + // save the event type + try { + eventTypeResource.createEventType(eventType); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + } + + public void unBound(Long id) { + log.info("Unconfiguring deployment {}", id); + + // find the event types for the deployment + for (EventType eventType : eventTypeRepository.findAllByDeploymentId(id)) { + // unbound the event types from self-healing messages + for (SelfHealingMessage selfHealingMessage : selfHealingMessageRepository.findAllByEventType(eventType)) { + log.info("Unbound event type {} from self healing message {}", eventType.getCode(), selfHealingMessage.getTimestamp()); + selfHealingMessage.setEventType(null); + selfHealingMessageRepository.save(selfHealingMessage); + } + log.info("Deleting event type {}", eventType.getCode()); + eventTypeResource.deleteEventType(eventType.getId()); + } + + // find the strategies for the deployment + for (Strategy strategy : strategyRepository.findAllByDeploymentId(id)) { + // we need to unbound strategies from strategy applications + for (StrategyApplication strategyApplication : strategyApplicationRepository.findAllByStrategy(strategy)) { + log.info("Unbound strategy {} from strategy application {}", strategy.getCode(), strategyApplication.getTimestamp()); + strategyApplication.setStrategy(null); + strategyApplicationRepository.save(strategyApplication); + } + log.info("Deleting strategy {}", strategy.getCode()); + strategyResource.deleteStrategy(strategy.getId()); + } + + // unbound the deployment from strategy applications + for (StrategyApplication strategyApplication : strategyApplicationRepository.findAllByDeploymentId(id)) { + log.info("Unbound deployment {} from strategy application {}", id, strategyApplication.getTimestamp()); + strategyApplication.setDeployment(null); + strategyApplicationRepository.save(strategyApplication); + } + } +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/DmcService.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/DmcService.java new file mode 100644 index 0000000000000000000000000000000000000000..55d3248ce21b199c1c60fe13e315e072480b5534 --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/DmcService.java @@ -0,0 +1,120 @@ +package com.piacere.selfhealing.backend.service; + +import com.piacere.selfhealing.backend.config.DmcProperties; +import com.piacere.selfhealing.backend.config.IopProperties; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.nio.file.Files; +import java.nio.file.Path; + +@Service +public class DmcService { + // PiacereIDEIntegration.KR05\src\eu\piacere\ide\toolIntegration\kr05\commandHandlers + private final Logger log = LoggerFactory.getLogger(IopService.class); + + private DmcProperties dmcProperties; + + public DmcService(DmcProperties dmcProperties) { + this.dmcProperties = dmcProperties; + } + + public String validate(Path domlxPath) { + log.info("Validating {}", domlxPath); + String url = dmcProperties.getUrl() + "/modelcheck_html"; + + InputStream inputStream = null; + try { + inputStream = Files.newInputStream(domlxPath); + } catch (IOException e) { + e.printStackTrace(); + new RuntimeException(e); + } + + String content = null; + try { + content = new String(inputStream.readAllBytes()); + } catch (IOException e) { + e.printStackTrace(); + new RuntimeException(e); + } + + StringEntity entity = null; + try { + entity = new StringEntity(content); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } + try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) { + HttpPost httpPost = new HttpPost(url); + httpPost.setEntity(entity); + httpPost.setHeader("Accept", "application/xml"); + try (CloseableHttpResponse response = httpClient.execute(httpPost)) { + // if response status code is not 200, throw exception + if (response.getStatusLine().getStatusCode() != 200) { + throw new RuntimeException("Failed : HTTP error code : " + + response.getStatusLine().getStatusCode()); + } + HttpEntity responseEntity = response.getEntity(); + return EntityUtils.toString(responseEntity); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public String verifyCsp(Path domlxPath) { + log.info("Verifying {}", domlxPath); + String url = dmcProperties.getUrl() + "/csp_html"; + + InputStream inputStream = null; + try { + inputStream = Files.newInputStream(domlxPath); + } catch (IOException e) { + e.printStackTrace(); + new RuntimeException(e); + } + + String content = null; + try { + content = new String(inputStream.readAllBytes()); + } catch (IOException e) { + e.printStackTrace(); + new RuntimeException(e); + } + + StringEntity entity = null; + try { + entity = new StringEntity(content); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } + try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) { + HttpPost httpPost = new HttpPost(url); + httpPost.setEntity(entity); + httpPost.setHeader("Accept", "application/xml"); + try (CloseableHttpResponse response = httpClient.execute(httpPost)) { + // if response status code is not 200, throw exception + if (response.getStatusLine().getStatusCode() != 200) { + throw new RuntimeException("Failed : HTTP error code : " + + response.getStatusLine().getStatusCode()); + } + HttpEntity responseEntity = response.getEntity(); + return EntityUtils.toString(responseEntity); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/EventTypeService.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/EventTypeService.java deleted file mode 100644 index c4726f6a93ccc774161c45dd04426de390b70c63..0000000000000000000000000000000000000000 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/EventTypeService.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.piacere.selfhealing.backend.service; - -import java.util.List; -import java.util.Optional; - -import com.piacere.selfhealing.backend.domain.EventType; -import com.piacere.selfhealing.backend.web.rest.errors.BadRequestAlertException; - -public interface EventTypeService { - /** - * - * @param eventType - * @return - * @throws BadRequestAlertException - */ - EventType create(EventType eventType); - - /** - * - * @param id - * @param eventType - * @return - * @throws BadRequestAlertException - */ - EventType update(Long id, EventType eventType); - - /** - * - * @param id - * @param eventType - * @return - * @throws BadRequestAlertException - */ - Optional<EventType> patch(Long id, EventType eventType); - - /** - * - * @return - */ - List<EventType> findAll(); - - /** - * - * @param id - * @return - */ - Optional<EventType> find(Long id); - - /** - * - * @param id - */ - void delete(Long id); -} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/IcgService.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/IcgService.java new file mode 100644 index 0000000000000000000000000000000000000000..9488e11238e5b0286b469a27f8dcd4674845b0ad --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/IcgService.java @@ -0,0 +1,68 @@ +package com.piacere.selfhealing.backend.service; + +import com.piacere.selfhealing.backend.config.IcgProperties; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.StringEntity; +import org.apache.http.entity.mime.HttpMultipartMode; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.apache.http.entity.mime.MultipartEntityBuilder; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.UUID; + +@Service +public class IcgService { + // PiacereIDEIntegration.KR03 + private final Logger log = LoggerFactory.getLogger(IopService.class); + + private IcgProperties icgProperties; + + public IcgService(IcgProperties icgProperties) { + this.icgProperties = icgProperties; + } + public void generateIac(Path bundlePath, Path resultBundlePath) { + log.info("gathering iac {}", bundlePath); + String url = icgProperties.getUrl() + "/iac/files/upload"; + + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); + builder.addBinaryBody("file", bundlePath.toFile(), ContentType.create("application/x-zip-compressed"), UUID.randomUUID().toString()+".zip"); + builder.setBoundary("---Content Boundary"); + + try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) { + HttpPost httpPost = new HttpPost(url); + httpPost.setHeader("Accept", "application/json"); + httpPost.setHeader("Content-type", "multipart/form-data; boundary=\"---Content Boundary\""); + httpPost.setEntity(builder.build()); + try (CloseableHttpResponse response = httpClient.execute(httpPost)) { + // if response status code is not 200, throw exception + if (response.getStatusLine().getStatusCode() != 200) { + throw new RuntimeException("Failed : HTTP error code : " + + response.getStatusLine().getStatusCode()); + } + + FileOutputStream fileOutputStream = new FileOutputStream(resultBundlePath.toFile()); + + int bytesRead = -1; + byte[] buffer = new byte[4096]; + while ((bytesRead = response.getEntity().getContent().read(buffer)) != -1 ) { + fileOutputStream.write(buffer, 0, bytesRead); + } + fileOutputStream.close(); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/IopService.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/IopService.java new file mode 100644 index 0000000000000000000000000000000000000000..5737c50c131b5e0107c4d16c60d313148fc12267 --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/IopService.java @@ -0,0 +1,75 @@ +package com.piacere.selfhealing.backend.service; + +import com.piacere.selfhealing.backend.config.IopProperties; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.nio.file.Files; +import java.nio.file.Path; + +@Service +public class IopService { + //PiacereIDEIntegration.KR09\src\eu\piacere\ide\toolIntegration\kr09\commandHandlers\OptimizerCommandHandler.java + private final Logger log = LoggerFactory.getLogger(IopService.class); + + private IopProperties iopProperties; + + public IopService(IopProperties iopProperties) { + this.iopProperties = iopProperties; + } + + public String optimize(Path domlPath) { + log.info("Optimizing {}", domlPath); + String url = iopProperties.getUrl() + "/api/optimize"; + + InputStream inputStream = null; + try { + inputStream = Files.newInputStream(domlPath); + } catch (IOException e) { + e.printStackTrace(); + new RuntimeException(e); + } + + String content = null; + try { + content = new String(inputStream.readAllBytes()); + } catch (IOException e) { + e.printStackTrace(); + new RuntimeException(e); + } + + StringEntity entity = null; + try { + entity = new StringEntity(content); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } + try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) { + HttpPost httpPost = new HttpPost(url); + httpPost.setEntity(entity); + httpPost.setHeader("Accept", "application/json"); + try (CloseableHttpResponse response = httpClient.execute(httpPost)) { + // if response status code is not 200, throw exception + if (response.getStatusLine().getStatusCode() != 200) { + throw new RuntimeException("Failed : HTTP error code : " + + response.getStatusLine().getStatusCode()); + } + HttpEntity responseEntity = response.getEntity(); + return EntityUtils.toString(responseEntity); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/IsrService.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/IsrService.java new file mode 100644 index 0000000000000000000000000000000000000000..1899e5fc3c0c5f195915b14e56da60c2e7bc9287 --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/IsrService.java @@ -0,0 +1,162 @@ +package com.piacere.selfhealing.backend.service; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.piacere.selfhealing.backend.config.IsrProperties; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.CredentialsProvider; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.methods.HttpPut; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.impl.client.BasicCredentialsProvider; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.impl.client.HttpClients; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.apache.http.auth.Credentials; +import org.apache.http.entity.mime.content.FileBody; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.util.EntityUtils; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.HashMap; + +@Service +public class IsrService { + //PiacereIDEIntegration.KR06And07\src\eu\piacere\ide\toolIntegration\kr06And07\commandHandlers\v2 + private final Logger log = LoggerFactory.getLogger(IopService.class); + + private IsrProperties isrProperties; + private final HashMap<String, String> projectUuids = new HashMap<String, String>(); + + + public IsrService(IsrProperties isrProperties) { + this.isrProperties = isrProperties; + } + + private CloseableHttpClient getHttpClientWithUsernameAndPassAuth() { + CloseableHttpClient httpclient = null; + try { + CredentialsProvider credentialsPovider = new BasicCredentialsProvider(); + Credentials credentials = new UsernamePasswordCredentials(isrProperties.getUsername(), isrProperties.getPassword()); + //Credentials credentials = new UsernamePasswordCredentials("user", "PIACERE-services-21!"); + credentialsPovider.setCredentials(AuthScope.ANY, credentials); + + //Creating the HttpClientBuilder + HttpClientBuilder clientbuilder = HttpClients.custom(); + //Setting the credentials + clientbuilder = clientbuilder.setDefaultCredentialsProvider(credentialsPovider); + + //Building the CloseableHttpClient object + httpclient = clientbuilder.build(); + } catch (Exception e) { + e.printStackTrace(); + } + return httpclient; + } + + public String getProjectUuid(String deploymentId) { + if (projectUuids.containsKey(deploymentId)) { + return projectUuids.get(deploymentId); + } + + log.info("Getting project uuid for {}", deploymentId); + deploymentId = deploymentId.replace(" ", "_"); + String url = isrProperties.getUrl() + "/iac-scan-runner/projects?creator_id=" + deploymentId; + + try (CloseableHttpClient httpClient = getHttpClientWithUsernameAndPassAuth();) { + HttpPost httpPost = new HttpPost(url); + try (CloseableHttpResponse response = httpClient.execute(httpPost)) { + if (response.getStatusLine().getStatusCode() == 200) { + String content = EntityUtils.toString(response.getEntity()); + String projectUuid = content.replace("\"", ""); + projectUuids.put(deploymentId, projectUuid); + return projectUuid; + } else { + throw new RuntimeException("Error getting project uuid for deployment id " + deploymentId + ". Status: " + response.getStatusLine().getStatusCode() + "\n\n" + response.getEntity().toString()); + } + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public JsonObject getIacChecks(String deploymentId, Path resultBundlePath) { + log.info("Getting IAC checks for {}", deploymentId); + String projectUuid = getProjectUuid(deploymentId); + + JsonArray availableChecks = getAvailableChecks(projectUuid); + // enable all checks + for (JsonElement check : availableChecks) { + // {"name":"opera-tosca-parser","description":"xOpera TOSCA parser can validate TOSCA YAML templates and CSARs","enabled":true,"configured":true,"target_entity_type":"IaC"} + JsonObject checkObject = check.getAsJsonObject(); + // if not enabled, enable it + if (!checkObject.get("enabled").getAsBoolean()) { + enableCheck(projectUuid, checkObject.get("name").getAsString()); + } + } + + String url = isrProperties.getUrl() + "/iac-scan-runner/projects/" + projectUuid + "/scan?scan_response_type=json"; + + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + builder.addPart("iac", new FileBody(resultBundlePath.toFile(), ContentType.DEFAULT_BINARY)); + + try (CloseableHttpClient httpClient = getHttpClientWithUsernameAndPassAuth();) { + HttpPost httpPost = new HttpPost(url); + httpPost.setEntity(builder.build()); + try (CloseableHttpResponse response = httpClient.execute(httpPost)) { + if (response.getStatusLine().getStatusCode() == 200) { + String content = EntityUtils.toString(response.getEntity()); + return JsonParser.parseString(content).getAsJsonObject(); + } else { + throw new RuntimeException("Error getting project uuid for deployment id " + deploymentId + ". Status: " + response.getStatusLine().getStatusCode() + "\n\n" + response.getEntity().toString()); + } + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + private JsonArray getAvailableChecks(String projectUuid) { + log.info("Getting available checks for {}", projectUuid); + String url = isrProperties.getUrl() + "/iac-scan-runner/projects/" + projectUuid + "/checks"; + + try (CloseableHttpClient httpClient = getHttpClientWithUsernameAndPassAuth();) { + HttpGet httpGet = new HttpGet(url); + try (CloseableHttpResponse response = httpClient.execute(httpGet)) { + if (response.getStatusLine().getStatusCode() == 200) { + String content = EntityUtils.toString(response.getEntity()); + return JsonParser.parseString(content).getAsJsonArray(); + } else { + throw new RuntimeException("Error getting project uuid for deployment id " + projectUuid + ". Status: " + response.getStatusLine().getStatusCode() + "\n\n" + response.getEntity().toString()); + } + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + private void enableCheck(String projectUuid, String id) { + log.info("Enabling check {} for {}", id, projectUuid); + String url = isrProperties.getUrl() + "/iac-scan-runner/projects/" + projectUuid + "/checks/" + id + "/enable"; + + try (CloseableHttpClient httpClient = getHttpClientWithUsernameAndPassAuth();) { + HttpPut httpPut = new HttpPut(url); + try (CloseableHttpResponse response = httpClient.execute(httpPut)) { + if (response.getStatusLine().getStatusCode() != 200) { + throw new RuntimeException("Error enabling check " + id + " for project " + projectUuid + ". Status: " + response.getStatusLine().getStatusCode() + "\n\n" + response.getEntity().toString()); + } + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/ObjectKeepService.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/ObjectKeepService.java new file mode 100644 index 0000000000000000000000000000000000000000..4e1cbb5504ff44f02a9fcacd76e052d0537fd93e --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/ObjectKeepService.java @@ -0,0 +1,77 @@ +package com.piacere.selfhealing.backend.service; + +import com.piacere.selfhealing.backend.config.ApplicationProperties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.Arrays; +import java.util.Comparator; + +@Service +public class ObjectKeepService { + private final Logger log = LoggerFactory.getLogger(ObjectKeepService.class); + private final ApplicationProperties applicationProperties; + private File tmpDir; + + public ObjectKeepService(ApplicationProperties applicationProperties) { + this.applicationProperties = applicationProperties; + tmpDir = null; + + // if applicationProperties has keepLastRequests > 0 then create a temporal folder to store the last requests + if (applicationProperties.getWebhook() != null) { + if (applicationProperties.getWebhook().getKeepLastRequests() > 0) { + log.info("Creating temporal folder to store the last {} requests", applicationProperties.getWebhook().getKeepLastRequests()); + try { + tmpDir = Files.createTempDirectory("self-healing-").toFile(); + } catch (IOException e) { + throw new RuntimeException("Error creating temporal folder", e); + } + } + } + } + + public void store(Object object) { + if (tmpDir == null) return; + + // if more than keepLastRequests files then delete the oldest ones + File[] files = tmpDir.listFiles(); + + // https://stackoverflow.com/q/203030 + Arrays.sort(files, new Comparator<File>(){ + public int compare(File f1, File f2) + { + return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified()); + } }); + + if (files != null && files.length >= applicationProperties.getWebhook().getKeepLastRequests()) { + // sort the files by last modified + for (int i = 0; i < files.length - applicationProperties.getWebhook().getKeepLastRequests(); i++) { + // ignore errors + try { + files[i].delete(); + log.debug("File {} deleted", files[i].getAbsolutePath()); + } catch (Exception e) { + log.error("Error deleting file {}", files[i].getAbsolutePath(), e); + } + } + } + // store the object in a temporal file + File tmpFile = null; + try { + tmpFile = File.createTempFile("request-", ".tmp", tmpDir); + } catch (IOException e) { + throw new RuntimeException(e); + } + // write the object to the file + try { + Files.write(tmpFile.toPath(), object.toString().getBytes()); + log.debug("Object stored in {}", tmpFile.getAbsolutePath()); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/PrcService.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/PrcService.java new file mode 100644 index 0000000000000000000000000000000000000000..34c74f171e1c3f82e9acef4de71c393ae1d6522c --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/PrcService.java @@ -0,0 +1,62 @@ +package com.piacere.selfhealing.backend.service; + +import com.google.gson.JsonObject; +import com.piacere.selfhealing.backend.config.PrcProperties; +import com.piacere.selfhealing.backend.domain.Deployment; +import eu.piacere.prc.client.ApiClient; +import eu.piacere.prc.client.ApiException; +import eu.piacere.prc.client.Configuration; +import eu.piacere.prc.client.api.DefaultApi; +import eu.piacere.prc.client.model.SelfHealing; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +@Service +public class PrcService { + private final Logger log = LoggerFactory.getLogger(this.getClass()); + private final PrcProperties prcProperties; + + public PrcService(PrcProperties iemProperties) { + this.prcProperties = iemProperties; + } + + public void executeAnsiblePlaybook(String deploymentId, String playbook) { + log.info("Executing Ansible Playbook"); + ApiClient prcApiClient = getPrcApiClient(); + + DefaultApi deploymentsApi = new DefaultApi(prcApiClient); + SelfHealing selfHealing = new SelfHealing(); + selfHealing.setPlaybook(playbook); + try { + deploymentsApi.selfHealingDeploymentsDeploymentIdSelfHealingPost(deploymentId, selfHealing); + } catch (ApiException e) { + log.error("Error executing Ansible Playbook", e); + e.printStackTrace(); + } + } + private ApiClient getPrcApiClient() { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + if (log.isDebugEnabled()) { + defaultClient.setDebugging(true); + } + + defaultClient.setBasePath(prcProperties.getUrl()); + + return defaultClient; + } + + public void executeRedeploy(Deployment deployment) { + log.info("Executing Redeploy"); + ApiClient prcApiClient = getPrcApiClient(); + + DefaultApi deploymentsApi = new DefaultApi(prcApiClient); + + try { + deploymentsApi.redeployDeploymentsDeploymentIdRedeployPost(deployment.getDeploymentId()); + } catch (ApiException e) { + log.error("Error executing Redeploy", e); + e.printStackTrace(); + } + } +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/SelfHealingMessageService.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/SelfHealingMessageService.java index bed18bb8b9c84a98b443c82d7651146c4d7c137d..7b0f614b866d61a6c17ec9be382b7cda6afe7b96 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/SelfHealingMessageService.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/SelfHealingMessageService.java @@ -8,54 +8,54 @@ import com.piacere.selfhealing.backend.web.rest.errors.BadRequestAlertException; public interface SelfHealingMessageService { /** - * + * * @param selfHealingMessage * @return * @throws BadRequestAlertException */ SelfHealingMessage create(SelfHealingMessage selfHealingMessage); - + /** - * + * * @param id * @param selfHealingMessage * @return * @throws BadRequestAlertException */ SelfHealingMessage update(Long id, SelfHealingMessage selfHealingMessage); - + /** - * + * * @param id * @param selfHealingMessage * @return * @throws BadRequestAlertException */ Optional<SelfHealingMessage> patch(Long id, SelfHealingMessage selfHealingMessage); - + /** - * + * * @return */ List<SelfHealingMessage> findAll(); - + /** - * + * * @param id * @return */ Optional<SelfHealingMessage> find(Long id); - + /** - * + * * @param id */ void delete(Long id); - + /** * Process self healing message notification - * + * * @param message message received */ - void processMessage(SelfHealingMessage message); + void processMessage(SelfHealingMessage message) throws Exception; } diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/StrategyService.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/StrategyService.java deleted file mode 100644 index d0a01ca5523a3190f7545aab43bf8e2cc88358b9..0000000000000000000000000000000000000000 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/StrategyService.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.piacere.selfhealing.backend.service; - -import java.util.List; -import java.util.Optional; - -import com.piacere.selfhealing.backend.domain.Strategy; -import com.piacere.selfhealing.backend.web.rest.errors.BadRequestAlertException; - -public interface StrategyService { - /** - * - * @param strategy - * @return - * @throws BadRequestAlertException - */ - Strategy create(Strategy strategy); - - /** - * - * @param id - * @param strategy - * @return - * @throws BadRequestAlertException - */ - Strategy update(Long id, Strategy strategy); - - /** - * - * @param id - * @param strategy - * @return - * @throws BadRequestAlertException - */ - Optional<Strategy> patch(Long id, Strategy strategy); - - /** - * - * @return - */ - List<Strategy> findAll(); - - /** - * - * @param id - * @return - */ - Optional<Strategy> find(Long id); - - /** - * - * @param id - */ - void delete(Long id); -} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/DeploymentDTO.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/DeploymentDTO.java new file mode 100644 index 0000000000000000000000000000000000000000..8f192595a800834258dbc60c4bbcfab3a41fae5a --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/DeploymentDTO.java @@ -0,0 +1,104 @@ +package com.piacere.selfhealing.backend.service.dto; + +import java.io.Serializable; +import java.util.Objects; +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import javax.validation.Valid; +import javax.validation.constraints.*; + +@ApiModel(description = "Deployment") +public class DeploymentDTO implements Serializable { + + @JsonProperty("deployment_id") + private String deploymentId; + + @JsonProperty("deployment_bundle") + private DeploymentDeploymentBundleDTO deploymentBundle; + + public DeploymentDTO deploymentId(String deploymentId) { + this.deploymentId = deploymentId; + return this; + } + + /** + * id of the deployment + * @return deploymentId + */ + @ApiModelProperty(required = true, value = "id of the deployment") + @NotNull + + + public String getDeploymentId() { + return deploymentId; + } + + public void setDeploymentId(String deploymentId) { + this.deploymentId = deploymentId; + } + + public DeploymentDTO deploymentBundle(DeploymentDeploymentBundleDTO deploymentBundle) { + this.deploymentBundle = deploymentBundle; + return this; + } + + /** + * Get deploymentBundle + * @return deploymentBundle + */ + @ApiModelProperty(value = "") + + @Valid + + public DeploymentDeploymentBundleDTO getDeploymentBundle() { + return deploymentBundle; + } + + public void setDeploymentBundle(DeploymentDeploymentBundleDTO deploymentBundle) { + this.deploymentBundle = deploymentBundle; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeploymentDTO deployment = (DeploymentDTO) o; + return Objects.equals(this.deploymentId, deployment.deploymentId) && + Objects.equals(this.deploymentBundle, deployment.deploymentBundle); + } + + @Override + public int hashCode() { + return Objects.hash(deploymentId, deploymentBundle); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Deployment {\n"); + + sb.append(" deploymentId: ").append(toIndentedString(deploymentId)).append("\n"); + sb.append(" deploymentBundle: ").append(toIndentedString(deploymentBundle)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/DeploymentDeploymentBundleDTO.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/DeploymentDeploymentBundleDTO.java new file mode 100644 index 0000000000000000000000000000000000000000..f6525c11f790193a78c8f78f95bb12e5b96f4ece --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/DeploymentDeploymentBundleDTO.java @@ -0,0 +1,76 @@ +package com.piacere.selfhealing.backend.service.dto; + +import java.util.Objects; +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * deployment bundle + */ +@ApiModel(description = "deployment bundle") + +public class DeploymentDeploymentBundleDTO { + @JsonProperty("base64") + private String base64; + + public DeploymentDeploymentBundleDTO base64(String base64) { + this.base64 = base64; + return this; + } + + /** + * base64 encoded deployment bundle + * @return base64 + */ + @ApiModelProperty(value = "base64 encoded deployment bundle") + + + public String getBase64() { + return base64; + } + + public void setBase64(String base64) { + this.base64 = base64; + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeploymentDeploymentBundleDTO deploymentDeploymentBundle = (DeploymentDeploymentBundleDTO) o; + return Objects.equals(this.base64, deploymentDeploymentBundle.base64); + } + + @Override + public int hashCode() { + return Objects.hash(base64); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeploymentDeploymentBundle {\n"); + + sb.append(" base64: ").append(toIndentedString(base64)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/SelfHealingMessageDTO.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/SelfHealingMessageDTO.java index bd5efb9cbc48a0c4c596a2d2cd3d5980409f0e8c..7cbd14d7933bffe3642973763890dcbfab445cc6 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/SelfHealingMessageDTO.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/SelfHealingMessageDTO.java @@ -4,7 +4,7 @@ import java.io.Serializable; public class SelfHealingMessageDTO implements Serializable { /** - * + * */ private static final long serialVersionUID = -4251184588618727899L; /** @@ -14,10 +14,14 @@ public class SelfHealingMessageDTO implements Serializable { /** * id of app related to message */ - private String applicationId; + private String deploymentId; /** * event type of the message */ + private String error; + /** + * error of the message + */ private EventTypeDTO eventType; public String getOrigin() { return origin; @@ -25,11 +29,11 @@ public class SelfHealingMessageDTO implements Serializable { public void setOrigin(String origin) { this.origin = origin; } - public String getApplicationId() { - return applicationId; + public String getDeploymentId() { + return deploymentId; } - public void setApplicationId(String applicationId) { - this.applicationId = applicationId; + public void setdeploymentId(String deploymentId) { + this.deploymentId = deploymentId; } public EventTypeDTO getEventType() { return eventType; @@ -37,4 +41,8 @@ public class SelfHealingMessageDTO implements Serializable { public void setEventType(EventTypeDTO eventType) { this.eventType = eventType; } + + public String getError() { return error; } + + public void setError(String error) { this.error = error; } } diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/SelfHealingResponseDTO.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/SelfHealingResponseDTO.java index 7873196048688118c1cb1df077ec5b9cf66c08bc..0cb3c6552c302808d5461f170e0b4626eabba97d 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/SelfHealingResponseDTO.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/SelfHealingResponseDTO.java @@ -14,7 +14,7 @@ public class SelfHealingResponseDTO implements Serializable { private Long id; private String origin; - private String applicationId; + private String deploymentId; private Instant timestamp; private Status status; private String error; @@ -31,11 +31,11 @@ public class SelfHealingResponseDTO implements Serializable { public void setOrigin(String origin) { this.origin = origin; } - public String getApplicationId() { - return applicationId; + public String getDeploymentId() { + return deploymentId; } - public void setApplicationId(String applicationId) { - this.applicationId = applicationId; + public void setdeploymentId(String deploymentId) { + this.deploymentId = deploymentId; } public Instant getTimestamp() { return timestamp; diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/package-info.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/package-info.java deleted file mode 100644 index 4457cd94f5b1292c4476e7aa67bedab6cc8fe03a..0000000000000000000000000000000000000000 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/dto/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package com.piacere.selfhealing.backend.service.dto; \ No newline at end of file diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/impl/EventTypeServiceImpl.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/impl/EventTypeServiceImpl.java deleted file mode 100644 index a35e91a39530efbc7add551a4403bed52940de1e..0000000000000000000000000000000000000000 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/impl/EventTypeServiceImpl.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.piacere.selfhealing.backend.service.impl; - -import java.util.List; -import java.util.Objects; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; - -import com.piacere.selfhealing.backend.domain.EventType; -import com.piacere.selfhealing.backend.repository.EventTypeRepository; -import com.piacere.selfhealing.backend.service.EventTypeService; -import com.piacere.selfhealing.backend.web.rest.errors.BadRequestAlertException; - -@Service -@Transactional -public class EventTypeServiceImpl implements EventTypeService { - private final Logger log = LoggerFactory.getLogger(EventTypeServiceImpl.class); - private static final String ENTITY_NAME = "shBackendEventType"; - private final EventTypeRepository eventTypeRepository; - - public EventTypeServiceImpl(EventTypeRepository eventTypeRepository) { - super(); - this.eventTypeRepository = eventTypeRepository; - } - - @Override - public EventType create(EventType eventType){ - if (eventType.getId() != null) { - throw new BadRequestAlertException("A new eventType cannot already have an ID", ENTITY_NAME, "idexists"); - } - return eventTypeRepository.save(eventType); - } - - @Override - public EventType update(Long id, EventType eventType){ - if (eventType.getId() == null) { - throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull"); - } - if (!Objects.equals(id, eventType.getId())) { - throw new BadRequestAlertException("Invalid ID", ENTITY_NAME, "idinvalid"); - } - - if (!eventTypeRepository.existsById(id)) { - throw new BadRequestAlertException("Entity not found", ENTITY_NAME, "idnotfound"); - } - - return eventTypeRepository.save(eventType); - } - - @Override - public Optional<EventType> patch(Long id, EventType eventType){ - if (eventType.getId() == null) { - throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull"); - } - if (!Objects.equals(id, eventType.getId())) { - throw new BadRequestAlertException("Invalid ID", ENTITY_NAME, "idinvalid"); - } - - if (!eventTypeRepository.existsById(id)) { - throw new BadRequestAlertException("Entity not found", ENTITY_NAME, "idnotfound"); - } - - Optional<EventType> result = eventTypeRepository - .findById(eventType.getId()) - .map(existingEventType -> { - if (eventType.getCode() != null) { - existingEventType.setCode(eventType.getCode()); - } - if (eventType.getDescription() != null) { - existingEventType.setDescription(eventType.getDescription()); - } - - return existingEventType; - }) - .map(eventTypeRepository::save); - return result; - } - - @Override - public List<EventType> findAll() { - return eventTypeRepository.findAll(); - } - - @Override - public Optional<EventType> find(Long id) { - return eventTypeRepository.findById(id); - } - - @Override - public void delete(Long id) { - eventTypeRepository.deleteById(id); - } - -} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/impl/SelfHealingMessageServiceImpl.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/impl/SelfHealingMessageServiceImpl.java index 4c9db998ce60c4289e209091eab0935dc5f98990..b44741c2b941ac231e59a2f30b7a90a334d85931 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/impl/SelfHealingMessageServiceImpl.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/impl/SelfHealingMessageServiceImpl.java @@ -1,20 +1,36 @@ package com.piacere.selfhealing.backend.service.impl; -import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.io.*; +import java.net.URISyntaxException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.time.Duration; +import java.time.Instant; +import java.util.*; +import com.google.gson.*; +import com.google.gson.stream.JsonWriter; +import com.hubspot.jinjava.Jinjava; +import com.piacere.selfhealing.backend.config.ApplicationProperties; +import com.piacere.selfhealing.backend.domain.*; +import com.piacere.selfhealing.backend.repository.DeploymentRepository; +import com.piacere.selfhealing.backend.service.*; +import com.piacere.selfhealing.backend.web.rest.StrategyApplicationResource; +import eu.piacere.doml.doml.commons.DOMLModel; +import eu.piacere.doml.doml.infrastructure.ComputingGroup; +import eu.piacere.doml.doml.infrastructure.AutoScalingGroup; +import eu.piacere.doml.doml.infrastructure.ComputingNode; +import eu.piacere.doml.doml.infrastructure.InfrastructureLayer; +import org.apache.commons.io.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.piacere.selfhealing.backend.domain.SelfHealingMessage; -import com.piacere.selfhealing.backend.domain.Strategy; import com.piacere.selfhealing.backend.domain.enumeration.Status; import com.piacere.selfhealing.backend.repository.EventTypeRepository; import com.piacere.selfhealing.backend.repository.SelfHealingMessageRepository; -import com.piacere.selfhealing.backend.service.SelfHealingMessageService; import com.piacere.selfhealing.backend.web.rest.errors.BadRequestAlertException; @Service @@ -25,12 +41,40 @@ public class SelfHealingMessageServiceImpl implements SelfHealingMessageService private final SelfHealingMessageRepository selfHealingMessageRepository; private final EventTypeRepository eventTypeRepository; - + private final ApplicationProperties applicationProperties; + private final PrcService prcService; + private final DeploymentRepository deploymentRepository; + private final StrategyApplicationResource strategyApplicationResource; + private final DOMLService domlService; + private final BundleService bundleService; + private final IopService iopService; + private final DmcService dmcService; + private final IcgService icgService; + private final IsrService isrService; + + // dictionary to store the strategy not repeat before + private final HashMap<String, Instant> strategyNotRepeatBeforeDictionary = new HashMap<String, Instant>(); + final Gson gsonPrettyPrinting = new GsonBuilder().setPrettyPrinting().create(); + public SelfHealingMessageServiceImpl(SelfHealingMessageRepository selfHealingMessageRepository, - EventTypeRepository eventTypeRepository) { + EventTypeRepository eventTypeRepository, ApplicationProperties applicationProperties, + PrcService prcService, DeploymentRepository deploymentRepository, + StrategyApplicationResource strategyApplicationResource, DOMLService domlService, + BundleService bundleService, IopService iopService, DmcService dmcService, + IcgService icgService, IsrService isrService) { super(); this.selfHealingMessageRepository = selfHealingMessageRepository; this.eventTypeRepository = eventTypeRepository; + this.applicationProperties = applicationProperties; + this.prcService = prcService; + this.deploymentRepository = deploymentRepository; + this.strategyApplicationResource = strategyApplicationResource; + this.domlService = domlService; + this.bundleService = bundleService; + this.iopService = iopService; + this.dmcService = dmcService; + this.icgService = icgService; + this.isrService = isrService; } @Override @@ -77,8 +121,8 @@ public class SelfHealingMessageServiceImpl implements SelfHealingMessageService if (selfHealingMessage.getOrigin() != null) { existingSelfHealingMessage.setOrigin(selfHealingMessage.getOrigin()); } - if (selfHealingMessage.getApplicationId() != null) { - existingSelfHealingMessage.setApplicationId(selfHealingMessage.getApplicationId()); + if (selfHealingMessage.getDeploymentId() != null) { + existingSelfHealingMessage.setDeploymentId(selfHealingMessage.getDeploymentId()); } if (selfHealingMessage.getTimestamp() != null) { existingSelfHealingMessage.setTimestamp(selfHealingMessage.getTimestamp()); @@ -110,33 +154,647 @@ public class SelfHealingMessageServiceImpl implements SelfHealingMessageService public void delete(Long id) { selfHealingMessageRepository.deleteById(id); } - + @Override - public void processMessage(SelfHealingMessage message) { + public void processMessage(SelfHealingMessage message) throws Exception { SelfHealingMessage selfHealingMessage = this.selfHealingMessageRepository.getById(message.getId()); log.debug("--------Handling SelfHealingMessage: {}", selfHealingMessage); log.debug("--------Classify the event"); log.debug("------------Find appropiate strategy for type " + selfHealingMessage.getEventType().getCode()); + Strategy strategy=null; try { strategy = this.eventTypeRepository.findByCode(selfHealingMessage.getEventType().getCode()).getStrategy(); if (strategy == null) { throw new Exception("Strategy not found"); - } + } } catch (Exception e) { selfHealingMessage.setStatus(Status.ERROR); selfHealingMessage.setError(e.getMessage()); } log.debug("----------------Strategy found: {}", strategy); log.debug("------------Propose self-healing strategy started"); - //TODO CALL RUNTIME CONTROLLER - log.debug("----------------Pending task CALL RUNTIME CONTROLLER TO PROPOSE NEW WORKFLOW"); - if (selfHealingMessage.getStatus()!=Status.ERROR) { - selfHealingMessage.setStatus(Status.PROCESSED); + + String strategyString = strategy.getConfiguration(); + JsonObject strategyConfiguration = new JsonObject(); + try { + strategyConfiguration = JsonParser.parseString(strategyString).getAsJsonObject(); + } catch (Exception e) { + log.debug("Error loading strategy configuration"); + } + + //https://www.geeksforgeeks.org/duration-parsecharsequence-method-in-java-with-examples/ + String repeatNotBefore = applicationProperties.getStrategy().getRepeatNotBefore(); + if (strategyConfiguration.has("repeat_not_before")) { + repeatNotBefore = strategyConfiguration.get("repeat_not_before").getAsString(); + } + + Duration repeatNotBeforeDuration; + try { + repeatNotBeforeDuration = Duration.parse(repeatNotBefore); + } catch (Exception e) { + log.error("Error parsing repeat_not_before"); + throw new Exception("Error parsing repeat_not_before", e); + } + + JsonObject eventError = new JsonObject(); + String eventErrorString = selfHealingMessage.getError(); + try { + eventError = JsonParser.parseString(eventErrorString).getAsJsonObject(); + } catch (Exception e) { + log.error("Event error is not a valid json, defaulting to { \"labels\": [ \"deployment_id\": \"" + selfHealingMessage.getDeploymentId() + "\" ] }"); + JsonObject eventErrorLabelsDefault = new JsonObject(); + eventErrorLabelsDefault.addProperty("deployment_id", selfHealingMessage.getDeploymentId()); + eventError.add("labels", eventErrorLabelsDefault); + } + + JsonObject eventErrorLabels = new JsonObject(); + try { + eventErrorLabels = eventError.getAsJsonObject("labels"); + } catch (Exception e) { + log.error("eventError does not have labels, defaulting to { \"labels\": [ \"deployment_id\": \"" + selfHealingMessage.getDeploymentId() + "\" ] }"); + JsonObject eventErrorLabelsDefault = new JsonObject(); + eventErrorLabelsDefault.addProperty("deployment_id", selfHealingMessage.getDeploymentId()); + eventError.add("labels", eventErrorLabelsDefault); + } + + JsonElement deploymentIdElement = eventErrorLabels.get("deployment_id"); + if (deploymentIdElement == null) { + log.error("Error labels does not have deployment_id, adding it"); + eventErrorLabels.addProperty("deployment_id", selfHealingMessage.getDeploymentId()); + deploymentIdElement = eventErrorLabels.get("deployment_id"); + } + String deploymentId = deploymentIdElement.getAsString(); + + // ensure that event_type is in the labels + JsonElement eventCodeElement = eventErrorLabels.get("event_type"); + if (eventCodeElement == null) { + log.error("Error labels does not have event_type, adding it"); + eventErrorLabels.addProperty("event_type", selfHealingMessage.getEventType().getCode()); } + + // if doml_element_name is in the labels with empty value then remove it + JsonElement domlElementNameElement = eventErrorLabels.get("doml_element_name"); + if (domlElementNameElement != null) { + String domlElementName = domlElementNameElement.getAsString(); + if (domlElementName.equals("")) { + log.error("Error labels has doml_element_name with empty value, removing it"); + eventErrorLabels.remove("doml_element_name"); + } + } + + // if host is in the labels with empty value then remove it + JsonElement hostElement = eventErrorLabels.get("host"); + if (hostElement != null) { + String host = hostElement.getAsString(); + if (host.equals("")) { + log.error("Error labels has host with empty value, removing it"); + eventErrorLabels.remove("host"); + } + if (host.equals("no value")) { + log.error("Error labels has host with empty value, removing it"); + eventErrorLabels.remove("host"); + } + } + + String strategyKey = strategy.getCode() + "_" + deploymentId; + try { + String domlElementName = eventErrorLabels.getAsJsonPrimitive("doml_element_name").getAsString(); + strategyKey = strategyKey + "_" + domlElementName; + } catch (Exception e) {} + + try { + String host = eventErrorLabels.getAsJsonPrimitive("host").getAsString(); + strategyKey = strategyKey + "_" + host; + } catch (Exception e) {} + + Instant repeatNotBeforeTimestamp = strategyNotRepeatBeforeDictionary.get(strategyKey); + + if (repeatNotBeforeTimestamp != null) { + Instant now = Instant.now(); + if (repeatNotBeforeTimestamp.isAfter(now)) { + log.debug("------------Strategy not applied because of repeat_not_before"); + selfHealingMessage.setStatus(Status.IGNORED); + this.selfHealingMessageRepository.saveAndFlush(selfHealingMessage); + return; + } else { + strategyNotRepeatBeforeDictionary.remove(strategyKey); + } + } + + String strategyType = "notify"; + if (strategyConfiguration.has("strategy_type")) { + strategyType = strategyConfiguration.get("strategy_type").getAsString(); + } + + // save into iec database + + switch (strategyType){ + case "notify": + log.debug("------------Strategy notify"); + strategyNotify(deploymentId, strategy, eventErrorLabels, strategyConfiguration); + break; + case "redeploy": + log.debug("------------Strategy redeploy"); + strategyRedeploy(deploymentId, strategy, eventErrorLabels, strategyConfiguration); + break; + case "ansible": + log.debug("------------Strategy ansible"); + strategyAnsible(deploymentId, strategy, eventErrorLabels, strategyConfiguration); + break; + case "v_scale": + log.debug("------------Strategy vertical_scale"); + strategyVerticalScale(deploymentId, strategy, eventErrorLabels, strategyConfiguration); + break; + case "h_scale": + log.debug("------------Strategy horizontal_scale"); + strategyHorizontalScale(deploymentId, strategy, eventErrorLabels, strategyConfiguration); + break; + case "reoptimize": + log.debug("------------Strategy reoptimize"); + strategyReoptimize(deploymentId, strategy, eventErrorLabels, strategyConfiguration); + break; + default: + log.debug("------------Strategy {} not found", strategyType); + throw new Exception("Strategy not found"); + } + + selfHealingMessage.setStatus(Status.PROCESSED); this.selfHealingMessageRepository.saveAndFlush(selfHealingMessage); + + Instant eventTimeStamp = Instant.now(); + + repeatNotBeforeTimestamp = eventTimeStamp.plus(repeatNotBeforeDuration); + strategyNotRepeatBeforeDictionary.put(strategyKey, repeatNotBeforeTimestamp); + + //clean dictionary + Instant now = Instant.now(); + Set<String> keys = strategyNotRepeatBeforeDictionary.keySet(); + Iterator<String> iterator = keys.iterator(); + while (iterator.hasNext()) { + String key = iterator.next(); + Instant value = strategyNotRepeatBeforeDictionary.get(key); + if (value.isBefore(now)) { + iterator.remove(); + } + } } - + private void strategyReoptimize(String deploymentId, Strategy strategy, JsonObject eventErrorLabels, JsonObject strategyConfiguration) { + Deployment deployment = deploymentRepository.getByDeploymentId(deploymentId); + String eventCode = eventErrorLabels.get("event_type").getAsString(); + + Path deploymentUnpackTmpDir = bundleService.unpackBundle(deployment); + Path resultTmpDir = bundleService.createTmpDir(); + + // copy ecore doml.ecore + Path domlEcorePath = deploymentUnpackTmpDir.resolve("doml.ecore"); + // if domlEcorePath does not exist error + if (!domlEcorePath.toFile().exists()) { + log.error("Error doml.ecore does not exist"); + throw new RuntimeException("doml.ecore does not exist"); + } + + Path resultDomlEcorePath = resultTmpDir.resolve("doml.ecore"); + log.info("Writing doml ecore to {}", resultDomlEcorePath); + try { + Files.copy(domlEcorePath, resultDomlEcorePath); + } catch (IOException e) { + log.error("Error writing doml ecore to tmp directory"); + e.printStackTrace(); + throw new RuntimeException(e); + } + + // copy *.domlx file from deploymentUnpackTmpDir to resultTmpDir/base.domlx + // we will try to find doml file in the tmp directory, if no we will try to find domlx file and convert it to doml + Path domlxPath = null; + try { + domlxPath = Files.list(deploymentUnpackTmpDir).filter(path -> path.toString().endsWith(".domlx")).findFirst().orElseThrow(() -> new RuntimeException("doml file not found")); + } catch (Exception e) { + log.error("Error finding domlx file"); + throw new RuntimeException("domlx file not found"); + } + + // copy domlx file to resultTmpDir/base.domlx + Path baseDomlxPath = resultTmpDir.resolve("base.domlx"); + log.info("Writing base domlx to {}", baseDomlxPath); + try { + Files.copy(domlxPath, baseDomlxPath); + } catch (IOException e) { + log.error("Error writing base domlx to tmp directory"); + e.printStackTrace(); + throw new RuntimeException(e); + } + + Path domlPath = null; + try { + domlPath = Files.list(deploymentUnpackTmpDir).filter(path -> path.toString().endsWith(".doml")).findFirst().orElseThrow(() -> new RuntimeException("doml file not found")); + } catch (Exception e) { + } + + if (domlPath == null) { + // load doml and save it to tmp directory + DOMLModel doml = domlService.getDomlxModel(baseDomlxPath); + domlPath = resultTmpDir.resolve("base.doml"); + domlService.saveDomlModel(domlPath, doml); + } + + // copy + Path baseDomlPath = resultTmpDir.resolve("base.doml"); + log.info("Writing base doml to {}", baseDomlPath); + try { + Files.write(baseDomlPath, Files.readAllBytes(domlPath)); + } catch (IOException e) { + log.error("Error writing base doml to tmp directory"); + e.printStackTrace(); + throw new RuntimeException(e); + } + + String iopResponse = iopService.optimize(domlPath); + + // create optimizedDomlPath file in tmp directory + Path optimizedDomlPath = resultTmpDir.resolve("optimized.doml"); + log.info("Writing optimized doml to {}", optimizedDomlPath); + + try { + Files.write(optimizedDomlPath, iopResponse.getBytes(StandardCharsets.UTF_8)); + } catch (IOException e) { + log.error("Error writing optimized doml to tmp directory"); + e.printStackTrace(); + throw new RuntimeException(e); + } + + DOMLModel doml = domlService.getDomlModel(optimizedDomlPath); + + Path optimizedDomlxPath = resultTmpDir.resolve("optimized.domlx"); + log.info("Writing optimized domlx to {}", optimizedDomlxPath); + domlService.saveDomlxModel(optimizedDomlxPath, doml); + + validateDoml(optimizedDomlxPath, resultTmpDir); + + verifyCsp(optimizedDomlxPath, resultTmpDir); + + // copy deploymentUnpackTmpDir/asset into resultTmpDir/asset + Path assetsPath = resultTmpDir.resolve("asset"); + log.info("Writing assets to {}", assetsPath); + try { + org.apache.commons.io.FileUtils.copyDirectory(deploymentUnpackTmpDir.resolve("asset").toFile(), assetsPath.toFile()); + } catch (IOException e) { + log.error("Error writing assets to tmp directory"); + e.printStackTrace(); + throw new RuntimeException(e); + } + + log.info("Deleting the optimized domlx file as it cannot be used for the ICG it will used the base.domlx"); + // delete resultTmpDir/optimized.domlx optimizedDomlxPath + try { + Files.delete(optimizedDomlxPath); + } catch (IOException e) { + log.error("Error deleting optimized domlx"); + e.printStackTrace(); + throw new RuntimeException(e); + } + + // generate icg and save to iac.zip + Path tempDir = bundleService.createTmpDir(); + Path bundlePath = tempDir.resolve("bundle.zip"); + bundleService.packBundle(resultTmpDir, bundlePath); + + Path resultBundlePath = resultTmpDir.resolve("iac.zip"); + try { + icgService.generateIac(bundlePath, resultBundlePath); + } catch (Exception e) { + log.error("Error generating iac"); + } + + // check iac scan runner + JsonObject iacChecks = isrService.getIacChecks(deploymentId, resultBundlePath); + Path iacScanResultPath = resultTmpDir.resolve("iac_scan_result.json"); + log.info("Writing iac scan result to {}", iacScanResultPath); + // pretty print json indent 4 + + try (final PrintWriter pWriter = new PrintWriter(iacScanResultPath.toFile())) { + final JsonWriter jWriter = gsonPrettyPrinting.newJsonWriter(pWriter); + jWriter.setIndent("\t"); + gsonPrettyPrinting.toJson(iacChecks, jWriter); + pWriter.println(); + } catch (final IOException e) { + } + + StrategyApplication strategyApplication = new StrategyApplication(); + strategyApplication.setStrategy(strategy); + strategyApplication.setDeployment(deployment); + strategyApplication.setTimestamp(Instant.now()); + strategyApplication.setSummary("Reoptimize executed with strategy (" + strategy.getCode() + ") for the deployment (" + deploymentId + ") and the event (" + eventCode + ")"); + bundleService.packBundle(strategyApplication, resultTmpDir); + try { + strategyApplicationResource.createStrategyApplication(strategyApplication); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + + private void verifyCsp(Path optimizedDomlxPath, Path resultTmpDir) { + String dmcResponse = dmcService.verifyCsp(optimizedDomlxPath); + + Path dmcResponsePath = resultTmpDir.resolve("dmc_verify_csp.html"); + log.info("Writing dmc response to {}", dmcResponsePath); + + try { + Files.write(dmcResponsePath, dmcResponse.getBytes(StandardCharsets.UTF_8)); + } catch (IOException e) { + log.error("Error writing dmc verify_csp response to tmp directory"); + e.printStackTrace(); + throw new RuntimeException(e); + } + } + + private void validateDoml(Path optimizedDomlxPath, Path resultTmpDir) { + String dmcResponse = dmcService.validate(optimizedDomlxPath); + + Path dmcResponsePath = resultTmpDir.resolve("dmc_validation.html"); + log.info("Writing dmc response to {}", dmcResponsePath); + + try { + Files.write(dmcResponsePath, dmcResponse.getBytes(StandardCharsets.UTF_8)); + } catch (IOException e) { + log.error("Error writing dmc validate response to tmp directory"); + e.printStackTrace(); + throw new RuntimeException(e); + } + } + + private void strategyHorizontalScale(String deploymentId, Strategy strategy, JsonObject eventErrorLabels, JsonObject strategyConfiguration) { + Deployment deployment = deploymentRepository.getByDeploymentId(deploymentId); + String eventCode = eventErrorLabels.get("event_type").getAsString(); + + // We constrain to doml_element_name + JsonElement domlElementNameObject = eventErrorLabels.get("doml_element_name"); + if (domlElementNameObject == null) { + log.error("Error labels does not have doml_element_name, vertical scale cannot be applied"); + return; + } + String domlElementName = domlElementNameObject.getAsString(); + + DOMLModel doml = domlService.getDomlxModel(deployment); + if (doml == null) { + log.error("Error while loading domlx into ecore resource"); + throw new RuntimeException("Error while loading domlx into ecore resource"); + } + + //get the infrastructure model + InfrastructureLayer infrastructureLayer = doml.getInfrastructure(); + if (infrastructureLayer == null) { + log.error("Error while loading domlx into ecore resource"); + throw new RuntimeException("Error while loading domlx into ecore resource"); + } + + // iterate doml elements and find the one with the same name as doml_element_name + for (ComputingGroup computingGroup: infrastructureLayer.getGroups()) { + if (computingGroup.getName().equals(domlElementName)) { + log.debug("computingGroup.getName() {}", computingGroup.getName()); + // if computingGroup is AutoScalingGroup then add 1 to max_size + if (computingGroup instanceof AutoScalingGroup) { + log.debug("------------Strategy horizontal_scale auto_scaling_group"); + AutoScalingGroup autoScalingGroup = (AutoScalingGroup) computingGroup; + autoScalingGroup.setMax(autoScalingGroup.getMax() + 1); + } + } + } + + StrategyApplication strategyApplication = new StrategyApplication(); + strategyApplication.setStrategy(strategy); + strategyApplication.setDeployment(deployment); + strategyApplication.setTimestamp(Instant.now()); + strategyApplication.setSummary("Horizontal scale executed with strategy (" + strategy.getCode() + ") for the deployment (" + deploymentId + ") and the event (" + eventCode + ")"); + // save the doml model to the strategy application + domlService.saveDomlModel(strategyApplication, doml); + + try { + strategyApplicationResource.createStrategyApplication(strategyApplication); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + + private void strategyVerticalScale(String deploymentId, Strategy strategy, JsonObject eventErrorLabels, JsonObject strategyConfiguration) { + Deployment deployment = deploymentRepository.getByDeploymentId(deploymentId); + String eventCode = eventErrorLabels.get("event_type").getAsString(); + + // check if dimension is in the eventerrorlabels + JsonElement dimensionObject = eventErrorLabels.get("dimension"); + if (dimensionObject == null) { + log.error("Error labels does not have dimension, horizontal scale cannot be applied"); + return; + } + String dimension = dimensionObject.getAsString(); + + // We constrain to doml_element_name + JsonElement domlElementNameObject = eventErrorLabels.get("doml_element_name"); + if (domlElementNameObject == null) { + log.error("Error labels does not have doml_element_name, vertical scale cannot be applied"); + return; + } + String domlElementName = domlElementNameObject.getAsString(); + + DOMLModel doml = domlService.getDomlxModel(deployment); + if (doml == null) { + log.error("Error while loading domlx into ecore resource"); + throw new RuntimeException("Error while loading domlx into ecore resource"); + } + + //get the infrastructure model + InfrastructureLayer infrastructureLayer = doml.getInfrastructure(); + if (infrastructureLayer == null) { + log.error("Error while loading domlx into ecore resource"); + throw new RuntimeException("Error while loading domlx into ecore resource"); + } + + // iterate doml elements and find the one with the same name as doml_element_name + for (ComputingNode computingNode: infrastructureLayer.getNodes()) { + if (computingNode.getName().equals(domlElementName)) { + switch (dimension) { + case "cpu": + log.debug("------------Strategy vertical_scale cpu"); + if (computingNode.getCpu_count() == null) { + log.error("Error computingNode {} does not have cpuCount", computingNode.getName()); + return; + } + Integer cpuCount = computingNode.getCpu_count(); + Integer newCpuCount = cpuCount + 1; + computingNode.setCpu_count(newCpuCount); + break; + case "memory": + log.debug("------------Strategy vertical_scale mem"); + if (computingNode.getMemory_mb() == null) { + log.error("Error computingNode {} does not have mem_mb", computingNode.getName()); + return; + } + Float memoryMb = computingNode.getMemory_mb(); + Float newMemoryMb = memoryMb + 1024; + computingNode.setMemory_mb(newMemoryMb); + break; + case "storage": + log.debug("------------Strategy vertical_scale sto"); + if (computingNode.getStorage() == null) { + log.error("Error computingNode {} does not have storage_gb", computingNode.getName()); + return; + } + Float storageGb = computingNode.getStorage(); + Float newStorageGb = storageGb + 10; + computingNode.setStorage(newStorageGb); + break; + default: + log.debug("------------Strategy vertical_scale {} not found", eventCode); + throw new RuntimeException("Strategy not found"); + } + } + } + + StrategyApplication strategyApplication = new StrategyApplication(); + strategyApplication.setStrategy(strategy); + strategyApplication.setDeployment(deployment); + strategyApplication.setTimestamp(Instant.now()); + strategyApplication.setSummary("Vertical scale executed with strategy (" + strategy.getCode() + ") for the deployment (" + deploymentId + ") and the event (" + eventCode + ")"); + // save the doml model to the strategy application + domlService.saveDomlModel(strategyApplication, doml); + + try { + strategyApplicationResource.createStrategyApplication(strategyApplication); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + + private void strategyRedeploy(String deploymentId, Strategy strategy, JsonObject eventErrorLabels, JsonObject strategyConfiguration) { + Deployment deployment = deploymentRepository.getByDeploymentId(deploymentId); + String eventCode = eventErrorLabels.get("event_type").getAsString(); + + prcService.executeRedeploy(deployment); + StrategyApplication strategyApplication = new StrategyApplication(); + strategyApplication.setStrategy(strategy); + strategyApplication.setDeployment(deployment); + strategyApplication.setTimestamp(Instant.now()); + strategyApplication.setSummary("Redeploy executed with strategy (" + strategy.getCode() + ") for the deployment (" + deploymentId + ") and the event (" + eventCode + ")"); + + try { + strategyApplicationResource.createStrategyApplication(strategyApplication); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + + private void strategyNotify(String deploymentId, Strategy strategy, JsonObject eventErrorLabels, JsonObject strategyConfiguration) { + StrategyApplication strategyApplication = new StrategyApplication(); + String eventCode = eventErrorLabels.get("event_type").getAsString(); + + strategyApplication.setStrategy(strategy); + Deployment deployment = deploymentRepository.getByDeploymentId(deploymentId); + strategyApplication.setDeployment(deployment); + strategyApplication.setTimestamp(Instant.now()); + strategyApplication.setSummary("Notification registered with strategy (" + strategy.getCode() + ") for the deployment (" + deploymentId + ") and the event (" + eventCode + ")"); + + try { + strategyApplicationResource.createStrategyApplication(strategyApplication); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + + private void strategyAnsible(String deploymentId, Strategy strategy, JsonObject eventErrorLabels, JsonObject strategyConfiguration) { + String eventCode = eventErrorLabels.get("event_type").getAsString(); + + // build when condition with doml_element_name and host + String whenCondition = ""; + // when: doml_element_name is defined and doml_element_name == 'mysql_vm' and ansible_hostname is defined and ansible_hostname == 'abb3ef8c3cd0' + boolean add_and = false; + if (eventErrorLabels.has("doml_element_name")) { + if (add_and) whenCondition = whenCondition + " and "; + else { + whenCondition = whenCondition + "when: "; + add_and = true; + } + // + String domlElementName = eventErrorLabels.get("doml_element_name").getAsString(); + whenCondition = whenCondition + "doml_element_name is defined and "; + whenCondition = whenCondition + "doml_element_name == '" + domlElementName + "'"; + } + if (eventErrorLabels.has("host")) { + if (add_and) whenCondition = whenCondition + " and "; + else { + whenCondition = whenCondition + "when: "; + add_and = true; + } + String host = eventErrorLabels.get("host").getAsString(); + whenCondition = whenCondition + "ansible_hostname is defined and "; + whenCondition = whenCondition + "ansible_hostname == '" + host + "'"; + } + + Jinjava jinjava = new Jinjava(); + + Map<String, Object> context = new HashMap<String, Object>(); + context.put("sh_filter", whenCondition); + + /** + * {"strategy_type": "ansible", "repeat_not_before": "PT1M", "ansible_j2_template": "shutdown" } + * {"strategy_type": "ansible", "repeat_not_before": "PT1M", "ansible_j2_template": "run_playbook_at_assets","assets_relative_path": "sh/strategy1.yml"} + * {"strategy_type": "ansible", "repeat_not_before": "PT1M", "ansible_j2": "{% raw %}---\n- hosts: servers_for_self_healing_monitoring\n tasks:\n - name: reboot\n lineinfile:\n line: \\\"{{ ansible_date_time.iso8601}}\\\"\n path: \\\"{{ ansible_env.HOME}}/fake_shutdown\\\"\n create: yes{% endraw %}\n {{ sh_filter }}\n"} + */ + + String ansible_j2 = null; + + try { + ansible_j2 = strategyConfiguration.get("ansible_j2").getAsString(); + } catch (Exception e) { + log.debug("No ansible_j2 found in strategy configuration"); + } + + // if has ansible_j2_template + if (strategyConfiguration.has("ansible_j2_template")) { + String ansible_j2_template = strategyConfiguration.get("ansible_j2_template").getAsString(); + String ansible_j2_template_path = "ansible_j2_templates/" + ansible_j2_template + ".yaml.j2"; + + try { + ansible_j2 = IOUtils.toString(this.getClass().getClassLoader().getResourceAsStream(ansible_j2_template_path), StandardCharsets.UTF_8); + } catch (Exception e) { + log.error("Error while loading template {}", ansible_j2_template_path, e); + return; + } + + // extend context with all elements of cond + for (Map.Entry<String, JsonElement> entry : strategyConfiguration.entrySet()) { + context.put(entry.getKey(), entry.getValue().getAsString()); + } + } + + // if ansible_j2 is null error + if (ansible_j2 == null) { + log.error("no ansible_j2 or ansible_j2_template found in strategy configuration"); + return; + } + + String strategyPlaybook = null; + try { + strategyPlaybook = jinjava.render(ansible_j2, context); + } catch (Exception e) { + log.error("Error while rendering cond.json.j2", e); + return; + } + + prcService.executeAnsiblePlaybook(deploymentId, strategyPlaybook); + + StrategyApplication strategyApplication = new StrategyApplication(); + strategyApplication.setStrategy(strategy); + Deployment deployment = deploymentRepository.getByDeploymentId(deploymentId); + strategyApplication.setDeployment(deployment); + strategyApplication.setTimestamp(Instant.now()); + strategyApplication.setSummary("Ansible playbook executed with strategy (" + strategy.getCode() + ") for the deployment (" + deploymentId + ") and the event (" + eventCode + ")"); + + try { + strategyApplicationResource.createStrategyApplication(strategyApplication); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } } diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/impl/StrategyServiceImpl.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/impl/StrategyServiceImpl.java deleted file mode 100644 index 080ce8c782940f168e31468b2602a90ab443e09e..0000000000000000000000000000000000000000 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/impl/StrategyServiceImpl.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.piacere.selfhealing.backend.service.impl; - -import java.util.List; -import java.util.Objects; -import java.util.Optional; - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.piacere.selfhealing.backend.domain.Strategy; -import com.piacere.selfhealing.backend.repository.StrategyRepository; -import com.piacere.selfhealing.backend.service.StrategyService; -import com.piacere.selfhealing.backend.web.rest.errors.BadRequestAlertException; - -@Service -@Transactional -public class StrategyServiceImpl implements StrategyService { - private final StrategyRepository strategyRepository; - private static final String ENTITY_NAME = "shBackendStrategy"; - - public StrategyServiceImpl(StrategyRepository strategyRepository) { - super(); - this.strategyRepository = strategyRepository; - } - @Override - public Strategy create(Strategy strategy) { - if (strategy.getId() != null) { - throw new BadRequestAlertException("A new strategy cannot already have an ID", ENTITY_NAME, "idexists"); - } - return strategyRepository.save(strategy); - } - - @Override - public Strategy update(Long id, Strategy strategy) { - if (strategy.getId() == null) { - throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull"); - } - if (!Objects.equals(id, strategy.getId())) { - throw new BadRequestAlertException("Invalid ID", ENTITY_NAME, "idinvalid"); - } - - if (!strategyRepository.existsById(id)) { - throw new BadRequestAlertException("Entity not found", ENTITY_NAME, "idnotfound"); - } - - return strategyRepository.save(strategy); - } - - @Override - public Optional<Strategy> patch(Long id, Strategy strategy) { - if (strategy.getId() == null) { - throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull"); - } - if (!Objects.equals(id, strategy.getId())) { - throw new BadRequestAlertException("Invalid ID", ENTITY_NAME, "idinvalid"); - } - - if (!strategyRepository.existsById(id)) { - throw new BadRequestAlertException("Entity not found", ENTITY_NAME, "idnotfound"); - } - - Optional<Strategy> result = strategyRepository - .findById(strategy.getId()) - .map(existingStrategy -> { - if (strategy.getCode() != null) { - existingStrategy.setCode(strategy.getCode()); - } - if (strategy.getDescription() != null) { - existingStrategy.setDescription(strategy.getDescription()); - } - if (strategy.getBpmn() != null) { - existingStrategy.setBpmn(strategy.getBpmn()); - } - - return existingStrategy; - }) - .map(strategyRepository::save); - return result; - } - - @Override - public List<Strategy> findAll() { - return strategyRepository.findAll(); - } - - @Override - public Optional<Strategy> find(Long id) { - return strategyRepository.findById(id); - } - - @Override - public void delete(Long id) { - strategyRepository.deleteById(id); - } -} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/impl/package-info.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/impl/package-info.java deleted file mode 100644 index 58ab0fdc6a8110ad0f97a6cf1e7d9524f4db109c..0000000000000000000000000000000000000000 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/impl/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package com.piacere.selfhealing.backend.service.impl; \ No newline at end of file diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/mapper/package-info.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/mapper/package-info.java deleted file mode 100644 index db38b5542c690bfe34f712cf18e06831b0369889..0000000000000000000000000000000000000000 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/service/mapper/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package com.piacere.selfhealing.backend.service.mapper; \ No newline at end of file diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/shBackendApp.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/shBackendApp.java index 63283086f0d9386d9a9a06e7a0ca2f402b516349..d4317968c60f3f2448ff22778f2f430434b0a749 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/shBackendApp.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/shBackendApp.java @@ -1,5 +1,6 @@ package com.piacere.selfhealing.backend; +import com.piacere.selfhealing.backend.config.ApplicationProperties; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Arrays; @@ -14,21 +15,20 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.core.env.Environment; - -import com.piacere.selfhealing.backend.config.ApplicationProperties; - +import org.springframework.scheduling.annotation.EnableAsync; import tech.jhipster.config.DefaultProfileUtil; import tech.jhipster.config.JHipsterConstants; @SpringBootApplication @EnableConfigurationProperties({ LiquibaseProperties.class, ApplicationProperties.class }) -public class shBackendApp { +@EnableAsync +public class ShBackendApp { - private static final Logger log = LoggerFactory.getLogger(shBackendApp.class); + private static final Logger log = LoggerFactory.getLogger(ShBackendApp.class); private final Environment env; - public shBackendApp(Environment env) { + public ShBackendApp(Environment env) { this.env = env; } @@ -66,7 +66,7 @@ public class shBackendApp { * @param args the command line arguments. */ public static void main(String[] args) { - SpringApplication app = new SpringApplication(shBackendApp.class); + SpringApplication app = new SpringApplication(ShBackendApp.class); DefaultProfileUtil.addDefaultProfile(app); Environment env = app.run(args).getEnvironment(); logApplicationStartup(env); diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/DeploymentResource.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/DeploymentResource.java new file mode 100644 index 0000000000000000000000000000000000000000..0271567ea8748c4006b985973000a3f2fc65b32a --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/DeploymentResource.java @@ -0,0 +1,193 @@ +package com.piacere.selfhealing.backend.web.rest; + +import com.piacere.selfhealing.backend.domain.Deployment; +import com.piacere.selfhealing.backend.repository.DeploymentRepository; +import com.piacere.selfhealing.backend.service.DeploymentService; +import com.piacere.selfhealing.backend.web.rest.errors.BadRequestAlertException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseEntity; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; +import tech.jhipster.web.util.HeaderUtil; +import tech.jhipster.web.util.ResponseUtil; + +/** + * REST controller for managing {@link com.piacere.selfhealing.backend.domain.Deployment}. + */ +@RestController +@RequestMapping("/api") +@Transactional +public class DeploymentResource { + + private final Logger log = LoggerFactory.getLogger(DeploymentResource.class); + + private static final String ENTITY_NAME = "shBackendDeployment"; + + @Value("${jhipster.clientApp.name}") + private String applicationName; + + private final DeploymentRepository deploymentRepository; + + private final DeploymentService deploymentService; + + public DeploymentResource(DeploymentRepository deploymentRepository, DeploymentService deploymentService) { + this.deploymentRepository = deploymentRepository; + this.deploymentService = deploymentService; + } + + /** + * {@code POST /deployments} : Create a new deployment. + * + * @param deployment the deployment to create. + * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with body the new deployment, or with status {@code 400 (Bad Request)} if the deployment has already an ID. + * @throws URISyntaxException if the Location URI syntax is incorrect. + */ + @PostMapping("/deployments") + public ResponseEntity<Deployment> createDeployment(@Valid @RequestBody Deployment deployment) throws URISyntaxException { + log.debug("REST request to save Deployment : {}", deployment); + if (deployment.getId() != null) { + throw new BadRequestAlertException("A new deployment cannot already have an ID", ENTITY_NAME, "idexists"); + } + Deployment result = deploymentRepository.save(deployment); + deploymentService.configure(result); + return ResponseEntity + .created(new URI("/api/deployments/" + result.getId())) + .headers(HeaderUtil.createEntityCreationAlert(applicationName, true, ENTITY_NAME, result.getId().toString())) + .body(result); + } + + /** + * {@code PUT /deployments/:id} : Updates an existing deployment. + * + * @param id the id of the deployment to save. + * @param deployment the deployment to update. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the updated deployment, + * or with status {@code 400 (Bad Request)} if the deployment is not valid, + * or with status {@code 500 (Internal Server Error)} if the deployment couldn't be updated. + * @throws URISyntaxException if the Location URI syntax is incorrect. + */ + @PutMapping("/deployments/{id}") + public ResponseEntity<Deployment> updateDeployment( + @PathVariable(value = "id", required = false) final Long id, + @Valid @RequestBody Deployment deployment + ) throws URISyntaxException { + log.debug("REST request to update Deployment : {}, {}", id, deployment); + if (deployment.getId() == null) { + throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull"); + } + if (!Objects.equals(id, deployment.getId())) { + throw new BadRequestAlertException("Invalid ID", ENTITY_NAME, "idinvalid"); + } + + if (!deploymentRepository.existsById(id)) { + throw new BadRequestAlertException("Entity not found", ENTITY_NAME, "idnotfound"); + } + + Deployment result = deploymentRepository.save(deployment); + return ResponseEntity + .ok() + .headers(HeaderUtil.createEntityUpdateAlert(applicationName, true, ENTITY_NAME, deployment.getId().toString())) + .body(result); + } + + /** + * {@code PATCH /deployments/:id} : Partial updates given fields of an existing deployment, field will ignore if it is null + * + * @param id the id of the deployment to save. + * @param deployment the deployment to update. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the updated deployment, + * or with status {@code 400 (Bad Request)} if the deployment is not valid, + * or with status {@code 404 (Not Found)} if the deployment is not found, + * or with status {@code 500 (Internal Server Error)} if the deployment couldn't be updated. + * @throws URISyntaxException if the Location URI syntax is incorrect. + */ + @PatchMapping(value = "/deployments/{id}", consumes = { "application/json", "application/merge-patch+json" }) + public ResponseEntity<Deployment> partialUpdateDeployment( + @PathVariable(value = "id", required = false) final Long id, + @NotNull @RequestBody Deployment deployment + ) throws URISyntaxException { + log.debug("REST request to partial update Deployment partially : {}, {}", id, deployment); + if (deployment.getId() == null) { + throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull"); + } + if (!Objects.equals(id, deployment.getId())) { + throw new BadRequestAlertException("Invalid ID", ENTITY_NAME, "idinvalid"); + } + + if (!deploymentRepository.existsById(id)) { + throw new BadRequestAlertException("Entity not found", ENTITY_NAME, "idnotfound"); + } + + Optional<Deployment> result = deploymentRepository + .findById(deployment.getId()) + .map(existingDeployment -> { + if (deployment.getDeploymentId() != null) { + existingDeployment.setDeploymentId(deployment.getDeploymentId()); + } + if (deployment.getBundle() != null) { + existingDeployment.setBundle(deployment.getBundle()); + } + if (deployment.getBundleContentType() != null) { + existingDeployment.setBundleContentType(deployment.getBundleContentType()); + } + + return existingDeployment; + }) + .map(deploymentRepository::save); + + return ResponseUtil.wrapOrNotFound( + result, + HeaderUtil.createEntityUpdateAlert(applicationName, true, ENTITY_NAME, deployment.getId().toString()) + ); + } + + /** + * {@code GET /deployments} : get all the deployments. + * + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and the list of deployments in body. + */ + @GetMapping("/deployments") + public List<Deployment> getAllDeployments() { + log.debug("REST request to get all Deployments"); + return deploymentRepository.findAll(); + } + + /** + * {@code GET /deployments/:id} : get the "id" deployment. + * + * @param id the id of the deployment to retrieve. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the deployment, or with status {@code 404 (Not Found)}. + */ + @GetMapping("/deployments/{id}") + public ResponseEntity<Deployment> getDeployment(@PathVariable Long id) { + log.debug("REST request to get Deployment : {}", id); + Optional<Deployment> deployment = deploymentRepository.findById(id); + return ResponseUtil.wrapOrNotFound(deployment); + } + + /** + * {@code DELETE /deployments/:id} : delete the "id" deployment. + * + * @param id the id of the deployment to delete. + * @return the {@link ResponseEntity} with status {@code 204 (NO_CONTENT)}. + */ + @DeleteMapping("/deployments/{id}") + public ResponseEntity<Void> deleteDeployment(@PathVariable Long id) { + log.debug("REST request to delete Deployment : {}", id); + deploymentService.unBound(id); + deploymentRepository.deleteById(id); + return ResponseEntity + .noContent() + .headers(HeaderUtil.createEntityDeletionAlert(applicationName, true, ENTITY_NAME, id.toString())) + .build(); + } +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/EventTypeResource.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/EventTypeResource.java index 69e19bb089ef8a3a74e1f4eed63279aa0a0e8d4c..3c8d8ef3d8b48109fe16b8bafb3b954a6674592f 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/EventTypeResource.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/EventTypeResource.java @@ -1,31 +1,21 @@ package com.piacere.selfhealing.backend.web.rest; +import com.piacere.selfhealing.backend.domain.EventType; +import com.piacere.selfhealing.backend.repository.EventTypeRepository; +import com.piacere.selfhealing.backend.web.rest.errors.BadRequestAlertException; import java.net.URI; import java.net.URISyntaxException; import java.util.List; +import java.util.Objects; import java.util.Optional; - import javax.validation.Valid; import javax.validation.constraints.NotNull; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PatchMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.piacere.selfhealing.backend.domain.EventType; -import com.piacere.selfhealing.backend.service.EventTypeService; - +import org.springframework.web.bind.annotation.*; import tech.jhipster.web.util.HeaderUtil; import tech.jhipster.web.util.ResponseUtil; @@ -44,11 +34,10 @@ public class EventTypeResource { @Value("${jhipster.clientApp.name}") private String applicationName; - private final EventTypeService eventTypeService; + private final EventTypeRepository eventTypeRepository; - public EventTypeResource( - EventTypeService eventTypeService) { - this.eventTypeService = eventTypeService; + public EventTypeResource(EventTypeRepository eventTypeRepository) { + this.eventTypeRepository = eventTypeRepository; } /** @@ -61,10 +50,13 @@ public class EventTypeResource { @PostMapping("/event-types") public ResponseEntity<EventType> createEventType(@Valid @RequestBody EventType eventType) throws URISyntaxException { log.debug("REST request to save EventType : {}", eventType); - EventType result = this.eventTypeService.create(eventType); + if (eventType.getId() != null) { + throw new BadRequestAlertException("A new eventType cannot already have an ID", ENTITY_NAME, "idexists"); + } + EventType result = eventTypeRepository.save(eventType); return ResponseEntity .created(new URI("/api/event-types/" + result.getId())) - .headers(HeaderUtil.createEntityCreationAlert(applicationName, false, ENTITY_NAME, result.getId().toString())) + .headers(HeaderUtil.createEntityCreationAlert(applicationName, true, ENTITY_NAME, result.getId().toString())) .body(result); } @@ -84,10 +76,21 @@ public class EventTypeResource { @Valid @RequestBody EventType eventType ) throws URISyntaxException { log.debug("REST request to update EventType : {}, {}", id, eventType); - EventType result = eventTypeService.update(id, eventType); + if (eventType.getId() == null) { + throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull"); + } + if (!Objects.equals(id, eventType.getId())) { + throw new BadRequestAlertException("Invalid ID", ENTITY_NAME, "idinvalid"); + } + + if (!eventTypeRepository.existsById(id)) { + throw new BadRequestAlertException("Entity not found", ENTITY_NAME, "idnotfound"); + } + + EventType result = eventTypeRepository.save(eventType); return ResponseEntity .ok() - .headers(HeaderUtil.createEntityUpdateAlert(applicationName, false, ENTITY_NAME, eventType.getId().toString())) + .headers(HeaderUtil.createEntityUpdateAlert(applicationName, true, ENTITY_NAME, eventType.getId().toString())) .body(result); } @@ -108,10 +111,34 @@ public class EventTypeResource { @NotNull @RequestBody EventType eventType ) throws URISyntaxException { log.debug("REST request to partial update EventType partially : {}, {}", id, eventType); - Optional<EventType> result = this.eventTypeService.patch(id, eventType); + if (eventType.getId() == null) { + throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull"); + } + if (!Objects.equals(id, eventType.getId())) { + throw new BadRequestAlertException("Invalid ID", ENTITY_NAME, "idinvalid"); + } + + if (!eventTypeRepository.existsById(id)) { + throw new BadRequestAlertException("Entity not found", ENTITY_NAME, "idnotfound"); + } + + Optional<EventType> result = eventTypeRepository + .findById(eventType.getId()) + .map(existingEventType -> { + if (eventType.getCode() != null) { + existingEventType.setCode(eventType.getCode()); + } + if (eventType.getDescription() != null) { + existingEventType.setDescription(eventType.getDescription()); + } + + return existingEventType; + }) + .map(eventTypeRepository::save); + return ResponseUtil.wrapOrNotFound( result, - HeaderUtil.createEntityUpdateAlert(applicationName, false, ENTITY_NAME, eventType.getId().toString()) + HeaderUtil.createEntityUpdateAlert(applicationName, true, ENTITY_NAME, eventType.getId().toString()) ); } @@ -123,7 +150,7 @@ public class EventTypeResource { @GetMapping("/event-types") public List<EventType> getAllEventTypes() { log.debug("REST request to get all EventTypes"); - return eventTypeService.findAll(); + return eventTypeRepository.findAll(); } /** @@ -135,7 +162,7 @@ public class EventTypeResource { @GetMapping("/event-types/{id}") public ResponseEntity<EventType> getEventType(@PathVariable Long id) { log.debug("REST request to get EventType : {}", id); - Optional<EventType> eventType = eventTypeService.find(id); + Optional<EventType> eventType = eventTypeRepository.findById(id); return ResponseUtil.wrapOrNotFound(eventType); } @@ -148,10 +175,10 @@ public class EventTypeResource { @DeleteMapping("/event-types/{id}") public ResponseEntity<Void> deleteEventType(@PathVariable Long id) { log.debug("REST request to delete EventType : {}", id); - eventTypeService.delete(id); + eventTypeRepository.deleteById(id); return ResponseEntity .noContent() - .headers(HeaderUtil.createEntityDeletionAlert(applicationName, false, ENTITY_NAME, id.toString())) + .headers(HeaderUtil.createEntityDeletionAlert(applicationName, true, ENTITY_NAME, id.toString())) .build(); } } diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/SelfHealingMessageResource.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/SelfHealingMessageResource.java index 65e1077ae62bff3728a11d6bc2c2739c5039300d..58ccbcec7388ff46ba2c31310352dff57852919e 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/SelfHealingMessageResource.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/SelfHealingMessageResource.java @@ -1,31 +1,23 @@ package com.piacere.selfhealing.backend.web.rest; +import com.piacere.selfhealing.backend.domain.SelfHealingMessage; +import com.piacere.selfhealing.backend.domain.enumeration.Status; +import com.piacere.selfhealing.backend.producer.SelfHealingMessageProducer; +import com.piacere.selfhealing.backend.repository.SelfHealingMessageRepository; +import com.piacere.selfhealing.backend.web.rest.errors.BadRequestAlertException; import java.net.URI; import java.net.URISyntaxException; import java.util.List; +import java.util.Objects; import java.util.Optional; - import javax.validation.Valid; import javax.validation.constraints.NotNull; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PatchMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.piacere.selfhealing.backend.domain.SelfHealingMessage; -import com.piacere.selfhealing.backend.service.SelfHealingMessageService; - +import org.springframework.web.bind.annotation.*; import tech.jhipster.web.util.HeaderUtil; import tech.jhipster.web.util.ResponseUtil; @@ -34,20 +26,22 @@ import tech.jhipster.web.util.ResponseUtil; */ @RestController @RequestMapping("/api") -@Transactional +// @Transactional it produces race conditions with the self healing message producer public class SelfHealingMessageResource { private final Logger log = LoggerFactory.getLogger(SelfHealingMessageResource.class); + private final SelfHealingMessageProducer selfHealingMessageProducer; private static final String ENTITY_NAME = "shBackendSelfHealingMessage"; @Value("${jhipster.clientApp.name}") private String applicationName; - private final SelfHealingMessageService selfHealingMessageService; + private final SelfHealingMessageRepository selfHealingMessageRepository; - public SelfHealingMessageResource(SelfHealingMessageService selfHealingMessageService) { - this.selfHealingMessageService = selfHealingMessageService; + public SelfHealingMessageResource(SelfHealingMessageRepository selfHealingMessageRepository, SelfHealingMessageProducer selfHealingMessageProducer) { + this.selfHealingMessageRepository = selfHealingMessageRepository; + this.selfHealingMessageProducer = selfHealingMessageProducer; } /** @@ -61,10 +55,18 @@ public class SelfHealingMessageResource { public ResponseEntity<SelfHealingMessage> createSelfHealingMessage(@Valid @RequestBody SelfHealingMessage selfHealingMessage) throws URISyntaxException { log.debug("REST request to save SelfHealingMessage : {}", selfHealingMessage); - SelfHealingMessage result = selfHealingMessageService.create(selfHealingMessage); + if (selfHealingMessage.getId() != null) { + throw new BadRequestAlertException("A new selfHealingMessage cannot already have an ID", ENTITY_NAME, "idexists"); + } + + SelfHealingMessage result = selfHealingMessageRepository.saveAndFlush(selfHealingMessage); + + if (selfHealingMessage.getStatus()!= Status.ERROR) { + selfHealingMessageProducer.notify(selfHealingMessage); + } return ResponseEntity .created(new URI("/api/self-healing-messages/" + result.getId())) - .headers(HeaderUtil.createEntityCreationAlert(applicationName, false, ENTITY_NAME, result.getId().toString())) + .headers(HeaderUtil.createEntityCreationAlert(applicationName, true, ENTITY_NAME, result.getId().toString())) .body(result); } @@ -84,10 +86,21 @@ public class SelfHealingMessageResource { @Valid @RequestBody SelfHealingMessage selfHealingMessage ) throws URISyntaxException { log.debug("REST request to update SelfHealingMessage : {}, {}", id, selfHealingMessage); - SelfHealingMessage result = selfHealingMessageService.update(id, selfHealingMessage); + if (selfHealingMessage.getId() == null) { + throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull"); + } + if (!Objects.equals(id, selfHealingMessage.getId())) { + throw new BadRequestAlertException("Invalid ID", ENTITY_NAME, "idinvalid"); + } + + if (!selfHealingMessageRepository.existsById(id)) { + throw new BadRequestAlertException("Entity not found", ENTITY_NAME, "idnotfound"); + } + + SelfHealingMessage result = selfHealingMessageRepository.save(selfHealingMessage); return ResponseEntity .ok() - .headers(HeaderUtil.createEntityUpdateAlert(applicationName, false, ENTITY_NAME, selfHealingMessage.getId().toString())) + .headers(HeaderUtil.createEntityUpdateAlert(applicationName, true, ENTITY_NAME, selfHealingMessage.getId().toString())) .body(result); } @@ -108,10 +121,43 @@ public class SelfHealingMessageResource { @NotNull @RequestBody SelfHealingMessage selfHealingMessage ) throws URISyntaxException { log.debug("REST request to partial update SelfHealingMessage partially : {}, {}", id, selfHealingMessage); - Optional<SelfHealingMessage> result = this.selfHealingMessageService.patch(id, selfHealingMessage); + if (selfHealingMessage.getId() == null) { + throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull"); + } + if (!Objects.equals(id, selfHealingMessage.getId())) { + throw new BadRequestAlertException("Invalid ID", ENTITY_NAME, "idinvalid"); + } + + if (!selfHealingMessageRepository.existsById(id)) { + throw new BadRequestAlertException("Entity not found", ENTITY_NAME, "idnotfound"); + } + + Optional<SelfHealingMessage> result = selfHealingMessageRepository + .findById(selfHealingMessage.getId()) + .map(existingSelfHealingMessage -> { + if (selfHealingMessage.getTimestamp() != null) { + existingSelfHealingMessage.setTimestamp(selfHealingMessage.getTimestamp()); + } + if (selfHealingMessage.getOrigin() != null) { + existingSelfHealingMessage.setOrigin(selfHealingMessage.getOrigin()); + } + if (selfHealingMessage.getDeploymentId() != null) { + existingSelfHealingMessage.setDeploymentId(selfHealingMessage.getDeploymentId()); + } + if (selfHealingMessage.getStatus() != null) { + existingSelfHealingMessage.setStatus(selfHealingMessage.getStatus()); + } + if (selfHealingMessage.getError() != null) { + existingSelfHealingMessage.setError(selfHealingMessage.getError()); + } + + return existingSelfHealingMessage; + }) + .map(selfHealingMessageRepository::save); + return ResponseUtil.wrapOrNotFound( result, - HeaderUtil.createEntityUpdateAlert(applicationName, false, ENTITY_NAME, selfHealingMessage.getId().toString()) + HeaderUtil.createEntityUpdateAlert(applicationName, true, ENTITY_NAME, selfHealingMessage.getId().toString()) ); } @@ -123,7 +169,7 @@ public class SelfHealingMessageResource { @GetMapping("/self-healing-messages") public List<SelfHealingMessage> getAllSelfHealingMessages() { log.debug("REST request to get all SelfHealingMessages"); - return selfHealingMessageService.findAll(); + return selfHealingMessageRepository.findAll(); } /** @@ -135,7 +181,7 @@ public class SelfHealingMessageResource { @GetMapping("/self-healing-messages/{id}") public ResponseEntity<SelfHealingMessage> getSelfHealingMessage(@PathVariable Long id) { log.debug("REST request to get SelfHealingMessage : {}", id); - Optional<SelfHealingMessage> selfHealingMessage = selfHealingMessageService.find(id); + Optional<SelfHealingMessage> selfHealingMessage = selfHealingMessageRepository.findById(id); return ResponseUtil.wrapOrNotFound(selfHealingMessage); } @@ -148,10 +194,10 @@ public class SelfHealingMessageResource { @DeleteMapping("/self-healing-messages/{id}") public ResponseEntity<Void> deleteSelfHealingMessage(@PathVariable Long id) { log.debug("REST request to delete SelfHealingMessage : {}", id); - selfHealingMessageService.delete(id); + selfHealingMessageRepository.deleteById(id); return ResponseEntity .noContent() - .headers(HeaderUtil.createEntityDeletionAlert(applicationName, false, ENTITY_NAME, id.toString())) + .headers(HeaderUtil.createEntityDeletionAlert(applicationName, true, ENTITY_NAME, id.toString())) .build(); } } diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/SelfHealingResource.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/SelfHealingResource.java index cc23ff2373d2868f5dbbb3dbfab70f16af99fda7..beb897c1a1f5e0d43ae97fa3aeed1dd6a1866fdc 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/SelfHealingResource.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/SelfHealingResource.java @@ -1,24 +1,35 @@ package com.piacere.selfhealing.backend.web.rest; -import java.time.Instant; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.piacere.selfhealing.backend.domain.Deployment; import com.piacere.selfhealing.backend.domain.EventType; import com.piacere.selfhealing.backend.domain.SelfHealingMessage; import com.piacere.selfhealing.backend.domain.enumeration.Status; import com.piacere.selfhealing.backend.producer.SelfHealingMessageProducer; +import com.piacere.selfhealing.backend.repository.DeploymentRepository; import com.piacere.selfhealing.backend.repository.EventTypeRepository; import com.piacere.selfhealing.backend.repository.SelfHealingMessageRepository; +import com.piacere.selfhealing.backend.service.ObjectKeepService; +import com.piacere.selfhealing.backend.service.dto.DeploymentDTO; import com.piacere.selfhealing.backend.service.dto.SelfHealingMessageDTO; import com.piacere.selfhealing.backend.service.dto.SelfHealingResponseDTO; import com.piacere.selfhealing.backend.service.mapper.SelfHealingMessageMapper; import com.piacere.selfhealing.backend.service.mapper.SelfHealingResponseMapper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.yaml.snakeyaml.Yaml; + +import javax.xml.bind.DatatypeConverter; +import java.net.URISyntaxException; +import java.time.Instant; +import java.util.LinkedHashMap; +import java.util.Map; @RestController @RequestMapping("/api/self-healing") @@ -31,20 +42,28 @@ public class SelfHealingResource { private final EventTypeRepository typeRepository; private final SelfHealingMessageMapper selfHealingMessageMapper; private final SelfHealingResponseMapper selfHealingResponseMapper; + private final ObjectKeepService objectKeepService; + private final DeploymentResource deploymentResource; + private final DeploymentRepository deploymentRepository; + private final SelfHealingMessageResource selfHealingMessageResource; public SelfHealingResource(SelfHealingMessageProducer selfHealingMessageProducer, SelfHealingMessageRepository selfHealingMessageRepository, EventTypeRepository typeRepository, SelfHealingMessageMapper selfHealingMessageMapper, - SelfHealingResponseMapper selfHealingResponseMapper) { + SelfHealingResponseMapper selfHealingResponseMapper, ObjectKeepService objectKeepService, DeploymentResource deploymentResource, DeploymentRepository deploymentRepository, SelfHealingMessageResource selfHealingMessageResource) { this.selfHealingMessageProducer = selfHealingMessageProducer; this.selfHealingMessageRepository = selfHealingMessageRepository; this.typeRepository = typeRepository; this.selfHealingMessageMapper = selfHealingMessageMapper; this.selfHealingResponseMapper = selfHealingResponseMapper; + this.objectKeepService = objectKeepService; + this.deploymentResource = deploymentResource; + this.deploymentRepository = deploymentRepository; + this.selfHealingMessageResource = selfHealingMessageResource; } /** * Event notify to self healing component - * + * * @param SelfHealingMessageDTO the self healing message to send * @return self healing response */ @@ -55,7 +74,6 @@ public class SelfHealingResource { SelfHealingMessage selfHealingMessage = selfHealingMessageMapper.toEntity(selfHealingMessageDto); selfHealingMessage.setTimestamp(Instant.now()); selfHealingMessage.setStatus(Status.PENDING); - selfHealingMessage.setError(""); EventType eventType = null; try { eventType = this.typeRepository.findByCode(selfHealingMessage.getEventType().getCode()); @@ -67,13 +85,190 @@ public class SelfHealingResource { selfHealingMessage.setError(e.getMessage()); } selfHealingMessage.setEventType(eventType); - selfHealingMessage = this.selfHealingMessageRepository.saveAndFlush(selfHealingMessage); - if (selfHealingMessage.getStatus()!=Status.ERROR) { - selfHealingMessageProducer.notify(selfHealingMessage); + + try { + selfHealingMessageResource.createSelfHealingMessage(selfHealingMessage); + } catch (URISyntaxException e) { + throw new RuntimeException(e); } + SelfHealingResponseDTO selfHealingResponseDTO = this.selfHealingResponseMapper.toDto(selfHealingMessage); log.info("Self-healing rest service response (ack): {}", selfHealingResponseDTO); log.info("NOTIFY SELF-HEALING REST SERVICE FINISHED------------------------------------------------------"); return selfHealingResponseDTO; } + + /** + * Event webhook to self healing component + * + * @param JsonObject the webhook payload received from grafana + * @return self healing response + */ + @PostMapping("/grafana-webhooks") + public ResponseEntity webhook(@RequestBody LinkedHashMap alertMessage) { + log.info("WEBHOOK SELF-HEALING REST SERVICE START----------------------------------------------------------"); + Gson gson = new Gson(); + JsonObject jsonObject = gson.toJsonTree(alertMessage).getAsJsonObject(); + String prettyJson = gson.toJson(jsonObject); + objectKeepService.store(prettyJson); + + // if status is resolved we skip the alert + String status = jsonObject.get("status").getAsString(); + if (status.equals("resolved")) { + log.debug("Skipping alert with status resolved"); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + // we iterate over the alerts in the alertMessage + JsonArray alerts = jsonObject.getAsJsonArray("alerts"); + if ( alerts != null ) { + for (JsonElement alertElement : alerts) { + JsonObject alert = alertElement.getAsJsonObject(); + String fingerprint = alert.getAsJsonObject().get("fingerprint").getAsString(); + + JsonElement jsonElementEventType = alert.getAsJsonObject().get("labels").getAsJsonObject().get("event_type"); + if (jsonElementEventType == null) { + log.debug("Skipping alert with fingerprint {} because event_type is null", fingerprint); + log.debug("Alert details: {}", alert); + continue; + } + + String eventTypeString = alert.getAsJsonObject().get("labels").getAsJsonObject().get("event_type").getAsString(); + EventType eventType = this.typeRepository.findByCode(eventTypeString); + if (eventType == null) { + log.debug("Skipping alert with fingerprint {} because event_type {} is not found", fingerprint, eventTypeString); + log.debug("Alert details: {}", alert); + continue; + } + + JsonObject inputsLabels = alert.getAsJsonObject().get("labels").getAsJsonObject(); + if (inputsLabels == null) { + log.debug("Skipping alert with fingerprint {} because inputs_labels is null", fingerprint); + log.debug("Alert details: {}", alert); + continue; + } + + // create labels tuples array minus event_type + JsonObject labels = new JsonObject(); + for (Map.Entry<String, JsonElement> entry : inputsLabels.entrySet()) { + if (!entry.getKey().equals("event_type") && + !entry.getKey().equals("alertname") && + !entry.getKey().equals("category") && + !entry.getKey().equals("deployment_id") && + !entry.getKey().equals("grafana_folder")) { + labels.add(entry.getKey(), entry.getValue()); + } + } + + JsonObject error = new JsonObject(); + error.add("labels", labels); + + JsonObject annotations = alert.getAsJsonObject().get("annotations").getAsJsonObject(); + JsonElement jsonElementAlertValue = annotations.get("alert_values"); + // check if alert_values is present if present process it + if (jsonElementAlertValue == null) { + JsonElement deploymentIdElement = inputsLabels.get("deployment_id"); + if (inputsLabels == null) { + log.debug("Skipping alert with fingerprint {} because deployment_id is null", fingerprint); + log.debug("Alert details: {}", alert); + continue; + } + labels.add("deployment_id", deploymentIdElement); + SelfHealingMessage selfHealingMessage = new SelfHealingMessage(); + selfHealingMessage.setEventType(eventType); + //selfHealingMessage.setId(12121212L); + selfHealingMessage.setStatus(Status.PENDING); + selfHealingMessage.setOrigin("pm-grafana"); + selfHealingMessage.setError(error.toString()); + selfHealingMessage.setDeploymentId(deploymentIdElement.getAsString()); + selfHealingMessage.setTimestamp(Instant.now()); + try { + selfHealingMessageResource.createSelfHealingMessage(selfHealingMessage); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } else { + // process alert_value + String alertValueYamlString = jsonElementAlertValue.getAsString(); + Yaml yaml = new Yaml(); + LinkedHashMap alertValueYaml = null; + try { + alertValueYaml = yaml.load(alertValueYamlString); + } catch (Exception e) { + log.debug("Skipping alert with fingerprint {} because alert_value is not a valid yaml", fingerprint); + log.debug("Alert details: {}", alert); + continue; + } + JsonObject internalAlertsJson = gson.toJsonTree(alertValueYaml).getAsJsonObject(); + JsonElement internalAlerts = internalAlertsJson.get("alerts"); + if (internalAlerts == null) { + log.debug("Skipping alert with fingerprint {} because alerts is null", fingerprint); + log.debug("Alert details: {}", alert); + continue; + } + JsonArray alertsArray = internalAlerts.getAsJsonArray(); + for( JsonElement internalAlertElement : alertsArray ) { + JsonObject internalAlert = internalAlertElement.getAsJsonObject(); + JsonElement deploymentIdElement = internalAlert.get("deployment_id"); + if (deploymentIdElement == null) { + log.debug("Skipping alert with fingerprint {} because deployment_id is null", fingerprint); + log.debug("Alert details: {}", alert); + continue; + } + for (Map.Entry<String, JsonElement> entry : internalAlert.entrySet()) { + labels.add(entry.getKey(), entry.getValue()); + } + SelfHealingMessage selfHealingMessage = new SelfHealingMessage(); + selfHealingMessage.setEventType(eventType); + selfHealingMessage.setStatus(Status.PENDING); + selfHealingMessage.setOrigin("pm-grafana"); + selfHealingMessage.setError(error.toString()); + selfHealingMessage.setDeploymentId(deploymentIdElement.getAsString()); + selfHealingMessage.setTimestamp(Instant.now()); + + try { + selfHealingMessageResource.createSelfHealingMessage(selfHealingMessage); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + log.debug("Alert value: {}", internalAlerts); + } + } + } + + log.info("WEBHOOK SELF-HEALING REST SERVICE FINISHED------------------------------------------------------"); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PostMapping("/deployments") + public ResponseEntity deployment(@RequestBody DeploymentDTO deploymentDTO) { + log.info("Creating Deployment Resource: {}", deploymentDTO.getDeploymentId()); + + Deployment deployment = new Deployment(); + deployment.setDeploymentId(deploymentDTO.getDeploymentId()); + byte[] deploymentBundle = DatatypeConverter.parseBase64Binary(deploymentDTO.getDeploymentBundle().getBase64()); + deployment.bundle(deploymentBundle); + deployment.bundleContentType("application/zip"); + + try { + deploymentResource.createDeployment(deployment); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @DeleteMapping("/deployments/{deploymentId}") + public ResponseEntity deleteDeployment(@PathVariable String deploymentId) { + log.info("Deleting Deployment Resource: {}", deploymentId); + Deployment deployment = deploymentRepository.getByDeploymentId(deploymentId); + if (deployment == null) { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + deploymentResource.deleteDeployment(deployment.getId()); + + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } } diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/ShBackendKafkaResource.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/ShBackendKafkaResource.java new file mode 100644 index 0000000000000000000000000000000000000000..48d1dbcd3135ab4fbf3c64837d333bdc2d70ed11 --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/ShBackendKafkaResource.java @@ -0,0 +1,91 @@ +package com.piacere.selfhealing.backend.web.rest; + +import com.piacere.selfhealing.backend.config.KafkaProperties; +import java.time.Duration; +import java.time.Instant; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import org.apache.kafka.clients.consumer.ConsumerRecord; +import org.apache.kafka.clients.consumer.ConsumerRecords; +import org.apache.kafka.clients.consumer.KafkaConsumer; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.apache.kafka.clients.producer.RecordMetadata; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; + +@RestController +@RequestMapping("/api/sh-backend-kafka") +public class ShBackendKafkaResource { + + private final Logger log = LoggerFactory.getLogger(ShBackendKafkaResource.class); + + private final KafkaProperties kafkaProperties; + private KafkaProducer<String, String> producer; + private ExecutorService sseExecutorService = Executors.newCachedThreadPool(); + + public ShBackendKafkaResource(KafkaProperties kafkaProperties) { + this.kafkaProperties = kafkaProperties; + this.producer = new KafkaProducer<>(kafkaProperties.getProducer().get("selfHealingMessage")); + } + + @PostMapping("/publish/{topic}") + public PublishResult publish(@PathVariable String topic, @RequestParam String message, @RequestParam(required = false) String key) + throws ExecutionException, InterruptedException { + log.debug("REST request to send to Kafka topic {} with key {} the message : {}", topic, key, message); + RecordMetadata metadata = producer.send(new ProducerRecord<>(topic, key, message)).get(); + return new PublishResult(metadata.topic(), metadata.partition(), metadata.offset(), Instant.ofEpochMilli(metadata.timestamp())); + } + + @GetMapping("/consume") + public SseEmitter consume(@RequestParam("topic") List<String> topics, @RequestParam Map<String, String> consumerParams) { + log.debug("REST request to consume records from Kafka topics {}", topics); + Map<String, Object> consumerProps = kafkaProperties.getConsumer().get("selfHealingMessage"); + consumerProps.putAll(consumerParams); + consumerProps.remove("topic"); + + SseEmitter emitter = new SseEmitter(0L); + sseExecutorService.execute(() -> { + KafkaConsumer<String, String> consumer = new KafkaConsumer<>(consumerProps); + emitter.onCompletion(consumer::close); + consumer.subscribe(topics); + boolean exitLoop = false; + while (!exitLoop) { + try { + ConsumerRecords<String, String> records = consumer.poll(Duration.ofSeconds(5)); + for (ConsumerRecord<String, String> record : records) { + emitter.send(record.value()); + } + emitter.send(SseEmitter.event().comment("")); + } catch (Exception ex) { + log.trace("Complete with error {}", ex.getMessage(), ex); + emitter.completeWithError(ex); + exitLoop = true; + } + } + consumer.close(); + emitter.complete(); + }); + return emitter; + } + + private static class PublishResult { + + public final String topic; + public final int partition; + public final long offset; + public final Instant timestamp; + + private PublishResult(String topic, int partition, long offset, Instant timestamp) { + this.topic = topic; + this.partition = partition; + this.offset = offset; + this.timestamp = timestamp; + } + } +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/StrategyApplicationResource.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/StrategyApplicationResource.java new file mode 100644 index 0000000000000000000000000000000000000000..e55cbf9e392b9f299d21de9f5cc1dd66eedf5974 --- /dev/null +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/StrategyApplicationResource.java @@ -0,0 +1,189 @@ +package com.piacere.selfhealing.backend.web.rest; + +import com.piacere.selfhealing.backend.domain.StrategyApplication; +import com.piacere.selfhealing.backend.repository.StrategyApplicationRepository; +import com.piacere.selfhealing.backend.web.rest.errors.BadRequestAlertException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseEntity; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; +import tech.jhipster.web.util.HeaderUtil; +import tech.jhipster.web.util.ResponseUtil; + +/** + * REST controller for managing {@link com.piacere.selfhealing.backend.domain.StrategyApplication}. + */ +@RestController +@RequestMapping("/api") +@Transactional +public class StrategyApplicationResource { + + private final Logger log = LoggerFactory.getLogger(StrategyApplicationResource.class); + + private static final String ENTITY_NAME = "shBackendStrategyApplication"; + + @Value("${jhipster.clientApp.name}") + private String applicationName; + + private final StrategyApplicationRepository strategyApplicationRepository; + + public StrategyApplicationResource(StrategyApplicationRepository strategyApplicationRepository) { + this.strategyApplicationRepository = strategyApplicationRepository; + } + + /** + * {@code POST /strategy-applications} : Create a new strategyApplication. + * + * @param strategyApplication the strategyApplication to create. + * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with body the new strategyApplication, or with status {@code 400 (Bad Request)} if the strategyApplication has already an ID. + * @throws URISyntaxException if the Location URI syntax is incorrect. + */ + @PostMapping("/strategy-applications") + public ResponseEntity<StrategyApplication> createStrategyApplication(@RequestBody StrategyApplication strategyApplication) + throws URISyntaxException { + log.debug("REST request to save StrategyApplication : {}", strategyApplication); + if (strategyApplication.getId() != null) { + throw new BadRequestAlertException("A new strategyApplication cannot already have an ID", ENTITY_NAME, "idexists"); + } + StrategyApplication result = strategyApplicationRepository.save(strategyApplication); + return ResponseEntity + .created(new URI("/api/strategy-applications/" + result.getId())) + .headers(HeaderUtil.createEntityCreationAlert(applicationName, true, ENTITY_NAME, result.getId().toString())) + .body(result); + } + + /** + * {@code PUT /strategy-applications/:id} : Updates an existing strategyApplication. + * + * @param id the id of the strategyApplication to save. + * @param strategyApplication the strategyApplication to update. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the updated strategyApplication, + * or with status {@code 400 (Bad Request)} if the strategyApplication is not valid, + * or with status {@code 500 (Internal Server Error)} if the strategyApplication couldn't be updated. + * @throws URISyntaxException if the Location URI syntax is incorrect. + */ + @PutMapping("/strategy-applications/{id}") + public ResponseEntity<StrategyApplication> updateStrategyApplication( + @PathVariable(value = "id", required = false) final Long id, + @RequestBody StrategyApplication strategyApplication + ) throws URISyntaxException { + log.debug("REST request to update StrategyApplication : {}, {}", id, strategyApplication); + if (strategyApplication.getId() == null) { + throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull"); + } + if (!Objects.equals(id, strategyApplication.getId())) { + throw new BadRequestAlertException("Invalid ID", ENTITY_NAME, "idinvalid"); + } + + if (!strategyApplicationRepository.existsById(id)) { + throw new BadRequestAlertException("Entity not found", ENTITY_NAME, "idnotfound"); + } + + StrategyApplication result = strategyApplicationRepository.save(strategyApplication); + return ResponseEntity + .ok() + .headers(HeaderUtil.createEntityUpdateAlert(applicationName, true, ENTITY_NAME, strategyApplication.getId().toString())) + .body(result); + } + + /** + * {@code PATCH /strategy-applications/:id} : Partial updates given fields of an existing strategyApplication, field will ignore if it is null + * + * @param id the id of the strategyApplication to save. + * @param strategyApplication the strategyApplication to update. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the updated strategyApplication, + * or with status {@code 400 (Bad Request)} if the strategyApplication is not valid, + * or with status {@code 404 (Not Found)} if the strategyApplication is not found, + * or with status {@code 500 (Internal Server Error)} if the strategyApplication couldn't be updated. + * @throws URISyntaxException if the Location URI syntax is incorrect. + */ + @PatchMapping(value = "/strategy-applications/{id}", consumes = { "application/json", "application/merge-patch+json" }) + public ResponseEntity<StrategyApplication> partialUpdateStrategyApplication( + @PathVariable(value = "id", required = false) final Long id, + @RequestBody StrategyApplication strategyApplication + ) throws URISyntaxException { + log.debug("REST request to partial update StrategyApplication partially : {}, {}", id, strategyApplication); + if (strategyApplication.getId() == null) { + throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull"); + } + if (!Objects.equals(id, strategyApplication.getId())) { + throw new BadRequestAlertException("Invalid ID", ENTITY_NAME, "idinvalid"); + } + + if (!strategyApplicationRepository.existsById(id)) { + throw new BadRequestAlertException("Entity not found", ENTITY_NAME, "idnotfound"); + } + + Optional<StrategyApplication> result = strategyApplicationRepository + .findById(strategyApplication.getId()) + .map(existingStrategyApplication -> { + if (strategyApplication.getTimestamp() != null) { + existingStrategyApplication.setTimestamp(strategyApplication.getTimestamp()); + } + if (strategyApplication.getSummary() != null) { + existingStrategyApplication.setSummary(strategyApplication.getSummary()); + } + if (strategyApplication.getBundle() != null) { + existingStrategyApplication.setBundle(strategyApplication.getBundle()); + } + if (strategyApplication.getBundleContentType() != null) { + existingStrategyApplication.setBundleContentType(strategyApplication.getBundleContentType()); + } + + return existingStrategyApplication; + }) + .map(strategyApplicationRepository::save); + + return ResponseUtil.wrapOrNotFound( + result, + HeaderUtil.createEntityUpdateAlert(applicationName, true, ENTITY_NAME, strategyApplication.getId().toString()) + ); + } + + /** + * {@code GET /strategy-applications} : get all the strategyApplications. + * + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and the list of strategyApplications in body. + */ + @GetMapping("/strategy-applications") + public List<StrategyApplication> getAllStrategyApplications() { + log.debug("REST request to get all StrategyApplications"); + return strategyApplicationRepository.findAll(); + } + + /** + * {@code GET /strategy-applications/:id} : get the "id" strategyApplication. + * + * @param id the id of the strategyApplication to retrieve. + * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the strategyApplication, or with status {@code 404 (Not Found)}. + */ + @GetMapping("/strategy-applications/{id}") + public ResponseEntity<StrategyApplication> getStrategyApplication(@PathVariable Long id) { + log.debug("REST request to get StrategyApplication : {}", id); + Optional<StrategyApplication> strategyApplication = strategyApplicationRepository.findById(id); + return ResponseUtil.wrapOrNotFound(strategyApplication); + } + + /** + * {@code DELETE /strategy-applications/:id} : delete the "id" strategyApplication. + * + * @param id the id of the strategyApplication to delete. + * @return the {@link ResponseEntity} with status {@code 204 (NO_CONTENT)}. + */ + @DeleteMapping("/strategy-applications/{id}") + public ResponseEntity<Void> deleteStrategyApplication(@PathVariable Long id) { + log.debug("REST request to delete StrategyApplication : {}", id); + strategyApplicationRepository.deleteById(id); + return ResponseEntity + .noContent() + .headers(HeaderUtil.createEntityDeletionAlert(applicationName, true, ENTITY_NAME, id.toString())) + .build(); + } +} diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/StrategyResource.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/StrategyResource.java index 26aac790d75326823a7f6be1ead2c489c9f974ee..28b6304d48d8095bd4f0ad2b769a91459b56e222 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/StrategyResource.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/StrategyResource.java @@ -1,31 +1,21 @@ package com.piacere.selfhealing.backend.web.rest; +import com.piacere.selfhealing.backend.domain.Strategy; +import com.piacere.selfhealing.backend.repository.StrategyRepository; +import com.piacere.selfhealing.backend.web.rest.errors.BadRequestAlertException; import java.net.URI; import java.net.URISyntaxException; import java.util.List; +import java.util.Objects; import java.util.Optional; - import javax.validation.Valid; import javax.validation.constraints.NotNull; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PatchMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.piacere.selfhealing.backend.domain.Strategy; -import com.piacere.selfhealing.backend.service.StrategyService; - +import org.springframework.web.bind.annotation.*; import tech.jhipster.web.util.HeaderUtil; import tech.jhipster.web.util.ResponseUtil; @@ -44,10 +34,10 @@ public class StrategyResource { @Value("${jhipster.clientApp.name}") private String applicationName; - private final StrategyService strategyService; + private final StrategyRepository strategyRepository; - public StrategyResource(StrategyService strategyService) { - this.strategyService = strategyService; + public StrategyResource(StrategyRepository strategyRepository) { + this.strategyRepository = strategyRepository; } /** @@ -60,10 +50,13 @@ public class StrategyResource { @PostMapping("/strategies") public ResponseEntity<Strategy> createStrategy(@Valid @RequestBody Strategy strategy) throws URISyntaxException { log.debug("REST request to save Strategy : {}", strategy); - Strategy result = strategyService.create(strategy); + if (strategy.getId() != null) { + throw new BadRequestAlertException("A new strategy cannot already have an ID", ENTITY_NAME, "idexists"); + } + Strategy result = strategyRepository.save(strategy); return ResponseEntity .created(new URI("/api/strategies/" + result.getId())) - .headers(HeaderUtil.createEntityCreationAlert(applicationName, false, ENTITY_NAME, result.getId().toString())) + .headers(HeaderUtil.createEntityCreationAlert(applicationName, true, ENTITY_NAME, result.getId().toString())) .body(result); } @@ -83,10 +76,21 @@ public class StrategyResource { @Valid @RequestBody Strategy strategy ) throws URISyntaxException { log.debug("REST request to update Strategy : {}, {}", id, strategy); - Strategy result = strategyService.update(id, strategy); + if (strategy.getId() == null) { + throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull"); + } + if (!Objects.equals(id, strategy.getId())) { + throw new BadRequestAlertException("Invalid ID", ENTITY_NAME, "idinvalid"); + } + + if (!strategyRepository.existsById(id)) { + throw new BadRequestAlertException("Entity not found", ENTITY_NAME, "idnotfound"); + } + + Strategy result = strategyRepository.save(strategy); return ResponseEntity .ok() - .headers(HeaderUtil.createEntityUpdateAlert(applicationName, false, ENTITY_NAME, strategy.getId().toString())) + .headers(HeaderUtil.createEntityUpdateAlert(applicationName, true, ENTITY_NAME, strategy.getId().toString())) .body(result); } @@ -107,10 +111,37 @@ public class StrategyResource { @NotNull @RequestBody Strategy strategy ) throws URISyntaxException { log.debug("REST request to partial update Strategy partially : {}, {}", id, strategy); - Optional<Strategy> result = this.strategyService.patch(id, strategy); + if (strategy.getId() == null) { + throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull"); + } + if (!Objects.equals(id, strategy.getId())) { + throw new BadRequestAlertException("Invalid ID", ENTITY_NAME, "idinvalid"); + } + + if (!strategyRepository.existsById(id)) { + throw new BadRequestAlertException("Entity not found", ENTITY_NAME, "idnotfound"); + } + + Optional<Strategy> result = strategyRepository + .findById(strategy.getId()) + .map(existingStrategy -> { + if (strategy.getCode() != null) { + existingStrategy.setCode(strategy.getCode()); + } + if (strategy.getDescription() != null) { + existingStrategy.setDescription(strategy.getDescription()); + } + if (strategy.getConfiguration() != null) { + existingStrategy.setConfiguration(strategy.getConfiguration()); + } + + return existingStrategy; + }) + .map(strategyRepository::save); + return ResponseUtil.wrapOrNotFound( result, - HeaderUtil.createEntityUpdateAlert(applicationName, false, ENTITY_NAME, strategy.getId().toString()) + HeaderUtil.createEntityUpdateAlert(applicationName, true, ENTITY_NAME, strategy.getId().toString()) ); } @@ -122,7 +153,7 @@ public class StrategyResource { @GetMapping("/strategies") public List<Strategy> getAllStrategies() { log.debug("REST request to get all Strategies"); - return strategyService.findAll(); + return strategyRepository.findAll(); } /** @@ -134,7 +165,7 @@ public class StrategyResource { @GetMapping("/strategies/{id}") public ResponseEntity<Strategy> getStrategy(@PathVariable Long id) { log.debug("REST request to get Strategy : {}", id); - Optional<Strategy> strategy = strategyService.find(id); + Optional<Strategy> strategy = strategyRepository.findById(id); return ResponseUtil.wrapOrNotFound(strategy); } @@ -147,10 +178,10 @@ public class StrategyResource { @DeleteMapping("/strategies/{id}") public ResponseEntity<Void> deleteStrategy(@PathVariable Long id) { log.debug("REST request to delete Strategy : {}", id); - strategyService.delete(id); + strategyRepository.deleteById(id); return ResponseEntity .noContent() - .headers(HeaderUtil.createEntityDeletionAlert(applicationName, false, ENTITY_NAME, id.toString())) + .headers(HeaderUtil.createEntityDeletionAlert(applicationName, true, ENTITY_NAME, id.toString())) .build(); } } diff --git a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/errors/ExceptionTranslator.java b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/errors/ExceptionTranslator.java index 1dcd80a68bacf81226d57dab043c611622a4f3d9..cfe4c0505909b42802342b890e681218da17b80f 100644 --- a/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/errors/ExceptionTranslator.java +++ b/git/sh-backend/src/main/java/com/piacere/selfhealing/backend/web/rest/errors/ExceptionTranslator.java @@ -120,7 +120,7 @@ public class ExceptionTranslator implements ProblemHandling, SecurityAdviceTrait return create( ex, request, - HeaderUtil.createFailureAlert(applicationName, false, ex.getEntityName(), ex.getErrorKey(), ex.getMessage()) + HeaderUtil.createFailureAlert(applicationName, true, ex.getEntityName(), ex.getErrorKey(), ex.getMessage()) ); } diff --git a/git/sh-backend/src/main/resources/ansible_j2_templates/fake_reboot.yaml.j2 b/git/sh-backend/src/main/resources/ansible_j2_templates/fake_reboot.yaml.j2 new file mode 100644 index 0000000000000000000000000000000000000000..db97d60fc782b17276375f84a2fbee030a9c96f8 --- /dev/null +++ b/git/sh-backend/src/main/resources/ansible_j2_templates/fake_reboot.yaml.j2 @@ -0,0 +1,9 @@ +{% raw %}--- +- hosts: servers_for_self_healing_monitoring + tasks: + - name: reboot + lineinfile: + line: "{{ ansible_date_time.iso8601 }}" + path: "{{ ansible_env.HOME}}/fake_reboot" + create: yes{% endraw %} + {{ sh_filter }} diff --git a/git/sh-backend/src/main/resources/ansible_j2_templates/fake_shutdown.yaml.j2 b/git/sh-backend/src/main/resources/ansible_j2_templates/fake_shutdown.yaml.j2 new file mode 100644 index 0000000000000000000000000000000000000000..cf72a3c8166347ce1bca1a475600653f8e9c5b12 --- /dev/null +++ b/git/sh-backend/src/main/resources/ansible_j2_templates/fake_shutdown.yaml.j2 @@ -0,0 +1,9 @@ +{% raw %}--- +- hosts: servers_for_self_healing_monitoring + tasks: + - name: shutdown + lineinfile: + line: "{{ ansible_date_time.iso8601 }}" + path: "{{ ansible_env.HOME}}/fake_shutdown" + create: yes{% endraw %} + {{ sh_filter }} diff --git a/git/sh-backend/src/main/resources/ansible_j2_templates/reboot.yaml.j2 b/git/sh-backend/src/main/resources/ansible_j2_templates/reboot.yaml.j2 new file mode 100644 index 0000000000000000000000000000000000000000..79c98680ab395940c729bbb5eb1760f7df128fb0 --- /dev/null +++ b/git/sh-backend/src/main/resources/ansible_j2_templates/reboot.yaml.j2 @@ -0,0 +1,7 @@ +{% raw %}--- +- hosts: servers_for_self_healing_monitoring + tasks: + - name: reboot + shell: "reboot" + become: true + {{ sh_filter }} diff --git a/git/sh-backend/src/main/resources/ansible_j2_templates/run_playbook_at_assets.yaml.j2 b/git/sh-backend/src/main/resources/ansible_j2_templates/run_playbook_at_assets.yaml.j2 new file mode 100644 index 0000000000000000000000000000000000000000..ee58b3a294bcaa8c79b455183466225b36fc6220 --- /dev/null +++ b/git/sh-backend/src/main/resources/ansible_j2_templates/run_playbook_at_assets.yaml.j2 @@ -0,0 +1,7 @@ +--- +- hosts: servers_for_self_healing_monitoring + tasks: + - meta: noop + +- import_playbook: "../asset/{{ assets_relative_path }}" + {{ sh_filter }} diff --git a/git/sh-backend/src/main/resources/ansible_j2_templates/shutdown.yaml.j2 b/git/sh-backend/src/main/resources/ansible_j2_templates/shutdown.yaml.j2 new file mode 100644 index 0000000000000000000000000000000000000000..df966a7b2d681ab9ba83869837a0b700ff1da9cd --- /dev/null +++ b/git/sh-backend/src/main/resources/ansible_j2_templates/shutdown.yaml.j2 @@ -0,0 +1,7 @@ +{% raw %}--- +- hosts: servers_for_self_healing_monitoring + tasks: + - name: shutdown + shell: shutdown -h now + become: true + {{ sh_filter }} diff --git a/git/sh-backend/src/main/resources/config/application-dev.yml b/git/sh-backend/src/main/resources/config/application-dev.yml index adc3ed339a8afd72affb09a57d94b60f616ccc91..cdba9cc724ab57e37654005dfb6da70d3a80664d 100644 --- a/git/sh-backend/src/main/resources/config/application-dev.yml +++ b/git/sh-backend/src/main/resources/config/application-dev.yml @@ -22,12 +22,63 @@ # pattern: # console: "%d %logger{36}: %blue(%msg%n)" +debug: true + +global: + mysql: + url: ${GLOBAL_MYSQL_URL:mysql://sh-mysql:3306/shBackend?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true} +# Common configuration shared between all applications + password: ${GLOBAL_PASSWORD:admin} + registry: + url: ${GLOBAL_REGISTRY_URL:http://admin:${global.password}@jhipster-registry:8761} + +application: + add-hosts: + sh-kafka: 127.0.0.1 + sh-mysql: 127.0.0.1 + iop.ci.piacere.digital.tecnalia.dev: 172.26.124.151 + dmc.ci.piacere.digital.tecnalia.dev: 172.26.124.151 + icg.ci.piacere.digital.tecnalia.dev: 172.26.124.151 + scanner.xopera.piacere.esilab.org: 172.26.124.155 + + webhook: + keep-last-requests: 10 + strategy: + repeat_not_before: PT24H # https://www.geeksforgeeks.org/duration-parsecharsequence-method-in-java-with-examples/ +# dissable eureka + +prc: + url: http://192.168.56.1:8000 + +iop: + url: https://iop.ci.piacere.digital.tecnalia.dev + +dmc: + url: https://dmc.ci.piacere.digital.tecnalia.dev + +icg: + url: https://icg.ci.piacere.digital.tecnalia.dev + +isr: + url: https://scanner.xopera.piacere.esilab.org + username: ${ISR_USERNAME:admin} + password: ${ISR_PASSWORD:admin} + eureka: - instance: - prefer-ip-address: true client: + enabled: false +# enabled: true + fetch-registry: false + register-with-eureka: false service-url: - defaultZone: http://admin:${jhipster.registry.password}@${shBackend.jhipster.registry.host}/eureka/ + defaultZone: ${global.registry.url}/eureka/ + instance: + # not sure the reason for this + prefer-ip-address: true + +# eureka: +# instance: +# prefer-ip-address: true management: metrics: @@ -36,26 +87,19 @@ management: enabled: false spring: + security: + user: + password: ${global.password} + devtools: restart: enabled: false livereload: enabled: false - cloud: - config: - retry: - initial-interval: 1000 - max-interval: 2000 - max-attempts: 100 - uri: http://admin:${jhipster.registry.password}@${shBackend.jhipster.registry.host}/config - # name of the config server's property source (file.yml) that we want to use - name: shBackend - profile: prod - label: main # toggle to switch to a different version of the configuration as stored in git - # it can be set to any label, branch or commit of the configuration source Git repository + datasource: type: com.zaxxer.hikari.HikariDataSource - url: jdbc:mysql://${shBackend.mysql.host}/shBackend?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true + url: jdbc:${global.mysql.url} username: root password: hikari: @@ -69,7 +113,7 @@ spring: jpa: # Replace by 'prod, faker' to add the faker context and have sample data loaded in production liquibase: - contexts: prod + contexts: prod, startup thymeleaf: cache: true sleuth: @@ -124,7 +168,7 @@ jhipster: time-to-live-seconds: 3600 backup-count: 1 registry: - password: admin + password: ${global.password} security: authentication: jwt: @@ -133,7 +177,7 @@ jhipster: # - In the JHipster Registry (which includes a Spring Cloud Config server) # - In a separate `application-prod.yml` file, in the same folder as your executable JAR file # - In the `JHIPSTER_SECURITY_AUTHENTICATION_JWT_BASE64_SECRET` environment variable - base64-secret: MDczODYyNzM4OThhMmNhYmUwNzk2OTNiYzFlYTQ0ZTJhNzkyMTczZjE2YzMzNWJhZWQ3MTBhNGFlYzU4OTM5MTNhNDU3YmI2NzJjMzMyY2E4ZGM3NWNjYjljZTc5ZjZiZmU0M2FmODExYzMyZDRkNDNiYWFiYzI3Zjk5MGM5YmI= + base64-secret: MjFhOTY5YjFiYjZjZGM0YTlhZjM1OGYwZmU2MjE1ZTJiNTNmM2Q0OTdiMDhmNDQzNjRjZWQyZDM0YmI0YjkwMGI4ZDc0ZGE0MGM3Yzg0M2U2Y2Q0ZDE4MDcwNzc4ODQyMjczOWYyODNlY2RmOTQzNGQzOTc3NDc0MDdkNjlkN2I= # Token is valid 24 hours token-validity-in-seconds: 86400 token-validity-in-seconds-for-remember-me: 2592000 @@ -155,3 +199,25 @@ jhipster: # application: +kafka: + bootstrap.servers: sh-kafka:9092 + polling.timeout: 100000 + # https://www.conduktor.io/kafka/kafka-consumer-important-settings-poll-and-internal-threads-behavior/ + consumer: + selfHealingMessage: + enabled: true + '[key.deserializer]': org.apache.kafka.common.serialization.StringDeserializer + '[value.deserializer]': com.piacere.selfhealing.backend.serde.SelfHealingMessageDeserializer + '[group.id]': sh-self-healing + '[auto.offset.reset]': earliest + '[max.poll.interval.ms]': 2000000 + '[max.poll.records]': 10 + '[session.timeout.ms]': 300000 + + producer: + selfHealingMessage: + enabled: true + '[key.serializer]': org.apache.kafka.common.serialization.StringSerializer + '[value.serializer]': com.piacere.selfhealing.backend.serde.SelfHealingMessageSerializer + topic: + selfHealingMessage: queuing.sh_self_healing.self_healing_message diff --git a/git/sh-backend/src/main/resources/config/application-prod.yml b/git/sh-backend/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000000000000000000000000000000000000..7e0ff0bb81daf13e4465aba57fce650a8974177e --- /dev/null +++ b/git/sh-backend/src/main/resources/config/application-prod.yml @@ -0,0 +1,145 @@ +# =================================================================== +# Spring Boot configuration for the "prod" profile. +# +# This configuration overrides the application.yml file. +# +# More information on profiles: https://www.jhipster.tech/profiles/ +# More information on configuration properties: https://www.jhipster.tech/common-application-properties/ +# =================================================================== + +# =================================================================== +# Standard Spring Boot properties. +# Full reference is available at: +# http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html +# =================================================================== + +logging: + level: + ROOT: INFO + tech.jhipster: INFO + com.piacere.selfhealing.backend: INFO + +eureka: + instance: + prefer-ip-address: true + client: + service-url: + defaultZone: ${global.registry.url}/eureka/ + +management: + metrics: + export: + prometheus: + enabled: false + +spring: + devtools: + restart: + enabled: false + livereload: + enabled: false + cloud: + config: + retry: + initial-interval: 1000 + max-interval: 2000 + max-attempts: 100 + datasource: + type: com.zaxxer.hikari.HikariDataSource + url: jdbc:mysql://localhost:3306/shBackend?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true + username: root + password: + hikari: + poolName: Hikari + auto-commit: false + data-source-properties: + cachePrepStmts: true + prepStmtCacheSize: 250 + prepStmtCacheSqlLimit: 2048 + useServerPrepStmts: true + jpa: + # Replace by 'prod, faker' to add the faker context and have sample data loaded in production + liquibase: + contexts: prod, startup + thymeleaf: + cache: true + sleuth: + sampler: + probability: 1 # report 100% of traces + zipkin: # Use the "zipkin" Maven profile to have the Spring Cloud Zipkin dependencies + base-url: http://localhost:9411 + enabled: false + locator: + discovery: + enabled: true + +# =================================================================== +# To enable TLS in production, generate a certificate using: +# keytool -genkey -alias shbackend -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650 +# +# You can also use Let's Encrypt: +# https://maximilian-boehm.com/hp2121/Create-a-Java-Keystore-JKS-from-Let-s-Encrypt-Certificates.htm +# +# Then, modify the server.ssl properties so your "server" configuration looks like: +# +# server: +# port: 443 +# ssl: +# key-store: classpath:config/tls/keystore.p12 +# key-store-password: password +# key-store-type: PKCS12 +# key-alias: selfsigned +# # The ciphers suite enforce the security by deactivating some old and deprecated SSL cipher, this list was tested against SSL Labs (https://www.ssllabs.com/ssltest/) +# ciphers: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 ,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 ,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,TLS_RSA_WITH_CAMELLIA_128_CBC_SHA +# =================================================================== +server: + port: 8081 + shutdown: graceful # see https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-graceful-shutdown + compression: + enabled: true + mime-types: text/html,text/xml,text/plain,text/css, application/javascript, application/json + min-response-size: 1024 + +# =================================================================== +# JHipster specific properties +# +# Full reference is available at: https://www.jhipster.tech/common-application-properties/ +# =================================================================== + +jhipster: + http: + cache: # Used by the CachingHttpHeadersFilter + timeToLiveInDays: 1461 + cache: # Cache configuration + hazelcast: # Hazelcast distributed cache + time-to-live-seconds: 3600 + backup-count: 1 + security: + authentication: + jwt: + # This token must be encoded using Base64 and be at least 256 bits long (you can type `openssl rand -base64 64` on your command line to generate a 512 bits one) + # As this is the PRODUCTION configuration, you MUST change the default key, and store it securely: + # - In the JHipster Registry (which includes a Spring Cloud Config server) + # - In a separate `application-prod.yml` file, in the same folder as your executable JAR file + # - In the `JHIPSTER_SECURITY_AUTHENTICATION_JWT_BASE64_SECRET` environment variable + base64-secret: MDBhMjI4YTczOWZlZjFhOTMzMDMyNmI1OGFiODViZjFkMzlkMzI1ZDJjZmNiOGM1YmVlNDJjNDhkNDQ3Mzk4YjEyZmIxZmYzODRhMWZmMDE0MDZlYjViOTNlNjk1Y2I1M2ZjYWQ3NmJkOGZlOWVhNDRjZTZkODgyZDNlOWRjZDI= + # Token is valid 24 hours + token-validity-in-seconds: 86400 + token-validity-in-seconds-for-remember-me: 2592000 + logging: + use-json-format: false # By default, logs are not in Json format + logstash: # Forward logs to logstash over a socket, used by LoggingConfiguration + enabled: false + host: localhost + port: 5000 + queue-size: 512 +# =================================================================== +# Application specific properties +# Add your own application properties here, see the ApplicationProperties class +# to have type-safe configuration, like in the JHipsterProperties above +# +# More documentation is available at: +# https://www.jhipster.tech/common-application-properties/ +# =================================================================== + +# application: diff --git a/git/sh-backend/src/main/resources/config/application.yml b/git/sh-backend/src/main/resources/config/application.yml index a7ad3a9d07bac21f820d2c9e6beef390cec337a3..abf83337dff6c0b4c424e6b0e1811b421e1c2c94 100644 --- a/git/sh-backend/src/main/resources/config/application.yml +++ b/git/sh-backend/src/main/resources/config/application.yml @@ -14,30 +14,31 @@ # http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html # =================================================================== -eureka: - client: - enabled: true - healthcheck: - enabled: true - fetch-registry: true - register-with-eureka: true - instance-info-replication-interval-seconds: 10 - registry-fetch-interval-seconds: 10 - instance: - appname: shBackend - instanceId: shBackend:${spring.application.instance-id:${random.value}} - lease-renewal-interval-in-seconds: 5 - lease-expiration-duration-in-seconds: 10 - status-page-url-path: ${management.endpoints.web.base-path}/info - health-check-url-path: ${management.endpoints.web.base-path}/health - metadata-map: - zone: primary # This is needed for the load balancer - profile: ${spring.profiles.active} - version: #project.version# - git-version: ${git.commit.id.describe:} - git-commit: ${git.commit.id.abbrev:} - git-branch: ${git.branch:} - context-path: ${server.servlet.context-path:} +# eureka: +# client: +# enabled: true +# healthcheck: +# enabled: true +# fetch-registry: true +# register-with-eureka: true +# instance-info-replication-interval-seconds: 10 +# registry-fetch-interval-seconds: 10 +# instance: +# appname: shBackend +# instanceId: shBackend:${spring.application.instance-id:${random.value}} +# lease-renewal-interval-in-seconds: 5 +# lease-expiration-duration-in-seconds: 10 +# status-page-url-path: ${management.endpoints.web.base-path}/info +# health-check-url-path: ${management.endpoints.web.base-path}/health +# metadata-map: +# zone: primary # This is needed for the load balancer +# profile: ${spring.profiles.active} +# version: #project.version# +# git-version: ${git.commit.id.describe:} +# git-commit: ${git.commit.id.abbrev:} +# git-branch: ${git.branch:} +# context-path: ${server.servlet.context-path:} + feign: circuitbreaker: enabled: true diff --git a/git/sh-backend/src/main/resources/config/bootstrap-dev.yml b/git/sh-backend/src/main/resources/config/bootstrap-dev.yml new file mode 100644 index 0000000000000000000000000000000000000000..7e3c34e951dfb93b65499cd10bc81863e2293ec4 --- /dev/null +++ b/git/sh-backend/src/main/resources/config/bootstrap-dev.yml @@ -0,0 +1,9 @@ +# =================================================================== +# Spring Cloud Config bootstrap configuration for the "dev" profile +# In prod profile, properties will be overwritten by the ones defined in bootstrap-prod.yml +# =================================================================== + +spring: + cloud: + config: + enabled: false diff --git a/git/sh-backend/src/main/resources/config/bootstrap-prod.yml b/git/sh-backend/src/main/resources/config/bootstrap-prod.yml index 29c0b4de9cfedd1f0b829a605cc66ae784ba87dd..7d6a82640fbb2855914698d35556de4d924c0600 100644 --- a/git/sh-backend/src/main/resources/config/bootstrap-prod.yml +++ b/git/sh-backend/src/main/resources/config/bootstrap-prod.yml @@ -3,12 +3,6 @@ # In prod profile, properties will be overwritten by the ones defined in bootstrap-prod.yml # =================================================================== -global: - password: ${GLOBAL_PASSWORD:admin} - registry: - url: ${GLOBAL_REGISTRY_URL:http://admin:${global.password}@jhipster-registry:8761} - # GBE we create this extra variable because eureka.client.service-url.defaultZone cannot be stablished using environment variables because is cammelcase https://github.com/spring-cloud/spring-cloud-netflix/issues/2541 - spring: cloud: config: diff --git a/git/sh-backend/src/main/resources/config/bootstrap.yml b/git/sh-backend/src/main/resources/config/bootstrap.yml index 8edb418d22c03a25da98399d99ec20aef3dd207f..89453a0ccb13db12411286e4cf0175939978f973 100644 --- a/git/sh-backend/src/main/resources/config/bootstrap.yml +++ b/git/sh-backend/src/main/resources/config/bootstrap.yml @@ -6,5 +6,5 @@ global: password: ${GLOBAL_PASSWORD:admin} registry: - url: http://admin:${global.password}@localhost:8761 + url: ${GLOBAL_REGISTRY_URL:http://admin:${global.password}@jhipster-registry:8761} # GBE we create this extra variable because eureka.client.service-url.defaultZone cannot be stablished using environment variables because is cammelcase https://github.com/spring-cloud/spring-cloud-netflix/issues/2541 diff --git a/git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090039_added_entity_constraints_SelfHealingResponse.xml b/git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090039_added_entity_constraints_SelfHealingResponse.xml deleted file mode 100644 index d2809d74f6566786b6affeb83c9b7960a9aea06b..0000000000000000000000000000000000000000 --- a/git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090039_added_entity_constraints_SelfHealingResponse.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<databaseChangeLog - xmlns="http://www.liquibase.org/xml/ns/dbchangelog" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.4.xsd"> - <!-- - Added the constraints for entity SelfHealingResponse. - --> - <changeSet id="20211028090039-2" author="jhipster"> - - <addForeignKeyConstraint baseColumnNames="self_healing_message_id" - baseTableName="self_healing_response" - constraintName="fk_self_healing_response__self_healing_message_id" - referencedColumnNames="id" - referencedTableName="self_healing_message"/> - </changeSet> -</databaseChangeLog> diff --git a/git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090036_added_entity_SelfHealingMessage.xml b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191541_added_entity_SelfHealingMessage.xml similarity index 83% rename from git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090036_added_entity_SelfHealingMessage.xml rename to git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191541_added_entity_SelfHealingMessage.xml index 4303051d5e1b9ed660b670ab9589f58484190781..ecafb038765bed6a4a95a34a93d8846256a34dd7 100644 --- a/git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090036_added_entity_SelfHealingMessage.xml +++ b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191541_added_entity_SelfHealingMessage.xml @@ -9,28 +9,28 @@ <!-- Added the entity SelfHealingMessage. --> - <changeSet id="20211028090036-1" author="jhipster"> - <createTable tableName="self_healing_message" remarks="Messages received definition\n\n@author Tecnalia"> + <changeSet id="20221227191541-1" author="jhipster"> + <createTable tableName="self_healing_message" remarks="Messages received definition https:\n\n@author Tecnalia"> <column name="id" type="bigint" autoIncrement="true"> <constraints primaryKey="true" nullable="false"/> </column> + <column name="timestamp" type="${datetimeType}" remarks="message timestamp"> + <constraints nullable="true" /> + </column> <column name="origin" type="varchar(255)" remarks="message origin component"> <constraints nullable="false" /> </column> - <column name="application_id" type="varchar(255)" remarks="id of app related to message"> - <constraints nullable="true" /> - </column> - <column name="timestamp" type="${datetimeType}" remarks="message timestamp"> + <column name="deployment_id" type="varchar(255)" remarks="id of app related to message"> <constraints nullable="true" /> </column> <column name="status" type="varchar(255)" remarks="status of the message"> <constraints nullable="true" /> </column> - <column name="error" type="varchar(255)" remarks="error description if status error"> + <column name="error" type="${clobType}" remarks="error description if status error"> <constraints nullable="true" /> </column> <column name="event_type_id" type="bigint"> - <constraints nullable="false" /> + <constraints nullable="true" /> </column> <!-- jhipster-needle-liquibase-add-column - JHipster will add columns here --> </createTable> @@ -47,19 +47,18 @@ This can be customized by adding or removing 'faker' in the 'spring.liquibase.contexts' Spring Boot configuration key. --> - <changeSet id="20211028090036-1-data" author="jhipster" context="faker"> + <changeSet id="20221227191541-1-data" author="jhipster" context="faker"> <loadData file="config/liquibase/fake-data/self_healing_message.csv" separator=";" tableName="self_healing_message" usePreparedStatements="true"> <column name="id" type="numeric"/> - <column name="origin" type="string"/> - <column name="application_id" type="string"/> <column name="timestamp" type="date"/> + <column name="origin" type="string"/> + <column name="deployment_id" type="string"/> <column name="status" type="string"/> - <column name="error" type="string"/> - <column name="event_type_id" type="numeric"/> + <column name="error" type="clob"/> <!-- jhipster-needle-liquibase-add-loadcolumn - JHipster (and/or extensions) can add load columns here --> </loadData> </changeSet> diff --git a/git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090036_added_entity_constraints_SelfHealingMessage.xml b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191541_added_entity_constraints_SelfHealingMessage.xml similarity index 93% rename from git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090036_added_entity_constraints_SelfHealingMessage.xml rename to git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191541_added_entity_constraints_SelfHealingMessage.xml index df06d2e700569cb93955eb43744a7200a82ae965..24faa5cd3ebe0676a33b036c3ff5a259322e0511 100644 --- a/git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090036_added_entity_constraints_SelfHealingMessage.xml +++ b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191541_added_entity_constraints_SelfHealingMessage.xml @@ -6,7 +6,7 @@ <!-- Added the constraints for entity SelfHealingMessage. --> - <changeSet id="20211028090036-2" author="jhipster"> + <changeSet id="20221227191541-2" author="jhipster"> <addForeignKeyConstraint baseColumnNames="event_type_id" baseTableName="self_healing_message" diff --git a/git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090037_added_entity_EventType.xml b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191641_added_entity_EventType.xml similarity index 62% rename from git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090037_added_entity_EventType.xml rename to git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191641_added_entity_EventType.xml index 28411e5688a3043c04be850b8b1acc24d8201b9e..4e4faa8ca8d60286fda5192aa29ad133d16c6ded 100644 --- a/git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090037_added_entity_EventType.xml +++ b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191641_added_entity_EventType.xml @@ -9,13 +9,13 @@ <!-- Added the entity EventType. --> - <changeSet id="20211028090037-1" author="jhipster"> + <changeSet id="20221227191641-1" author="jhipster"> <createTable tableName="event_type" remarks="type of events managed by self-healing\n\n@author Tecnalia"> <column name="id" type="bigint" autoIncrement="true"> <constraints primaryKey="true" nullable="false"/> </column> <column name="code" type="varchar(255)" remarks="event type code"> - <constraints nullable="false" /> + <constraints nullable="false" unique="true" uniqueConstraintName="ux_event_type__code" /> </column> <column name="description" type="varchar(255)" remarks="event type description"> <constraints nullable="true" /> @@ -23,12 +23,38 @@ <column name="strategy_id" type="bigint"> <constraints nullable="true" /> </column> + <column name="deployment_id" type="bigint"> + <constraints nullable="true" /> + </column> <!-- jhipster-needle-liquibase-add-column - JHipster will add columns here --> </createTable> </changeSet> <!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here --> + <!-- + Startup data for the entity Strategy. + - This data can be easily edited using a CSV editor (or even MS Excel) and + is located in the 'src/main/resources/config/liquibase/initial-data' directory + - This data is applied when running with the JHipster 'prod' profile. + This can be customized by adding or removing 'startup' in the 'spring.liquibase.contexts' + Spring Boot configuration key. + --> + + <changeSet id="20221227191641-1-data" author="jhipster" context="startup"> + <loadData + file="config/liquibase/initial-data/event_type.csv" + separator=";" + tableName="event_type" + usePreparedStatements="true"> + <column name="id" type="numeric"/> + <column name="code" type="string"/> + <column name="description" type="string"/> + <column name="strategy_id" type="numeric"/> + <!-- jhipster-needle-liquibase-add-loadcolumn - JHipster (and/or extensions) can add load columns here --> + </loadData> + </changeSet> + <!-- Load sample data generated with Faker.js - This data can be easily edited using a CSV editor (or even MS Excel) and @@ -37,7 +63,7 @@ This can be customized by adding or removing 'faker' in the 'spring.liquibase.contexts' Spring Boot configuration key. --> - <changeSet id="20211028090037-1-data" author="jhipster" context="faker"> + <changeSet id="20221227191641-1-data" author="jhipster" context="faker"> <loadData file="config/liquibase/fake-data/event_type.csv" separator=";" diff --git a/git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090037_added_entity_constraints_EventType.xml b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191641_added_entity_constraints_EventType.xml similarity index 65% rename from git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090037_added_entity_constraints_EventType.xml rename to git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191641_added_entity_constraints_EventType.xml index 02fd00a0fe51d9f3b26950729408ab6eb85dbaa0..94504cd026e96ebc1e53917ceaefd62bfdc83b35 100644 --- a/git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090037_added_entity_constraints_EventType.xml +++ b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191641_added_entity_constraints_EventType.xml @@ -6,12 +6,18 @@ <!-- Added the constraints for entity EventType. --> - <changeSet id="20211028090037-2" author="jhipster"> + <changeSet id="20221227191641-2" author="jhipster"> <addForeignKeyConstraint baseColumnNames="strategy_id" baseTableName="event_type" constraintName="fk_event_type__strategy_id" referencedColumnNames="id" referencedTableName="strategy"/> + + <addForeignKeyConstraint baseColumnNames="deployment_id" + baseTableName="event_type" + constraintName="fk_event_type__deployment_id" + referencedColumnNames="id" + referencedTableName="deployment"/> </changeSet> </databaseChangeLog> diff --git a/git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090038_added_entity_Strategy.xml b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191741_added_entity_Strategy.xml similarity index 59% rename from git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090038_added_entity_Strategy.xml rename to git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191741_added_entity_Strategy.xml index f92463721a12bf69b1f6f442fd81bf5fd787b5ea..499835ec78c3192c8a7da546b4a7473c70e5880e 100644 --- a/git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090038_added_entity_Strategy.xml +++ b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191741_added_entity_Strategy.xml @@ -9,18 +9,21 @@ <!-- Added the entity Strategy. --> - <changeSet id="20211028090038-1" author="jhipster"> + <changeSet id="20221227191741-1" author="jhipster"> <createTable tableName="strategy" remarks="strategys managed by self-healing\n\n@author Tecnalia"> <column name="id" type="bigint" autoIncrement="true"> <constraints primaryKey="true" nullable="false"/> </column> <column name="code" type="varchar(255)" remarks="strategy code"> - <constraints nullable="false" /> + <constraints nullable="false" unique="true" uniqueConstraintName="ux_strategy__code" /> </column> <column name="description" type="varchar(255)" remarks="strategy description"> <constraints nullable="true" /> </column> - <column name="bpmn" type="varchar(255)" remarks="business process modelling annotation to propose"> + <column name="configuration" type="${clobType}" remarks="business process modelling annotation to propose"> + <constraints nullable="true" /> + </column> + <column name="deployment_id" type="bigint"> <constraints nullable="true" /> </column> <!-- jhipster-needle-liquibase-add-column - JHipster will add columns here --> @@ -29,6 +32,28 @@ <!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here --> + <!-- + Startup data for the entity Strategy. + - This data can be easily edited using a CSV editor (or even MS Excel) and + is located in the 'src/main/resources/config/liquibase/initial-data' directory + - This data is applied when running with the JHipster 'prod' profile. + This can be customized by adding or removing 'startup' in the 'spring.liquibase.contexts' + Spring Boot configuration key. + --> + <changeSet id="20221227191741-1-data" author="jhipster" context="startup"> + <loadData + file="config/liquibase/initial-data/strategy.csv" + separator=";" + tableName="strategy" + usePreparedStatements="true"> + <column name="id" type="numeric"/> + <column name="code" type="string"/> + <column name="description" type="string"/> + <column name="configuration" type="clob"/> + <!-- jhipster-needle-liquibase-add-loadcolumn - JHipster (and/or extensions) can add load columns here --> + </loadData> + </changeSet> + <!-- Load sample data generated with Faker.js - This data can be easily edited using a CSV editor (or even MS Excel) and @@ -37,7 +62,7 @@ This can be customized by adding or removing 'faker' in the 'spring.liquibase.contexts' Spring Boot configuration key. --> - <changeSet id="20211028090038-1-data" author="jhipster" context="faker"> + <changeSet id="20221227191741-1-data" author="jhipster" context="faker"> <loadData file="config/liquibase/fake-data/strategy.csv" separator=";" @@ -46,7 +71,7 @@ <column name="id" type="numeric"/> <column name="code" type="string"/> <column name="description" type="string"/> - <column name="bpmn" type="string"/> + <column name="configuration" type="clob"/> <!-- jhipster-needle-liquibase-add-loadcolumn - JHipster (and/or extensions) can add load columns here --> </loadData> </changeSet> diff --git a/git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090039_added_entity_SelfHealingResponse.xml b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191841_added_entity_Deployment.xml similarity index 66% rename from git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090039_added_entity_SelfHealingResponse.xml rename to git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191841_added_entity_Deployment.xml index c86b45af533d00c7eb03c88a70f764efef26f871..f506c5dce08951899afbffc2c30055b27a07f9a5 100644 --- a/git/sh-backend/src/main/resources/config/liquibase/changelog/20211028090039_added_entity_SelfHealingResponse.xml +++ b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191841_added_entity_Deployment.xml @@ -7,21 +7,21 @@ http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd"> <!-- - Added the entity SelfHealingResponse. + Added the entity Deployment. --> - <changeSet id="20211028090039-1" author="jhipster"> - <createTable tableName="self_healing_response" remarks="Response messages definition\n\n@author Tecnalia"> + <changeSet id="20221227191841-1" author="jhipster"> + <createTable tableName="deployment" remarks="deployment of self-healing\n\n@author Tecnalia"> <column name="id" type="bigint" autoIncrement="true"> <constraints primaryKey="true" nullable="false"/> </column> - <column name="processed" type="boolean" remarks="message processed ack"> - <constraints nullable="false" /> + <column name="deployment_id" type="varchar(255)" remarks="deployment id"> + <constraints nullable="false" unique="true" uniqueConstraintName="ux_deployment__deployment_id" /> </column> - <column name="error" type="varchar(255)" remarks="error description in case of processed false"> - <constraints nullable="true" /> + <column name="bundle" type="longblob" remarks="information about the deployment zip bundle"> + <constraints nullable="false" /> </column> - <column name="self_healing_message_id" type="bigint"> - <constraints nullable="false" unique="true" uniqueConstraintName="ux_self_healing_response__self_healing_message_id" /> + <column name="bundle_content_type" type="varchar(255)"> + <constraints nullable="false" /> </column> <!-- jhipster-needle-liquibase-add-column - JHipster will add columns here --> </createTable> @@ -37,16 +37,16 @@ This can be customized by adding or removing 'faker' in the 'spring.liquibase.contexts' Spring Boot configuration key. --> - <changeSet id="20211028090039-1-data" author="jhipster" context="faker"> + <changeSet id="20221227191841-1-data" author="jhipster" context="faker"> <loadData - file="config/liquibase/fake-data/self_healing_response.csv" + file="config/liquibase/fake-data/deployment.csv" separator=";" - tableName="self_healing_response" + tableName="deployment" usePreparedStatements="true"> <column name="id" type="numeric"/> - <column name="processed" type="boolean"/> - <column name="error" type="string"/> - <column name="self_healing_message_id" type="numeric"/> + <column name="deployment_id" type="string"/> + <column name="bundle" type="blob"/> + <column name="bundle_content_type" type="string"/> <!-- jhipster-needle-liquibase-add-loadcolumn - JHipster (and/or extensions) can add load columns here --> </loadData> </changeSet> diff --git a/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191941_added_entity_StrategyApplication.xml b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191941_added_entity_StrategyApplication.xml new file mode 100644 index 0000000000000000000000000000000000000000..31473c7abd0860372ba0b602a041868c78bdcfcb --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191941_added_entity_StrategyApplication.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="utf-8"?> +<databaseChangeLog + xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.4.xsd + http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd"> + + <!-- + Added the entity StrategyApplication. + --> + <changeSet id="20221227191941-1" author="jhipster"> + <createTable tableName="strategy_application" remarks="strategyApplication of self-healing\n\n@author Tecnalia"> + <column name="id" type="bigint" autoIncrement="true"> + <constraints primaryKey="true" nullable="false"/> + </column> + <column name="timestamp" type="${datetimeType}" remarks="strategyApplication timestamp"> + <constraints nullable="true" /> + </column> + <column name="summary" type="${clobType}" remarks="json with summary of strategyApplication"> + <constraints nullable="true" /> + </column> + <column name="bundle" type="longblob" remarks="optional bundle with strategyApplication resources"> + <constraints nullable="true" /> + </column> + <column name="bundle_content_type" type="varchar(255)"> + <constraints nullable="true" /> + </column> + <column name="strategy_id" type="bigint"> + <constraints nullable="true" /> + </column> + <column name="deployment_id" type="bigint"> + <constraints nullable="true" /> + </column> + <!-- jhipster-needle-liquibase-add-column - JHipster will add columns here --> + </createTable> + <dropDefaultValue tableName="strategy_application" columnName="timestamp" columnDataType="${datetimeType}"/> + </changeSet> + + <!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here --> + + <!-- + Load sample data generated with Faker.js + - This data can be easily edited using a CSV editor (or even MS Excel) and + is located in the 'src/main/resources/config/liquibase/fake-data' directory + - By default this data is applied when running with the JHipster 'dev' profile. + This can be customized by adding or removing 'faker' in the 'spring.liquibase.contexts' + Spring Boot configuration key. + --> + <changeSet id="20221227191941-1-data" author="jhipster" context="faker"> + <loadData + file="config/liquibase/fake-data/strategy_application.csv" + separator=";" + tableName="strategy_application" + usePreparedStatements="true"> + <column name="id" type="numeric"/> + <column name="timestamp" type="date"/> + <column name="summary" type="clob"/> + <column name="bundle" type="blob"/> + <column name="bundle_content_type" type="string"/> + <!-- jhipster-needle-liquibase-add-loadcolumn - JHipster (and/or extensions) can add load columns here --> + </loadData> + </changeSet> +</databaseChangeLog> diff --git a/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191941_added_entity_constraints_StrategyApplication.xml b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191941_added_entity_constraints_StrategyApplication.xml new file mode 100644 index 0000000000000000000000000000000000000000..475741bc7b31aa54cc3788c10cd8d5848b151cd3 --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/changelog/20221227191941_added_entity_constraints_StrategyApplication.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<databaseChangeLog + xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.4.xsd"> + <!-- + Added the constraints for entity StrategyApplication. + --> + <changeSet id="20221227191941-2" author="jhipster"> + + <addForeignKeyConstraint baseColumnNames="strategy_id" + baseTableName="strategy_application" + constraintName="fk_strategy_application__strategy_id" + referencedColumnNames="id" + referencedTableName="strategy"/> + + <addForeignKeyConstraint baseColumnNames="deployment_id" + baseTableName="strategy_application" + constraintName="fk_strategy_application__deployment_id" + referencedColumnNames="id" + referencedTableName="deployment"/> + </changeSet> +</databaseChangeLog> diff --git a/git/sh-backend/src/main/resources/config/liquibase/changelog/20240102111744_added_entity_constraints_Strategy.xml b/git/sh-backend/src/main/resources/config/liquibase/changelog/20240102111744_added_entity_constraints_Strategy.xml new file mode 100644 index 0000000000000000000000000000000000000000..c8ab87ae05d6636f072ecc333345f15cd9476dce --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/changelog/20240102111744_added_entity_constraints_Strategy.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<databaseChangeLog + xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.4.xsd"> + <!-- + Added the constraints for entity Strategy. + --> + <changeSet id="20240102111744-2" author="jhipster"> + + <addForeignKeyConstraint baseColumnNames="deployment_id" + baseTableName="strategy" + constraintName="fk_strategy__deployment_id" + referencedColumnNames="id" + referencedTableName="deployment"/> + </changeSet> +</databaseChangeLog> diff --git a/git/sh-backend/src/main/resources/config/liquibase/fake-data/blob/hipster.png b/git/sh-backend/src/main/resources/config/liquibase/fake-data/blob/hipster.png new file mode 100644 index 0000000000000000000000000000000000000000..5b7d50756b00d556bd39a082e16e28a041caa150 Binary files /dev/null and b/git/sh-backend/src/main/resources/config/liquibase/fake-data/blob/hipster.png differ diff --git a/git/sh-backend/src/main/resources/config/liquibase/fake-data/blob/hipster.txt b/git/sh-backend/src/main/resources/config/liquibase/fake-data/blob/hipster.txt new file mode 100644 index 0000000000000000000000000000000000000000..3bf9d1e89574d238f33e37a37524604b1706a3f8 --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/fake-data/blob/hipster.txt @@ -0,0 +1 @@ +JHipster is a development platform to generate, develop and deploy Spring Boot + Angular / React / Vue Web applications and Spring microservices. \ No newline at end of file diff --git a/git/sh-backend/src/main/resources/config/liquibase/fake-data/deployment.csv b/git/sh-backend/src/main/resources/config/liquibase/fake-data/deployment.csv new file mode 100644 index 0000000000000000000000000000000000000000..d2bcd3cd84dd3ff2764b3659b508e43bb40867c7 --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/fake-data/deployment.csv @@ -0,0 +1,11 @@ +id;deployment_id;bundle;bundle_content_type +1;Investor black New;../fake-data/blob/hipster.png;image/png +2;Pants;../fake-data/blob/hipster.png;image/png +3;Jewelery;../fake-data/blob/hipster.png;image/png +4;seize Computer;../fake-data/blob/hipster.png;image/png +5;lime Marketing array;../fake-data/blob/hipster.png;image/png +6;Isle morph;../fake-data/blob/hipster.png;image/png +7;circuit;../fake-data/blob/hipster.png;image/png +8;drive contextually-based;../fake-data/blob/hipster.png;image/png +9;Savings;../fake-data/blob/hipster.png;image/png +10;Verde Account Table;../fake-data/blob/hipster.png;image/png diff --git a/git/sh-backend/src/main/resources/config/liquibase/fake-data/self_healing_message.csv b/git/sh-backend/src/main/resources/config/liquibase/fake-data/self_healing_message.csv index 4b59e5fc8f204855a4bbd0af03d54c71e5be6d1e..4f420b849f28df6af61d8263a6380bbae559f32f 100644 --- a/git/sh-backend/src/main/resources/config/liquibase/fake-data/self_healing_message.csv +++ b/git/sh-backend/src/main/resources/config/liquibase/fake-data/self_healing_message.csv @@ -1,11 +1,11 @@ -id;origin;application_id;timestamp;status;error;event_type_id -1;Shore discrete Bike;scalable;2021-10-28T01:55:22;ERROR;Practical;1 -2;Chief hack hacking;architect Dynamic Borders;2021-10-28T05:42:41;PENDING;Western France Cambridgeshire;2 -3;transmit Outdoors harness;primary Helena;2021-10-28T07:55:22;PENDING;up up;3 -4;Light forecast;Baby networks;2021-10-27T18:02:50;ERROR;Integration Practical;4 -5;Chair;Security Engineer;2021-10-27T23:55:08;ERROR;Gloves enterprise Federation;5 -6;invoice mesh cyan;copy;2021-10-28T04:29:32;PENDING;Factors Venezuela;6 -7;systemic Place Accounts;open-source;2021-10-27T22:14:23;PROCESSED;Dakota object-oriented Alley;7 -8;Investor;Secured;2021-10-27T21:11:55;PENDING;gold;8 -9;deposit;bypass Awesome;2021-10-28T07:55:57;PROCESSED;Pants systematic;9 -10;Baby backing;Tuna Handcrafted concept;2021-10-28T08:12:40;PROCESSED;Product;10 +id;timestamp;origin;deployment_id;status;error +1;2023-12-27T02:45:45;navigate interactive;Brand;ERROR;../fake-data/blob/hipster.txt +2;2023-12-27T17:27:50;Executive;Robust programming;PROCESSED;../fake-data/blob/hipster.txt +3;2023-12-27T01:13:12;Sports;Markets;IGNORED;../fake-data/blob/hipster.txt +4;2023-12-26T21:47:54;online Corporate;Western France Cambridgeshire;IGNORED;../fake-data/blob/hipster.txt +5;2023-12-27T00:42:20;Avon maroon open-source;Toys;IGNORED;../fake-data/blob/hipster.txt +6;2023-12-27T18:10:27;Spain;up withdrawal copy;PROCESSED;../fake-data/blob/hipster.txt +7;2023-12-27T08:00:38;invoice;payment Personal Brand;ERROR;../fake-data/blob/hipster.txt +8;2023-12-27T10:14:40;Games;Villages Usability;PENDING;../fake-data/blob/hipster.txt +9;2023-12-27T10:10:13;protocol orange enterprise;capacitor invoice;PROCESSED;../fake-data/blob/hipster.txt +10;2023-12-27T05:46:54;cyan;copy;PENDING;../fake-data/blob/hipster.txt diff --git a/git/sh-backend/src/main/resources/config/liquibase/fake-data/self_healing_response.csv b/git/sh-backend/src/main/resources/config/liquibase/fake-data/self_healing_response.csv deleted file mode 100644 index 6e52916d069a8c3bc7c71c2e9d56487904d0980c..0000000000000000000000000000000000000000 --- a/git/sh-backend/src/main/resources/config/liquibase/fake-data/self_healing_response.csv +++ /dev/null @@ -1,11 +0,0 @@ -id;processed;error;self_healing_message_id -1;false;Senior National content;1 -2;true;implement De-engineered;2 -3;true;6th;3 -4;false;magenta Bike Avon;4 -5;true;Buckinghamshire Pizza granular;5 -6;true;indexing Bacon;6 -7;true;input calculating;7 -8;true;Unbranded Industrial;8 -9;false;zero Franc bus;9 -10;true;alliance Intelligent Pants;10 diff --git a/git/sh-backend/src/main/resources/config/liquibase/fake-data/strategy.csv b/git/sh-backend/src/main/resources/config/liquibase/fake-data/strategy.csv index ad897e19c4313a205b8859e8d8110f8589c78c06..5a572d838d8a8fff37d740defc241ded17e11ddc 100644 --- a/git/sh-backend/src/main/resources/config/liquibase/fake-data/strategy.csv +++ b/git/sh-backend/src/main/resources/config/liquibase/fake-data/strategy.csv @@ -1,11 +1,11 @@ -id;code;description;bpmn -1;Investor;Guyana Auto Assistant;Industrial Health -2;Brand sensor;Concrete CSS;boliviano -3;productize Public-key;Illinois Polynesia Platinum;Music Montserrat Sports -4;generating Berkshire;Brooks COM Tuna;Sausages Plastic -5;Fresh backing;Security;context-sensitive -6;Toys Loan;Kids blockchains;Regional -7;back-end;Iceland solution-oriented Peso;Hat -8;Buckinghamshire Sausages;architect Directives;Internal Cambridgeshire -9;empowering Plastic Business-focused;application Sports;high-level mobile -10;Gorgeous copying;online;Secured Dollar +id;code;description;configuration +1;Investor;Guyana Auto Assistant;../fake-data/blob/hipster.txt +2;Industrial Health;Brand sensor;../fake-data/blob/hipster.txt +3;Concrete CSS;boliviano;../fake-data/blob/hipster.txt +4;productize Public-key;Illinois Polynesia Platinum;../fake-data/blob/hipster.txt +5;Music Montserrat Sports;generating Berkshire;../fake-data/blob/hipster.txt +6;Brooks COM Tuna;Sausages Plastic;../fake-data/blob/hipster.txt +7;Fresh backing;Security;../fake-data/blob/hipster.txt +8;context-sensitive;Toys Loan;../fake-data/blob/hipster.txt +9;Kids blockchains;Regional;../fake-data/blob/hipster.txt +10;back-end;Iceland solution-oriented Peso;../fake-data/blob/hipster.txt diff --git a/git/sh-backend/src/main/resources/config/liquibase/fake-data/strategy_application.csv b/git/sh-backend/src/main/resources/config/liquibase/fake-data/strategy_application.csv new file mode 100644 index 0000000000000000000000000000000000000000..54b1aac6e49fe547f38fd31336d08b0a3a55b99b --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/fake-data/strategy_application.csv @@ -0,0 +1,11 @@ +id;timestamp;summary;bundle;bundle_content_type +1;2024-01-01T16:00:18;../fake-data/blob/hipster.txt;../fake-data/blob/hipster.png;image/png +2;2024-01-01T14:03:39;../fake-data/blob/hipster.txt;../fake-data/blob/hipster.png;image/png +3;2024-01-02T10:49:44;../fake-data/blob/hipster.txt;../fake-data/blob/hipster.png;image/png +4;2024-01-01T19:48:10;../fake-data/blob/hipster.txt;../fake-data/blob/hipster.png;image/png +5;2024-01-02T09:33:41;../fake-data/blob/hipster.txt;../fake-data/blob/hipster.png;image/png +6;2024-01-02T07:27:01;../fake-data/blob/hipster.txt;../fake-data/blob/hipster.png;image/png +7;2024-01-01T18:46:32;../fake-data/blob/hipster.txt;../fake-data/blob/hipster.png;image/png +8;2024-01-01T21:16:34;../fake-data/blob/hipster.txt;../fake-data/blob/hipster.png;image/png +9;2024-01-02T05:17:36;../fake-data/blob/hipster.txt;../fake-data/blob/hipster.png;image/png +10;2024-01-02T02:03:13;../fake-data/blob/hipster.txt;../fake-data/blob/hipster.png;image/png diff --git a/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/fake_reboot.j2 b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/fake_reboot.j2 new file mode 100644 index 0000000000000000000000000000000000000000..d34b68b1abd154c672628973e5543479d12fc0d4 --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/fake_reboot.j2 @@ -0,0 +1,5 @@ +{ + "strategy_type": "ansible", + "repeat_not_before": "PT24H", + "ansible_j2_template": "fake_reboot" +} diff --git a/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/fake_shutdown.j2 b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/fake_shutdown.j2 new file mode 100644 index 0000000000000000000000000000000000000000..cb8ac8dd0d38381e4f66989c2698051da6dbf01b --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/fake_shutdown.j2 @@ -0,0 +1,5 @@ +{ + "strategy_type": "ansible", + "repeat_not_before": "PT24H", + "ansible_j2_template": "fake_shutdown" +} diff --git a/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/h_scale.j2 b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/h_scale.j2 new file mode 100644 index 0000000000000000000000000000000000000000..6c77371662c7ae504bc9fb04ab56395f6d6871f7 --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/h_scale.j2 @@ -0,0 +1,4 @@ +{ + "strategy_type": "h_scale", + "repeat_not_before": "PT24H" +} \ No newline at end of file diff --git a/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/notify.j2 b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/notify.j2 new file mode 100644 index 0000000000000000000000000000000000000000..bc323bb5a1e9302334f21471ca468a055f71b0d9 --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/notify.j2 @@ -0,0 +1,4 @@ +{ + "strategy_type": "notify", + "repeat_not_before": "PT24H" +} \ No newline at end of file diff --git a/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/reboot.j2 b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/reboot.j2 new file mode 100644 index 0000000000000000000000000000000000000000..1ea94f8a5fd85c75e31971312224c775f6692cda --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/reboot.j2 @@ -0,0 +1,5 @@ +{ + "strategy_type": "ansible", + "repeat_not_before": "PT24H", + "ansible_j2_template": "reboot" +} diff --git a/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/redeploy.j2 b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/redeploy.j2 new file mode 100644 index 0000000000000000000000000000000000000000..512a32374aadfe2ac26481f55437beb7e48617cb --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/redeploy.j2 @@ -0,0 +1,4 @@ +{ + "strategy_type": "redeploy", + "repeat_not_before": "PT24H" +} \ No newline at end of file diff --git a/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/reoptimize.j2 b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/reoptimize.j2 new file mode 100644 index 0000000000000000000000000000000000000000..901f877cadf1d722f605af1afa80fd0f246436f8 --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/reoptimize.j2 @@ -0,0 +1,4 @@ +{ + "strategy_type": "reoptimize", + "repeat_not_before": "PT24H" +} \ No newline at end of file diff --git a/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/shutdown.j2 b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/shutdown.j2 new file mode 100644 index 0000000000000000000000000000000000000000..5b335de26e86ab32336e326e874f86c0a8ccf41f --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/shutdown.j2 @@ -0,0 +1,5 @@ +{ + "strategy_type": "ansible", + "repeat_not_before": "PT24H", + "ansible_j2_template": "shutdown" +} diff --git a/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/v_scale.j2 b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/v_scale.j2 new file mode 100644 index 0000000000000000000000000000000000000000..2291d6a39e6dd457b6b4efe4f0b5ce1cbf9d1049 --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/initial-data/blob/v_scale.j2 @@ -0,0 +1,4 @@ +{ + "strategy_type": "v_scale", + "repeat_not_before": "PT24H" +} \ No newline at end of file diff --git a/git/sh-backend/src/main/resources/config/liquibase/initial-data/event_type.csv b/git/sh-backend/src/main/resources/config/liquibase/initial-data/event_type.csv new file mode 100644 index 0000000000000000000000000000000000000000..9db02c04b2204663fd2e834141d4855334b54d00 --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/initial-data/event_type.csv @@ -0,0 +1,33 @@ +id;code;description;strategy_id +1;cudo90;CPU Usage Deployment over 90%;1 +2;mudo90;Memory Usage Deployment over 90%;1 +3;dudo90;Disk Usage Deployment over 90%;1 +4;avdu90;Availability Deployment under 90%;1 +5;cudo70;CPU Usage Deployment over 70%;1 +6;mudo70;Memory Usage Deployment over 70%;1 +7;dudo70;Disk Usage Deployment over 70%;1 +8;avdu95;Availability Deployment under 95%;1 +9;cuprdo90;CPU Usage Prediction Deployment over 90%;1 +10;muprdo90;Memory Usage Prediction Deployment over 90%;1 +11;duprdo90;Disk Usage Prediction Deployment over 90%;1 +12;avprdu90;Availability Prediction Deployment under 90%;1 +13;cudeo90;CPU Usage Doml Element over 90%;1 +14;mudeo90;Memory Usage Doml Element over 90%;1 +15;dudeo90;Disk Usage Doml Element over 90%;1 +16;avdeu90;Availability Doml Element under 90%;1 +17;cudeo70;CPU Usage Doml Element over 70%;1 +18;mudeo70;Memory Usage Doml Element over 70%;1 +19;dudeo70;Disk Usage Doml Element over 70%;1 +20;avdeu95;Availability Doml Element under 95%;1 +21;cuprdeo90;CPU Usage Prediction Doml Element over 90%;1 +22;muprdeo90;Memory Usage Prediction Doml Element over 90%;1 +23;duprdeo90;Disk Usage Prediction Doml Element over 90%;1 +24;avprdeu90;Availability Prediction Doml Element under 90%;1 +25;redeploy;Redeploy configuration;2 +26;h_scale;Horizontal scalability: New server, adjust cluster...;3 +27;v_scale;Vertical scalability: More memory, more disk...;4 +28;shutdown;Shutdown configuration;5 +29;reboot;Reboot configuration;6 +30;fake_shutdown;Fake shutdown configuration;7 +31;fake_reboot;Fake reboot configuration;8 +32;reoptimize;Reoptimize configuration;9 diff --git a/git/sh-backend/src/main/resources/config/liquibase/initial-data/strategy.csv b/git/sh-backend/src/main/resources/config/liquibase/initial-data/strategy.csv new file mode 100644 index 0000000000000000000000000000000000000000..ca42f4e89c2ee1e7e9b4eb0125110d7e2901b7ad --- /dev/null +++ b/git/sh-backend/src/main/resources/config/liquibase/initial-data/strategy.csv @@ -0,0 +1,10 @@ +id;code;description;configuration +1;notify;Notify about the event;../initial-data/blob/notify.j2 +2;redeploy;Redeploy configuration;../initial-data/blob/redeploy.j2 +3;h_scale;HorVertical scalability: More memory, more disk...;../initial-data/blob/h_scale.j2 +4;v_scale;Horizontal scalability: New server, adjust kubernetes cluster...;../initial-data/blob/v_scale.j2 +5;shutdown;Shutdown configuration;../initial-data/blob/shutdown.j2 +6;reboot;Reboot configuration;../initial-data/blob/reboot.j2 +7;fake_shutdown;Fake shutdown configuration;../initial-data/blob/fake_shutdown.j2 +8;fake_reboot;Fake reboot configuration;../initial-data/blob/fake_reboot.j2 +9;reoptimize;Reoptimize configuration;../initial-data/blob/reoptimize.j2 diff --git a/git/sh-backend/src/main/resources/config/liquibase/master.xml b/git/sh-backend/src/main/resources/config/liquibase/master.xml index ea327af9ff182ed77376513a5dc3b8e55da33126..48bfe5f4c40c5ba5fab78784591e3012a6ef6dea 100644 --- a/git/sh-backend/src/main/resources/config/liquibase/master.xml +++ b/git/sh-backend/src/main/resources/config/liquibase/master.xml @@ -15,5 +15,16 @@ <property name="datetimeType" value="datetime" dbms="oracle, mssql, postgresql, h2"/> <include file="config/liquibase/changelog/00000000000000_initial_schema.xml" relativeToChangelogFile="false"/> - + <include file="config/liquibase/changelog/20221227191541_added_entity_SelfHealingMessage.xml" relativeToChangelogFile="false"/> + <include file="config/liquibase/changelog/20221227191641_added_entity_EventType.xml" relativeToChangelogFile="false"/> + <include file="config/liquibase/changelog/20221227191741_added_entity_Strategy.xml" relativeToChangelogFile="false"/> + <include file="config/liquibase/changelog/20221227191841_added_entity_Deployment.xml" relativeToChangelogFile="false"/> + <include file="config/liquibase/changelog/20221227191941_added_entity_StrategyApplication.xml" relativeToChangelogFile="false"/> + <!-- jhipster-needle-liquibase-add-changelog - JHipster will add liquibase changelogs here --> + <include file="config/liquibase/changelog/20221227191541_added_entity_constraints_SelfHealingMessage.xml" relativeToChangelogFile="false"/> + <include file="config/liquibase/changelog/20221227191641_added_entity_constraints_EventType.xml" relativeToChangelogFile="false"/> + <include file="config/liquibase/changelog/20221227191941_added_entity_constraints_StrategyApplication.xml" relativeToChangelogFile="false"/> + <include file="config/liquibase/changelog/20240102111744_added_entity_constraints_Strategy.xml" relativeToChangelogFile="false"/> + <!-- jhipster-needle-liquibase-add-constraints-changelog - JHipster will add liquibase constraints changelogs here --> + <!-- jhipster-needle-liquibase-add-incremental-changelog - JHipster will add incremental liquibase changelogs here --> </databaseChangeLog> diff --git a/git/sh-backend/src/main/resources/config/tls/keystore.p12 b/git/sh-backend/src/main/resources/config/tls/keystore.p12 index cac4bb63f83f40c7445bf4bd589f37cb02653aef..5d14deb450667cc3827f84c01e9119bd8526f5b4 100644 Binary files a/git/sh-backend/src/main/resources/config/tls/keystore.p12 and b/git/sh-backend/src/main/resources/config/tls/keystore.p12 differ diff --git a/git/sh-backend/src/main/resources/i18n/messages_en.properties b/git/sh-backend/src/main/resources/i18n/messages_en.properties new file mode 100644 index 0000000000000000000000000000000000000000..5fb5c549edb22a90265388606b0ae29a48967374 --- /dev/null +++ b/git/sh-backend/src/main/resources/i18n/messages_en.properties @@ -0,0 +1,6 @@ +# Error page +error.title=Your request cannot be processed +error.subtitle=Sorry, an error has occurred. +error.status=Status: +error.message=Message: + diff --git a/git/sh-backend/src/main/resources/logback-spring.xml b/git/sh-backend/src/main/resources/logback-spring.xml index 443396709f035baa46b2837c4c965f763566d22f..eb1d976a9b849dc412400d1f44f77a7b5b26fb6a 100644 --- a/git/sh-backend/src/main/resources/logback-spring.xml +++ b/git/sh-backend/src/main/resources/logback-spring.xml @@ -5,21 +5,18 @@ <include resource="org/springframework/boot/logging/logback/base.xml"/> <!-- The FILE and ASYNC appenders are here as examples for a production configuration --> - - <appender name="CONSOLEINFO" class="ch.qos.logback.core.ConsoleAppender"> - <encoder> - <charset>utf-8</charset> - <Pattern>%d %logger{36}: %cyan(%msg%n)</Pattern> - </encoder> - </appender> - <appender name="CONSOLEDEBUG" class="ch.qos.logback.core.ConsoleAppender"> +<!-- + <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern> + <maxHistory>90</maxHistory> + </rollingPolicy> <encoder> <charset>utf-8</charset> - <Pattern>%d %logger{36}: %green(%msg%n)</Pattern> + <Pattern>%d %-5level [%thread] %logger{0}: %msg%n</Pattern> </encoder> </appender> -<!-- <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"> <queueSize>512</queueSize> <appender-ref ref="FILE"/> @@ -29,11 +26,8 @@ <appender-ref ref="ASYNC"/> </root> --> - <!-- <logger name="com.piacere.selfhealing.backend" level="debug"> - <appender-ref ref="FILEDEBUG" /> - </logger> --> - <!-- <logger name="javax.activation" level="WARN"/> + <logger name="javax.activation" level="WARN"/> <logger name="javax.mail" level="WARN"/> <logger name="javax.management.remote" level="WARN"/> <logger name="javax.xml.bind" level="WARN"/> @@ -67,27 +61,17 @@ <logger name="springfox.documentation.schema.property" level="ERROR"/> <logger name="sun.net.www" level="INFO"/> <logger name="sun.rmi.transport" level="WARN"/> + <!-- See https://github.com/jhipster/generator-jhipster/issues/13835 --> <logger name="Validator" level="INFO"/> - <logger name="_org.springframework.web.servlet.HandlerMapping.Mappings" level="INFO"/> --> - - <logger name="com.piacere.selfhealing.backend.web.rest" additivity="false" level="INFO"> - <appender-ref ref="CONSOLEINFO" /> - </logger> - <logger name="com.piacere.selfhealing.backend.consumer" additivity="false" level="DEBUG"> - <appender-ref ref="CONSOLEDEBUG" /> - </logger> - <logger name="com.piacere.selfhealing.backend.service.impl" additivity="false" level="DEBUG"> - <appender-ref ref="CONSOLEDEBUG" /> - </logger> + <!-- See https://github.com/jhipster/generator-jhipster/issues/14444 --> + <logger name="_org.springframework.web.servlet.HandlerMapping.Mappings" level="INFO"/> + <!-- jhipster-needle-logback-add-log - JHipster will add a new log with level --> + <!-- https://logback.qos.ch/manual/configuration.html#shutdownHook and https://jira.qos.ch/browse/LOGBACK-1090 --> <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/> + <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> <resetJUL>true</resetJUL> </contextListener> - <root level="INFO"> - <appender-ref ref="CONSOLEDEBUG"/> - <appender-ref ref="CONSOLEINFO"/> - </root> - </configuration> diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/ArchTest.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/ArchTest.java index 7ca5fd1be1049575e50edd3cb1e424451c660dc1..05e216d1234bfdc44f96926b7fb327e552e5cbb1 100644 --- a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/ArchTest.java +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/ArchTest.java @@ -13,16 +13,16 @@ class ArchTest { void servicesAndRepositoriesShouldNotDependOnWebLayer() { JavaClasses importedClasses = new ClassFileImporter() .withImportOption(ImportOption.Predefined.DO_NOT_INCLUDE_TESTS) - .importPackages("com.piacere.selfhealing.service"); + .importPackages("com.piacere.selfhealing.backend"); noClasses() .that() - .resideInAnyPackage("com.piacere.selfhealing.service.service..") + .resideInAnyPackage("com.piacere.selfhealing.backend.service..") .or() - .resideInAnyPackage("com.piacere.selfhealing.service.repository..") + .resideInAnyPackage("com.piacere.selfhealing.backend.repository..") .should() .dependOnClassesThat() - .resideInAnyPackage("..com.piacere.selfhealing.service.web..") + .resideInAnyPackage("..com.piacere.selfhealing.backend.web..") .because("Services and repositories should not depend on web layer") .check(importedClasses); } diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/IntegrationTest.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/IntegrationTest.java index 62df02d7f79327ad7f8ffbfe6df15750ffa430ff..7556d98bea0667d2c938bbe269596dc8e0c4f369 100644 --- a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/IntegrationTest.java +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/IntegrationTest.java @@ -1,18 +1,17 @@ package com.piacere.selfhealing.backend; +import com.piacere.selfhealing.backend.ShBackendApp; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.springframework.boot.test.context.SpringBootTest; -import com.piacere.selfhealing.backend.shBackendApp; - /** * Base composite annotation for integration tests. */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) -@SpringBootTest(classes = shBackendApp.class) +@SpringBootTest(classes = ShBackendApp.class) public @interface IntegrationTest { } diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/config/WebConfigurerTest.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/config/WebConfigurerTest.java index e4c009b74140988eb8cf8e815f61b0b0620a2ead..80b1ed809a1128da2a428c4ebb46dbb959561943 100644 --- a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/config/WebConfigurerTest.java +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/config/WebConfigurerTest.java @@ -18,9 +18,6 @@ import org.springframework.mock.env.MockEnvironment; import org.springframework.mock.web.MockServletContext; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; - -import com.piacere.selfhealing.backend.config.WebConfigurer; - import tech.jhipster.config.JHipsterConstants; import tech.jhipster.config.JHipsterProperties; diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/config/timezone/HibernateTimeZoneIT.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/config/timezone/HibernateTimeZoneIT.java index 0e75bfead50ce57c374f30eeebe611a254d0a5f1..d97af6c3976082e343e8cfb401a7d00b2c27f3ab 100644 --- a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/config/timezone/HibernateTimeZoneIT.java +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/config/timezone/HibernateTimeZoneIT.java @@ -6,7 +6,6 @@ import static org.assertj.core.api.Assertions.assertThat; import com.piacere.selfhealing.backend.IntegrationTest; import com.piacere.selfhealing.backend.repository.timezone.DateTimeWrapper; import com.piacere.selfhealing.backend.repository.timezone.DateTimeWrapperRepository; - import java.time.*; import java.time.format.DateTimeFormatter; import org.junit.jupiter.api.BeforeEach; diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/DeploymentTest.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/DeploymentTest.java new file mode 100644 index 0000000000000000000000000000000000000000..ff354d68b9f0f863f0840dfb41cf84c9b922ec04 --- /dev/null +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/DeploymentTest.java @@ -0,0 +1,23 @@ +package com.piacere.selfhealing.backend.domain; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.piacere.selfhealing.backend.web.rest.TestUtil; +import org.junit.jupiter.api.Test; + +class DeploymentTest { + + @Test + void equalsVerifier() throws Exception { + TestUtil.equalsVerifier(Deployment.class); + Deployment deployment1 = new Deployment(); + deployment1.setId(1L); + Deployment deployment2 = new Deployment(); + deployment2.setId(deployment1.getId()); + assertThat(deployment1).isEqualTo(deployment2); + deployment2.setId(2L); + assertThat(deployment1).isNotEqualTo(deployment2); + deployment1.setId(null); + assertThat(deployment1).isNotEqualTo(deployment2); + } +} diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/EventTypeTest.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/EventTypeTest.java index 087283c26a0d72581e79049490ea9a523adcb8ca..a3e87f118a76a26f8d531af7ec5f33b73ec44ab9 100644 --- a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/EventTypeTest.java +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/EventTypeTest.java @@ -2,9 +2,7 @@ package com.piacere.selfhealing.backend.domain; import static org.assertj.core.api.Assertions.assertThat; -import com.piacere.selfhealing.backend.domain.EventType; import com.piacere.selfhealing.backend.web.rest.TestUtil; - import org.junit.jupiter.api.Test; class EventTypeTest { diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/SelfHealingMessageTest.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/SelfHealingMessageTest.java index 772c82e1a78630f46a47770c8254e03955fbe29e..cdfd0cd041129f9eceb2bb850801ae7a3d24d17d 100644 --- a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/SelfHealingMessageTest.java +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/SelfHealingMessageTest.java @@ -2,9 +2,7 @@ package com.piacere.selfhealing.backend.domain; import static org.assertj.core.api.Assertions.assertThat; -import com.piacere.selfhealing.backend.domain.SelfHealingMessage; import com.piacere.selfhealing.backend.web.rest.TestUtil; - import org.junit.jupiter.api.Test; class SelfHealingMessageTest { diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/StrategyApplicationTest.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/StrategyApplicationTest.java new file mode 100644 index 0000000000000000000000000000000000000000..7fc826f6f9a3ad6072753ab589b2b0760eb613c5 --- /dev/null +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/StrategyApplicationTest.java @@ -0,0 +1,23 @@ +package com.piacere.selfhealing.backend.domain; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.piacere.selfhealing.backend.web.rest.TestUtil; +import org.junit.jupiter.api.Test; + +class StrategyApplicationTest { + + @Test + void equalsVerifier() throws Exception { + TestUtil.equalsVerifier(StrategyApplication.class); + StrategyApplication strategyApplication1 = new StrategyApplication(); + strategyApplication1.setId(1L); + StrategyApplication strategyApplication2 = new StrategyApplication(); + strategyApplication2.setId(strategyApplication1.getId()); + assertThat(strategyApplication1).isEqualTo(strategyApplication2); + strategyApplication2.setId(2L); + assertThat(strategyApplication1).isNotEqualTo(strategyApplication2); + strategyApplication1.setId(null); + assertThat(strategyApplication1).isNotEqualTo(strategyApplication2); + } +} diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/StrategyTest.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/StrategyTest.java index 53319718c8610af9aa3faf0adf68a748b08f8b0b..0edb12298568127a4c54cc19c7c847f264247bb1 100644 --- a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/StrategyTest.java +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/domain/StrategyTest.java @@ -2,9 +2,7 @@ package com.piacere.selfhealing.backend.domain; import static org.assertj.core.api.Assertions.assertThat; -import com.piacere.selfhealing.backend.domain.Strategy; import com.piacere.selfhealing.backend.web.rest.TestUtil; - import org.junit.jupiter.api.Test; class StrategyTest { diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/security/SecurityUtilsUnitTest.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/security/SecurityUtilsUnitTest.java index ea3c2a01db20a9da70a26d7bfec44ac09b12b29f..8ff8eed64f76bd8d265c173d67c795583996ca9b 100644 --- a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/security/SecurityUtilsUnitTest.java +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/security/SecurityUtilsUnitTest.java @@ -14,9 +14,6 @@ import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; -import com.piacere.selfhealing.backend.security.AuthoritiesConstants; -import com.piacere.selfhealing.backend.security.SecurityUtils; - /** * Test class for the {@link SecurityUtils} utility class. */ diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/security/jwt/JWTFilterTest.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/security/jwt/JWTFilterTest.java index e47678aaa66cc8f71221d1dd87e49fe116e60077..919d18e893bb381c441dd1cedae1df8b9329a7b3 100644 --- a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/security/jwt/JWTFilterTest.java +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/security/jwt/JWTFilterTest.java @@ -2,6 +2,7 @@ package com.piacere.selfhealing.backend.security.jwt; import static org.assertj.core.api.Assertions.assertThat; +import com.piacere.selfhealing.backend.security.AuthoritiesConstants; import io.jsonwebtoken.io.Decoders; import io.jsonwebtoken.security.Keys; import java.util.Collections; @@ -15,11 +16,6 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.test.util.ReflectionTestUtils; - -import com.piacere.selfhealing.backend.security.AuthoritiesConstants; -import com.piacere.selfhealing.backend.security.jwt.JWTFilter; -import com.piacere.selfhealing.backend.security.jwt.TokenProvider; - import tech.jhipster.config.JHipsterProperties; class JWTFilterTest { diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/security/jwt/TokenProviderTest.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/security/jwt/TokenProviderTest.java index f38bf04b25918c651a086d2491c4f742a99c1bf9..1809816aa652d4dbf07309fb4e061cf032bfd193 100644 --- a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/security/jwt/TokenProviderTest.java +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/security/jwt/TokenProviderTest.java @@ -2,6 +2,7 @@ package com.piacere.selfhealing.backend.security.jwt; import static org.assertj.core.api.Assertions.assertThat; +import com.piacere.selfhealing.backend.security.AuthoritiesConstants; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import io.jsonwebtoken.io.Decoders; @@ -16,10 +17,6 @@ import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.test.util.ReflectionTestUtils; - -import com.piacere.selfhealing.backend.security.AuthoritiesConstants; -import com.piacere.selfhealing.backend.security.jwt.TokenProvider; - import tech.jhipster.config.JHipsterProperties; class TokenProviderTest { diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/DeploymentResourceIT.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/DeploymentResourceIT.java new file mode 100644 index 0000000000000000000000000000000000000000..185cd0baac6ccf7f759466037b7b1d700c850569 --- /dev/null +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/DeploymentResourceIT.java @@ -0,0 +1,407 @@ +package com.piacere.selfhealing.backend.web.rest; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.Matchers.hasItem; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; + +import com.piacere.selfhealing.backend.IntegrationTest; +import com.piacere.selfhealing.backend.domain.Deployment; +import com.piacere.selfhealing.backend.repository.DeploymentRepository; +import java.util.List; +import java.util.Random; +import java.util.concurrent.atomic.AtomicLong; +import javax.persistence.EntityManager; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Base64Utils; + +/** + * Integration tests for the {@link DeploymentResource} REST controller. + */ +@IntegrationTest +@AutoConfigureMockMvc +@WithMockUser +class DeploymentResourceIT { + + private static final String DEFAULT_DEPLOYMENT_ID = "AAAAAAAAAA"; + private static final String UPDATED_DEPLOYMENT_ID = "BBBBBBBBBB"; + + private static final byte[] DEFAULT_BUNDLE = TestUtil.createByteArray(1, "0"); + private static final byte[] UPDATED_BUNDLE = TestUtil.createByteArray(1, "1"); + private static final String DEFAULT_BUNDLE_CONTENT_TYPE = "image/jpg"; + private static final String UPDATED_BUNDLE_CONTENT_TYPE = "image/png"; + + private static final String ENTITY_API_URL = "/api/deployments"; + private static final String ENTITY_API_URL_ID = ENTITY_API_URL + "/{id}"; + + private static Random random = new Random(); + private static AtomicLong count = new AtomicLong(random.nextInt() + (2 * Integer.MAX_VALUE)); + + @Autowired + private DeploymentRepository deploymentRepository; + + @Autowired + private EntityManager em; + + @Autowired + private MockMvc restDeploymentMockMvc; + + private Deployment deployment; + + /** + * Create an entity for this test. + * + * This is a static method, as tests for other entities might also need it, + * if they test an entity which requires the current entity. + */ + public static Deployment createEntity(EntityManager em) { + Deployment deployment = new Deployment() + .deploymentId(DEFAULT_DEPLOYMENT_ID) + .bundle(DEFAULT_BUNDLE) + .bundleContentType(DEFAULT_BUNDLE_CONTENT_TYPE); + return deployment; + } + + /** + * Create an updated entity for this test. + * + * This is a static method, as tests for other entities might also need it, + * if they test an entity which requires the current entity. + */ + public static Deployment createUpdatedEntity(EntityManager em) { + Deployment deployment = new Deployment() + .deploymentId(UPDATED_DEPLOYMENT_ID) + .bundle(UPDATED_BUNDLE) + .bundleContentType(UPDATED_BUNDLE_CONTENT_TYPE); + return deployment; + } + + @BeforeEach + public void initTest() { + deployment = createEntity(em); + } + + @Test + @Transactional + void createDeployment() throws Exception { + int databaseSizeBeforeCreate = deploymentRepository.findAll().size(); + // Create the Deployment + restDeploymentMockMvc + .perform(post(ENTITY_API_URL).contentType(MediaType.APPLICATION_JSON).content(TestUtil.convertObjectToJsonBytes(deployment))) + .andExpect(status().isCreated()); + + // Validate the Deployment in the database + List<Deployment> deploymentList = deploymentRepository.findAll(); + assertThat(deploymentList).hasSize(databaseSizeBeforeCreate + 1); + Deployment testDeployment = deploymentList.get(deploymentList.size() - 1); + assertThat(testDeployment.getDeploymentId()).isEqualTo(DEFAULT_DEPLOYMENT_ID); + assertThat(testDeployment.getBundle()).isEqualTo(DEFAULT_BUNDLE); + assertThat(testDeployment.getBundleContentType()).isEqualTo(DEFAULT_BUNDLE_CONTENT_TYPE); + } + + @Test + @Transactional + void createDeploymentWithExistingId() throws Exception { + // Create the Deployment with an existing ID + deployment.setId(1L); + + int databaseSizeBeforeCreate = deploymentRepository.findAll().size(); + + // An entity with an existing ID cannot be created, so this API call must fail + restDeploymentMockMvc + .perform(post(ENTITY_API_URL).contentType(MediaType.APPLICATION_JSON).content(TestUtil.convertObjectToJsonBytes(deployment))) + .andExpect(status().isBadRequest()); + + // Validate the Deployment in the database + List<Deployment> deploymentList = deploymentRepository.findAll(); + assertThat(deploymentList).hasSize(databaseSizeBeforeCreate); + } + + @Test + @Transactional + void checkDeploymentIdIsRequired() throws Exception { + int databaseSizeBeforeTest = deploymentRepository.findAll().size(); + // set the field null + deployment.setDeploymentId(null); + + // Create the Deployment, which fails. + + restDeploymentMockMvc + .perform(post(ENTITY_API_URL).contentType(MediaType.APPLICATION_JSON).content(TestUtil.convertObjectToJsonBytes(deployment))) + .andExpect(status().isBadRequest()); + + List<Deployment> deploymentList = deploymentRepository.findAll(); + assertThat(deploymentList).hasSize(databaseSizeBeforeTest); + } + + @Test + @Transactional + void getAllDeployments() throws Exception { + // Initialize the database + deploymentRepository.saveAndFlush(deployment); + + // Get all the deploymentList + restDeploymentMockMvc + .perform(get(ENTITY_API_URL + "?sort=id,desc")) + .andExpect(status().isOk()) + .andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE)) + .andExpect(jsonPath("$.[*].id").value(hasItem(deployment.getId().intValue()))) + .andExpect(jsonPath("$.[*].deploymentId").value(hasItem(DEFAULT_DEPLOYMENT_ID))) + .andExpect(jsonPath("$.[*].bundleContentType").value(hasItem(DEFAULT_BUNDLE_CONTENT_TYPE))) + .andExpect(jsonPath("$.[*].bundle").value(hasItem(Base64Utils.encodeToString(DEFAULT_BUNDLE)))); + } + + @Test + @Transactional + void getDeployment() throws Exception { + // Initialize the database + deploymentRepository.saveAndFlush(deployment); + + // Get the deployment + restDeploymentMockMvc + .perform(get(ENTITY_API_URL_ID, deployment.getId())) + .andExpect(status().isOk()) + .andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE)) + .andExpect(jsonPath("$.id").value(deployment.getId().intValue())) + .andExpect(jsonPath("$.deploymentId").value(DEFAULT_DEPLOYMENT_ID)) + .andExpect(jsonPath("$.bundleContentType").value(DEFAULT_BUNDLE_CONTENT_TYPE)) + .andExpect(jsonPath("$.bundle").value(Base64Utils.encodeToString(DEFAULT_BUNDLE))); + } + + @Test + @Transactional + void getNonExistingDeployment() throws Exception { + // Get the deployment + restDeploymentMockMvc.perform(get(ENTITY_API_URL_ID, Long.MAX_VALUE)).andExpect(status().isNotFound()); + } + + @Test + @Transactional + void putNewDeployment() throws Exception { + // Initialize the database + deploymentRepository.saveAndFlush(deployment); + + int databaseSizeBeforeUpdate = deploymentRepository.findAll().size(); + + // Update the deployment + Deployment updatedDeployment = deploymentRepository.findById(deployment.getId()).get(); + // Disconnect from session so that the updates on updatedDeployment are not directly saved in db + em.detach(updatedDeployment); + updatedDeployment.deploymentId(UPDATED_DEPLOYMENT_ID).bundle(UPDATED_BUNDLE).bundleContentType(UPDATED_BUNDLE_CONTENT_TYPE); + + restDeploymentMockMvc + .perform( + put(ENTITY_API_URL_ID, updatedDeployment.getId()) + .contentType(MediaType.APPLICATION_JSON) + .content(TestUtil.convertObjectToJsonBytes(updatedDeployment)) + ) + .andExpect(status().isOk()); + + // Validate the Deployment in the database + List<Deployment> deploymentList = deploymentRepository.findAll(); + assertThat(deploymentList).hasSize(databaseSizeBeforeUpdate); + Deployment testDeployment = deploymentList.get(deploymentList.size() - 1); + assertThat(testDeployment.getDeploymentId()).isEqualTo(UPDATED_DEPLOYMENT_ID); + assertThat(testDeployment.getBundle()).isEqualTo(UPDATED_BUNDLE); + assertThat(testDeployment.getBundleContentType()).isEqualTo(UPDATED_BUNDLE_CONTENT_TYPE); + } + + @Test + @Transactional + void putNonExistingDeployment() throws Exception { + int databaseSizeBeforeUpdate = deploymentRepository.findAll().size(); + deployment.setId(count.incrementAndGet()); + + // If the entity doesn't have an ID, it will throw BadRequestAlertException + restDeploymentMockMvc + .perform( + put(ENTITY_API_URL_ID, deployment.getId()) + .contentType(MediaType.APPLICATION_JSON) + .content(TestUtil.convertObjectToJsonBytes(deployment)) + ) + .andExpect(status().isBadRequest()); + + // Validate the Deployment in the database + List<Deployment> deploymentList = deploymentRepository.findAll(); + assertThat(deploymentList).hasSize(databaseSizeBeforeUpdate); + } + + @Test + @Transactional + void putWithIdMismatchDeployment() throws Exception { + int databaseSizeBeforeUpdate = deploymentRepository.findAll().size(); + deployment.setId(count.incrementAndGet()); + + // If url ID doesn't match entity ID, it will throw BadRequestAlertException + restDeploymentMockMvc + .perform( + put(ENTITY_API_URL_ID, count.incrementAndGet()) + .contentType(MediaType.APPLICATION_JSON) + .content(TestUtil.convertObjectToJsonBytes(deployment)) + ) + .andExpect(status().isBadRequest()); + + // Validate the Deployment in the database + List<Deployment> deploymentList = deploymentRepository.findAll(); + assertThat(deploymentList).hasSize(databaseSizeBeforeUpdate); + } + + @Test + @Transactional + void putWithMissingIdPathParamDeployment() throws Exception { + int databaseSizeBeforeUpdate = deploymentRepository.findAll().size(); + deployment.setId(count.incrementAndGet()); + + // If url ID doesn't match entity ID, it will throw BadRequestAlertException + restDeploymentMockMvc + .perform(put(ENTITY_API_URL).contentType(MediaType.APPLICATION_JSON).content(TestUtil.convertObjectToJsonBytes(deployment))) + .andExpect(status().isMethodNotAllowed()); + + // Validate the Deployment in the database + List<Deployment> deploymentList = deploymentRepository.findAll(); + assertThat(deploymentList).hasSize(databaseSizeBeforeUpdate); + } + + @Test + @Transactional + void partialUpdateDeploymentWithPatch() throws Exception { + // Initialize the database + deploymentRepository.saveAndFlush(deployment); + + int databaseSizeBeforeUpdate = deploymentRepository.findAll().size(); + + // Update the deployment using partial update + Deployment partialUpdatedDeployment = new Deployment(); + partialUpdatedDeployment.setId(deployment.getId()); + + restDeploymentMockMvc + .perform( + patch(ENTITY_API_URL_ID, partialUpdatedDeployment.getId()) + .contentType("application/merge-patch+json") + .content(TestUtil.convertObjectToJsonBytes(partialUpdatedDeployment)) + ) + .andExpect(status().isOk()); + + // Validate the Deployment in the database + List<Deployment> deploymentList = deploymentRepository.findAll(); + assertThat(deploymentList).hasSize(databaseSizeBeforeUpdate); + Deployment testDeployment = deploymentList.get(deploymentList.size() - 1); + assertThat(testDeployment.getDeploymentId()).isEqualTo(DEFAULT_DEPLOYMENT_ID); + assertThat(testDeployment.getBundle()).isEqualTo(DEFAULT_BUNDLE); + assertThat(testDeployment.getBundleContentType()).isEqualTo(DEFAULT_BUNDLE_CONTENT_TYPE); + } + + @Test + @Transactional + void fullUpdateDeploymentWithPatch() throws Exception { + // Initialize the database + deploymentRepository.saveAndFlush(deployment); + + int databaseSizeBeforeUpdate = deploymentRepository.findAll().size(); + + // Update the deployment using partial update + Deployment partialUpdatedDeployment = new Deployment(); + partialUpdatedDeployment.setId(deployment.getId()); + + partialUpdatedDeployment.deploymentId(UPDATED_DEPLOYMENT_ID).bundle(UPDATED_BUNDLE).bundleContentType(UPDATED_BUNDLE_CONTENT_TYPE); + + restDeploymentMockMvc + .perform( + patch(ENTITY_API_URL_ID, partialUpdatedDeployment.getId()) + .contentType("application/merge-patch+json") + .content(TestUtil.convertObjectToJsonBytes(partialUpdatedDeployment)) + ) + .andExpect(status().isOk()); + + // Validate the Deployment in the database + List<Deployment> deploymentList = deploymentRepository.findAll(); + assertThat(deploymentList).hasSize(databaseSizeBeforeUpdate); + Deployment testDeployment = deploymentList.get(deploymentList.size() - 1); + assertThat(testDeployment.getDeploymentId()).isEqualTo(UPDATED_DEPLOYMENT_ID); + assertThat(testDeployment.getBundle()).isEqualTo(UPDATED_BUNDLE); + assertThat(testDeployment.getBundleContentType()).isEqualTo(UPDATED_BUNDLE_CONTENT_TYPE); + } + + @Test + @Transactional + void patchNonExistingDeployment() throws Exception { + int databaseSizeBeforeUpdate = deploymentRepository.findAll().size(); + deployment.setId(count.incrementAndGet()); + + // If the entity doesn't have an ID, it will throw BadRequestAlertException + restDeploymentMockMvc + .perform( + patch(ENTITY_API_URL_ID, deployment.getId()) + .contentType("application/merge-patch+json") + .content(TestUtil.convertObjectToJsonBytes(deployment)) + ) + .andExpect(status().isBadRequest()); + + // Validate the Deployment in the database + List<Deployment> deploymentList = deploymentRepository.findAll(); + assertThat(deploymentList).hasSize(databaseSizeBeforeUpdate); + } + + @Test + @Transactional + void patchWithIdMismatchDeployment() throws Exception { + int databaseSizeBeforeUpdate = deploymentRepository.findAll().size(); + deployment.setId(count.incrementAndGet()); + + // If url ID doesn't match entity ID, it will throw BadRequestAlertException + restDeploymentMockMvc + .perform( + patch(ENTITY_API_URL_ID, count.incrementAndGet()) + .contentType("application/merge-patch+json") + .content(TestUtil.convertObjectToJsonBytes(deployment)) + ) + .andExpect(status().isBadRequest()); + + // Validate the Deployment in the database + List<Deployment> deploymentList = deploymentRepository.findAll(); + assertThat(deploymentList).hasSize(databaseSizeBeforeUpdate); + } + + @Test + @Transactional + void patchWithMissingIdPathParamDeployment() throws Exception { + int databaseSizeBeforeUpdate = deploymentRepository.findAll().size(); + deployment.setId(count.incrementAndGet()); + + // If url ID doesn't match entity ID, it will throw BadRequestAlertException + restDeploymentMockMvc + .perform( + patch(ENTITY_API_URL).contentType("application/merge-patch+json").content(TestUtil.convertObjectToJsonBytes(deployment)) + ) + .andExpect(status().isMethodNotAllowed()); + + // Validate the Deployment in the database + List<Deployment> deploymentList = deploymentRepository.findAll(); + assertThat(deploymentList).hasSize(databaseSizeBeforeUpdate); + } + + @Test + @Transactional + void deleteDeployment() throws Exception { + // Initialize the database + deploymentRepository.saveAndFlush(deployment); + + int databaseSizeBeforeDelete = deploymentRepository.findAll().size(); + + // Delete the deployment + restDeploymentMockMvc + .perform(delete(ENTITY_API_URL_ID, deployment.getId()).accept(MediaType.APPLICATION_JSON)) + .andExpect(status().isNoContent()); + + // Validate the database contains one less item + List<Deployment> deploymentList = deploymentRepository.findAll(); + assertThat(deploymentList).hasSize(databaseSizeBeforeDelete - 1); + } +} diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/EventTypeResourceIT.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/EventTypeResourceIT.java index d344c368c4f0f00de0f37eab376febd692536fb4..82cfc5058f59132a22e0e323c3c3d46bef21af08 100644 --- a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/EventTypeResourceIT.java +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/EventTypeResourceIT.java @@ -8,8 +8,6 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import com.piacere.selfhealing.backend.IntegrationTest; import com.piacere.selfhealing.backend.domain.EventType; import com.piacere.selfhealing.backend.repository.EventTypeRepository; -import com.piacere.selfhealing.backend.web.rest.EventTypeResource; - import java.util.List; import java.util.Random; import java.util.concurrent.atomic.AtomicLong; diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/SelfHealingMessageResourceIT.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/SelfHealingMessageResourceIT.java index e773193b8212924d4c17843dd450ad2439c91368..58674a2a277a91aa92ccb8970fd58d792c24331f 100644 --- a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/SelfHealingMessageResourceIT.java +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/SelfHealingMessageResourceIT.java @@ -6,12 +6,9 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import com.piacere.selfhealing.backend.IntegrationTest; -import com.piacere.selfhealing.backend.domain.EventType; import com.piacere.selfhealing.backend.domain.SelfHealingMessage; import com.piacere.selfhealing.backend.domain.enumeration.Status; import com.piacere.selfhealing.backend.repository.SelfHealingMessageRepository; -import com.piacere.selfhealing.backend.web.rest.SelfHealingMessageResource; - import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.List; @@ -26,6 +23,7 @@ import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; import org.springframework.test.web.servlet.MockMvc; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Base64Utils; /** * Integration tests for the {@link SelfHealingMessageResource} REST controller. @@ -35,14 +33,14 @@ import org.springframework.transaction.annotation.Transactional; @WithMockUser class SelfHealingMessageResourceIT { + private static final Instant DEFAULT_TIMESTAMP = Instant.ofEpochMilli(0L); + private static final Instant UPDATED_TIMESTAMP = Instant.now().truncatedTo(ChronoUnit.MILLIS); + private static final String DEFAULT_ORIGIN = "AAAAAAAAAA"; private static final String UPDATED_ORIGIN = "BBBBBBBBBB"; - private static final String DEFAULT_APPLICATION_ID = "AAAAAAAAAA"; - private static final String UPDATED_APPLICATION_ID = "BBBBBBBBBB"; - - private static final Instant DEFAULT_TIMESTAMP = Instant.ofEpochMilli(0L); - private static final Instant UPDATED_TIMESTAMP = Instant.now().truncatedTo(ChronoUnit.MILLIS); + private static final String DEFAULT_DEPLOYMENT_ID = "AAAAAAAAAA"; + private static final String UPDATED_DEPLOYMENT_ID = "BBBBBBBBBB"; private static final Status DEFAULT_STATUS = Status.PENDING; private static final Status UPDATED_STATUS = Status.PROCESSED; @@ -75,21 +73,11 @@ class SelfHealingMessageResourceIT { */ public static SelfHealingMessage createEntity(EntityManager em) { SelfHealingMessage selfHealingMessage = new SelfHealingMessage() - .origin(DEFAULT_ORIGIN) - .applicationId(DEFAULT_APPLICATION_ID) .timestamp(DEFAULT_TIMESTAMP) + .origin(DEFAULT_ORIGIN) + .deploymentId(DEFAULT_DEPLOYMENT_ID) .status(DEFAULT_STATUS) .error(DEFAULT_ERROR); - // Add required entity - EventType eventType; - if (TestUtil.findAll(em, EventType.class).isEmpty()) { - eventType = EventTypeResourceIT.createEntity(em); - em.persist(eventType); - em.flush(); - } else { - eventType = TestUtil.findAll(em, EventType.class).get(0); - } - selfHealingMessage.setEventType(eventType); return selfHealingMessage; } @@ -101,21 +89,11 @@ class SelfHealingMessageResourceIT { */ public static SelfHealingMessage createUpdatedEntity(EntityManager em) { SelfHealingMessage selfHealingMessage = new SelfHealingMessage() - .origin(UPDATED_ORIGIN) - .applicationId(UPDATED_APPLICATION_ID) .timestamp(UPDATED_TIMESTAMP) + .origin(UPDATED_ORIGIN) + .deploymentId(UPDATED_DEPLOYMENT_ID) .status(UPDATED_STATUS) .error(UPDATED_ERROR); - // Add required entity - EventType eventType; - if (TestUtil.findAll(em, EventType.class).isEmpty()) { - eventType = EventTypeResourceIT.createUpdatedEntity(em); - em.persist(eventType); - em.flush(); - } else { - eventType = TestUtil.findAll(em, EventType.class).get(0); - } - selfHealingMessage.setEventType(eventType); return selfHealingMessage; } @@ -139,9 +117,9 @@ class SelfHealingMessageResourceIT { List<SelfHealingMessage> selfHealingMessageList = selfHealingMessageRepository.findAll(); assertThat(selfHealingMessageList).hasSize(databaseSizeBeforeCreate + 1); SelfHealingMessage testSelfHealingMessage = selfHealingMessageList.get(selfHealingMessageList.size() - 1); - assertThat(testSelfHealingMessage.getOrigin()).isEqualTo(DEFAULT_ORIGIN); - assertThat(testSelfHealingMessage.getApplicationId()).isEqualTo(DEFAULT_APPLICATION_ID); assertThat(testSelfHealingMessage.getTimestamp()).isEqualTo(DEFAULT_TIMESTAMP); + assertThat(testSelfHealingMessage.getOrigin()).isEqualTo(DEFAULT_ORIGIN); + assertThat(testSelfHealingMessage.getDeploymentId()).isEqualTo(DEFAULT_DEPLOYMENT_ID); assertThat(testSelfHealingMessage.getStatus()).isEqualTo(DEFAULT_STATUS); assertThat(testSelfHealingMessage.getError()).isEqualTo(DEFAULT_ERROR); } @@ -197,11 +175,11 @@ class SelfHealingMessageResourceIT { .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE)) .andExpect(jsonPath("$.[*].id").value(hasItem(selfHealingMessage.getId().intValue()))) - .andExpect(jsonPath("$.[*].origin").value(hasItem(DEFAULT_ORIGIN))) - .andExpect(jsonPath("$.[*].applicationId").value(hasItem(DEFAULT_APPLICATION_ID))) .andExpect(jsonPath("$.[*].timestamp").value(hasItem(DEFAULT_TIMESTAMP.toString()))) + .andExpect(jsonPath("$.[*].origin").value(hasItem(DEFAULT_ORIGIN))) + .andExpect(jsonPath("$.[*].deploymentId").value(hasItem(DEFAULT_DEPLOYMENT_ID))) .andExpect(jsonPath("$.[*].status").value(hasItem(DEFAULT_STATUS.toString()))) - .andExpect(jsonPath("$.[*].error").value(hasItem(DEFAULT_ERROR))); + .andExpect(jsonPath("$.[*].error").value(hasItem(DEFAULT_ERROR.toString()))); } @Test @@ -216,11 +194,11 @@ class SelfHealingMessageResourceIT { .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE)) .andExpect(jsonPath("$.id").value(selfHealingMessage.getId().intValue())) - .andExpect(jsonPath("$.origin").value(DEFAULT_ORIGIN)) - .andExpect(jsonPath("$.applicationId").value(DEFAULT_APPLICATION_ID)) .andExpect(jsonPath("$.timestamp").value(DEFAULT_TIMESTAMP.toString())) + .andExpect(jsonPath("$.origin").value(DEFAULT_ORIGIN)) + .andExpect(jsonPath("$.deploymentId").value(DEFAULT_DEPLOYMENT_ID)) .andExpect(jsonPath("$.status").value(DEFAULT_STATUS.toString())) - .andExpect(jsonPath("$.error").value(DEFAULT_ERROR)); + .andExpect(jsonPath("$.error").value(DEFAULT_ERROR.toString())); } @Test @@ -243,9 +221,9 @@ class SelfHealingMessageResourceIT { // Disconnect from session so that the updates on updatedSelfHealingMessage are not directly saved in db em.detach(updatedSelfHealingMessage); updatedSelfHealingMessage - .origin(UPDATED_ORIGIN) - .applicationId(UPDATED_APPLICATION_ID) .timestamp(UPDATED_TIMESTAMP) + .origin(UPDATED_ORIGIN) + .deploymentId(UPDATED_DEPLOYMENT_ID) .status(UPDATED_STATUS) .error(UPDATED_ERROR); @@ -261,9 +239,9 @@ class SelfHealingMessageResourceIT { List<SelfHealingMessage> selfHealingMessageList = selfHealingMessageRepository.findAll(); assertThat(selfHealingMessageList).hasSize(databaseSizeBeforeUpdate); SelfHealingMessage testSelfHealingMessage = selfHealingMessageList.get(selfHealingMessageList.size() - 1); - assertThat(testSelfHealingMessage.getOrigin()).isEqualTo(UPDATED_ORIGIN); - assertThat(testSelfHealingMessage.getApplicationId()).isEqualTo(UPDATED_APPLICATION_ID); assertThat(testSelfHealingMessage.getTimestamp()).isEqualTo(UPDATED_TIMESTAMP); + assertThat(testSelfHealingMessage.getOrigin()).isEqualTo(UPDATED_ORIGIN); + assertThat(testSelfHealingMessage.getDeploymentId()).isEqualTo(UPDATED_DEPLOYMENT_ID); assertThat(testSelfHealingMessage.getStatus()).isEqualTo(UPDATED_STATUS); assertThat(testSelfHealingMessage.getError()).isEqualTo(UPDATED_ERROR); } @@ -338,7 +316,7 @@ class SelfHealingMessageResourceIT { SelfHealingMessage partialUpdatedSelfHealingMessage = new SelfHealingMessage(); partialUpdatedSelfHealingMessage.setId(selfHealingMessage.getId()); - partialUpdatedSelfHealingMessage.origin(UPDATED_ORIGIN).timestamp(UPDATED_TIMESTAMP).error(UPDATED_ERROR); + partialUpdatedSelfHealingMessage.timestamp(UPDATED_TIMESTAMP).deploymentId(UPDATED_DEPLOYMENT_ID).error(UPDATED_ERROR); restSelfHealingMessageMockMvc .perform( @@ -352,9 +330,9 @@ class SelfHealingMessageResourceIT { List<SelfHealingMessage> selfHealingMessageList = selfHealingMessageRepository.findAll(); assertThat(selfHealingMessageList).hasSize(databaseSizeBeforeUpdate); SelfHealingMessage testSelfHealingMessage = selfHealingMessageList.get(selfHealingMessageList.size() - 1); - assertThat(testSelfHealingMessage.getOrigin()).isEqualTo(UPDATED_ORIGIN); - assertThat(testSelfHealingMessage.getApplicationId()).isEqualTo(DEFAULT_APPLICATION_ID); assertThat(testSelfHealingMessage.getTimestamp()).isEqualTo(UPDATED_TIMESTAMP); + assertThat(testSelfHealingMessage.getOrigin()).isEqualTo(DEFAULT_ORIGIN); + assertThat(testSelfHealingMessage.getDeploymentId()).isEqualTo(UPDATED_DEPLOYMENT_ID); assertThat(testSelfHealingMessage.getStatus()).isEqualTo(DEFAULT_STATUS); assertThat(testSelfHealingMessage.getError()).isEqualTo(UPDATED_ERROR); } @@ -372,9 +350,9 @@ class SelfHealingMessageResourceIT { partialUpdatedSelfHealingMessage.setId(selfHealingMessage.getId()); partialUpdatedSelfHealingMessage - .origin(UPDATED_ORIGIN) - .applicationId(UPDATED_APPLICATION_ID) .timestamp(UPDATED_TIMESTAMP) + .origin(UPDATED_ORIGIN) + .deploymentId(UPDATED_DEPLOYMENT_ID) .status(UPDATED_STATUS) .error(UPDATED_ERROR); @@ -390,9 +368,9 @@ class SelfHealingMessageResourceIT { List<SelfHealingMessage> selfHealingMessageList = selfHealingMessageRepository.findAll(); assertThat(selfHealingMessageList).hasSize(databaseSizeBeforeUpdate); SelfHealingMessage testSelfHealingMessage = selfHealingMessageList.get(selfHealingMessageList.size() - 1); - assertThat(testSelfHealingMessage.getOrigin()).isEqualTo(UPDATED_ORIGIN); - assertThat(testSelfHealingMessage.getApplicationId()).isEqualTo(UPDATED_APPLICATION_ID); assertThat(testSelfHealingMessage.getTimestamp()).isEqualTo(UPDATED_TIMESTAMP); + assertThat(testSelfHealingMessage.getOrigin()).isEqualTo(UPDATED_ORIGIN); + assertThat(testSelfHealingMessage.getDeploymentId()).isEqualTo(UPDATED_DEPLOYMENT_ID); assertThat(testSelfHealingMessage.getStatus()).isEqualTo(UPDATED_STATUS); assertThat(testSelfHealingMessage.getError()).isEqualTo(UPDATED_ERROR); } diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/SelfHealingServiceKafkaResourceIT.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/ShBackendKafkaResourceIT.java similarity index 62% rename from git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/SelfHealingServiceKafkaResourceIT.java rename to git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/ShBackendKafkaResourceIT.java index 39f33d2c81aca128ebc751af47b3744b4d086036..1ab46aa335009c7d2851d0d4cb693ca960b65716 100644 --- a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/SelfHealingServiceKafkaResourceIT.java +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/ShBackendKafkaResourceIT.java @@ -6,6 +6,7 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; +import com.piacere.selfhealing.backend.config.KafkaProperties; import java.time.Duration; import java.util.Collections; import java.util.HashMap; @@ -25,9 +26,7 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.testcontainers.containers.KafkaContainer; import org.testcontainers.utility.DockerImageName; -import com.piacere.selfhealing.backend.config.KafkaProperties; - -class shBackendKafkaResourceIT { +class ShBackendKafkaResourceIT { private static boolean started = false; private static KafkaContainer kafkaContainer; @@ -51,23 +50,23 @@ class shBackendKafkaResourceIT { @BeforeEach void setup() { -// KafkaProperties kafkaProperties = new KafkaProperties(); -// Map<String, String> producerProps = getProducerProps(); -// kafkaProperties.setProducer(new HashMap<>(producerProps)); -// -// Map<String, String> consumerProps = getConsumerProps("default-group"); -// consumerProps.put("client.id", "default-client"); -// kafkaProperties.setConsumer(consumerProps); -// -// shBackendKafkaResource kafkaResource = new shBackendKafkaResource(kafkaProperties); -// -// restMockMvc = MockMvcBuilders.standaloneSetup(kafkaResource).build(); + KafkaProperties kafkaProperties = new KafkaProperties(); + Map<String, Map<String, Object>> producerProps = getProducerProps("selfHealingMessage"); + kafkaProperties.setProducer(new HashMap<>(producerProps)); + + Map<String, Map<String, Object>> consumerProps = getConsumerProps("selfHealingMessage"); + consumerProps.get("selfHealingMessage").put("client.id", "selfHealingMessage"); + kafkaProperties.setConsumer(consumerProps); + + ShBackendKafkaResource kafkaResource = new ShBackendKafkaResource(kafkaProperties); + + restMockMvc = MockMvcBuilders.standaloneSetup(kafkaResource).build(); } @Test void producesMessages() throws Exception { restMockMvc - .perform(post("/api/self-healing-service-kafka/publish/topic-produce?message=value-produce")) + .perform(post("/api/sh-backend-kafka/publish/topic-produce?message=value-produce")) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON)); @@ -83,13 +82,13 @@ class shBackendKafkaResourceIT { @Test void consumesMessages() throws Exception { - Map<String, Object> producerProps = new HashMap<>(getProducerProps()); + Map<String, Object> producerProps = new HashMap<>(getProducerProps("default-group")); KafkaProducer<String, String> producer = new KafkaProducer<>(producerProps); producer.send(new ProducerRecord<>("topic-consume", "value-consume")); MvcResult mvcResult = restMockMvc - .perform(get("/api/self-healing-service-kafka/consume?topic=topic-consume")) + .perform(get("/api/sh-backend-kafka/consume?topic=topic-consume")) .andExpect(status().isOk()) .andExpect(request().asyncStarted()) .andReturn(); @@ -104,21 +103,25 @@ class shBackendKafkaResourceIT { fail("Expected content data:value-consume not received"); } - private Map<String, String> getProducerProps() { - Map<String, String> producerProps = new HashMap<>(); - producerProps.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); - producerProps.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); - producerProps.put("bootstrap.servers", kafkaContainer.getBootstrapServers()); + private Map<String, Map<String, Object>> getProducerProps(String group) { + Map<String, String> producerGroupProps = new HashMap<>(); + producerGroupProps.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); + producerGroupProps.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); + producerGroupProps.put("bootstrap.servers", kafkaContainer.getBootstrapServers()); + Map<String, Map<String, Object>> producerProps = new HashMap<>(); + producerProps.put(group, new HashMap<>(producerGroupProps)); return producerProps; } - private Map<String, String> getConsumerProps(String group) { - Map<String, String> consumerProps = new HashMap<>(); - consumerProps.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); - consumerProps.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); - consumerProps.put("bootstrap.servers", kafkaContainer.getBootstrapServers()); - consumerProps.put("auto.offset.reset", "earliest"); - consumerProps.put("group.id", group); + private Map<String, Map<String, Object>> getConsumerProps(String group) { + Map<String, String> consumerGroupProps = new HashMap<>(); + consumerGroupProps.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); + consumerGroupProps.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); + consumerGroupProps.put("bootstrap.servers", kafkaContainer.getBootstrapServers()); + consumerGroupProps.put("auto.offset.reset", "earliest"); + consumerGroupProps.put("group.id", group); + Map<String, Map<String, Object>> consumerProps = new HashMap<>(); + consumerProps.put(group, new HashMap<>(consumerGroupProps)); return consumerProps; } } diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/StrategyApplicationResourceIT.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/StrategyApplicationResourceIT.java new file mode 100644 index 0000000000000000000000000000000000000000..bc0e17150884ea9bd64fd90e742b98b47ce6b50c --- /dev/null +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/StrategyApplicationResourceIT.java @@ -0,0 +1,421 @@ +package com.piacere.selfhealing.backend.web.rest; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.Matchers.hasItem; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; + +import com.piacere.selfhealing.backend.IntegrationTest; +import com.piacere.selfhealing.backend.domain.StrategyApplication; +import com.piacere.selfhealing.backend.repository.StrategyApplicationRepository; +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.List; +import java.util.Random; +import java.util.concurrent.atomic.AtomicLong; +import javax.persistence.EntityManager; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Base64Utils; + +/** + * Integration tests for the {@link StrategyApplicationResource} REST controller. + */ +@IntegrationTest +@AutoConfigureMockMvc +@WithMockUser +class StrategyApplicationResourceIT { + + private static final Instant DEFAULT_TIMESTAMP = Instant.ofEpochMilli(0L); + private static final Instant UPDATED_TIMESTAMP = Instant.now().truncatedTo(ChronoUnit.MILLIS); + + private static final String DEFAULT_SUMMARY = "AAAAAAAAAA"; + private static final String UPDATED_SUMMARY = "BBBBBBBBBB"; + + private static final byte[] DEFAULT_BUNDLE = TestUtil.createByteArray(1, "0"); + private static final byte[] UPDATED_BUNDLE = TestUtil.createByteArray(1, "1"); + private static final String DEFAULT_BUNDLE_CONTENT_TYPE = "image/jpg"; + private static final String UPDATED_BUNDLE_CONTENT_TYPE = "image/png"; + + private static final String ENTITY_API_URL = "/api/strategy-applications"; + private static final String ENTITY_API_URL_ID = ENTITY_API_URL + "/{id}"; + + private static Random random = new Random(); + private static AtomicLong count = new AtomicLong(random.nextInt() + (2 * Integer.MAX_VALUE)); + + @Autowired + private StrategyApplicationRepository strategyApplicationRepository; + + @Autowired + private EntityManager em; + + @Autowired + private MockMvc restStrategyApplicationMockMvc; + + private StrategyApplication strategyApplication; + + /** + * Create an entity for this test. + * + * This is a static method, as tests for other entities might also need it, + * if they test an entity which requires the current entity. + */ + public static StrategyApplication createEntity(EntityManager em) { + StrategyApplication strategyApplication = new StrategyApplication() + .timestamp(DEFAULT_TIMESTAMP) + .summary(DEFAULT_SUMMARY) + .bundle(DEFAULT_BUNDLE) + .bundleContentType(DEFAULT_BUNDLE_CONTENT_TYPE); + return strategyApplication; + } + + /** + * Create an updated entity for this test. + * + * This is a static method, as tests for other entities might also need it, + * if they test an entity which requires the current entity. + */ + public static StrategyApplication createUpdatedEntity(EntityManager em) { + StrategyApplication strategyApplication = new StrategyApplication() + .timestamp(UPDATED_TIMESTAMP) + .summary(UPDATED_SUMMARY) + .bundle(UPDATED_BUNDLE) + .bundleContentType(UPDATED_BUNDLE_CONTENT_TYPE); + return strategyApplication; + } + + @BeforeEach + public void initTest() { + strategyApplication = createEntity(em); + } + + @Test + @Transactional + void createStrategyApplication() throws Exception { + int databaseSizeBeforeCreate = strategyApplicationRepository.findAll().size(); + // Create the StrategyApplication + restStrategyApplicationMockMvc + .perform( + post(ENTITY_API_URL).contentType(MediaType.APPLICATION_JSON).content(TestUtil.convertObjectToJsonBytes(strategyApplication)) + ) + .andExpect(status().isCreated()); + + // Validate the StrategyApplication in the database + List<StrategyApplication> strategyApplicationList = strategyApplicationRepository.findAll(); + assertThat(strategyApplicationList).hasSize(databaseSizeBeforeCreate + 1); + StrategyApplication testStrategyApplication = strategyApplicationList.get(strategyApplicationList.size() - 1); + assertThat(testStrategyApplication.getTimestamp()).isEqualTo(DEFAULT_TIMESTAMP); + assertThat(testStrategyApplication.getSummary()).isEqualTo(DEFAULT_SUMMARY); + assertThat(testStrategyApplication.getBundle()).isEqualTo(DEFAULT_BUNDLE); + assertThat(testStrategyApplication.getBundleContentType()).isEqualTo(DEFAULT_BUNDLE_CONTENT_TYPE); + } + + @Test + @Transactional + void createStrategyApplicationWithExistingId() throws Exception { + // Create the StrategyApplication with an existing ID + strategyApplication.setId(1L); + + int databaseSizeBeforeCreate = strategyApplicationRepository.findAll().size(); + + // An entity with an existing ID cannot be created, so this API call must fail + restStrategyApplicationMockMvc + .perform( + post(ENTITY_API_URL).contentType(MediaType.APPLICATION_JSON).content(TestUtil.convertObjectToJsonBytes(strategyApplication)) + ) + .andExpect(status().isBadRequest()); + + // Validate the StrategyApplication in the database + List<StrategyApplication> strategyApplicationList = strategyApplicationRepository.findAll(); + assertThat(strategyApplicationList).hasSize(databaseSizeBeforeCreate); + } + + @Test + @Transactional + void getAllStrategyApplications() throws Exception { + // Initialize the database + strategyApplicationRepository.saveAndFlush(strategyApplication); + + // Get all the strategyApplicationList + restStrategyApplicationMockMvc + .perform(get(ENTITY_API_URL + "?sort=id,desc")) + .andExpect(status().isOk()) + .andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE)) + .andExpect(jsonPath("$.[*].id").value(hasItem(strategyApplication.getId().intValue()))) + .andExpect(jsonPath("$.[*].timestamp").value(hasItem(DEFAULT_TIMESTAMP.toString()))) + .andExpect(jsonPath("$.[*].summary").value(hasItem(DEFAULT_SUMMARY.toString()))) + .andExpect(jsonPath("$.[*].bundleContentType").value(hasItem(DEFAULT_BUNDLE_CONTENT_TYPE))) + .andExpect(jsonPath("$.[*].bundle").value(hasItem(Base64Utils.encodeToString(DEFAULT_BUNDLE)))); + } + + @Test + @Transactional + void getStrategyApplication() throws Exception { + // Initialize the database + strategyApplicationRepository.saveAndFlush(strategyApplication); + + // Get the strategyApplication + restStrategyApplicationMockMvc + .perform(get(ENTITY_API_URL_ID, strategyApplication.getId())) + .andExpect(status().isOk()) + .andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE)) + .andExpect(jsonPath("$.id").value(strategyApplication.getId().intValue())) + .andExpect(jsonPath("$.timestamp").value(DEFAULT_TIMESTAMP.toString())) + .andExpect(jsonPath("$.summary").value(DEFAULT_SUMMARY.toString())) + .andExpect(jsonPath("$.bundleContentType").value(DEFAULT_BUNDLE_CONTENT_TYPE)) + .andExpect(jsonPath("$.bundle").value(Base64Utils.encodeToString(DEFAULT_BUNDLE))); + } + + @Test + @Transactional + void getNonExistingStrategyApplication() throws Exception { + // Get the strategyApplication + restStrategyApplicationMockMvc.perform(get(ENTITY_API_URL_ID, Long.MAX_VALUE)).andExpect(status().isNotFound()); + } + + @Test + @Transactional + void putNewStrategyApplication() throws Exception { + // Initialize the database + strategyApplicationRepository.saveAndFlush(strategyApplication); + + int databaseSizeBeforeUpdate = strategyApplicationRepository.findAll().size(); + + // Update the strategyApplication + StrategyApplication updatedStrategyApplication = strategyApplicationRepository.findById(strategyApplication.getId()).get(); + // Disconnect from session so that the updates on updatedStrategyApplication are not directly saved in db + em.detach(updatedStrategyApplication); + updatedStrategyApplication + .timestamp(UPDATED_TIMESTAMP) + .summary(UPDATED_SUMMARY) + .bundle(UPDATED_BUNDLE) + .bundleContentType(UPDATED_BUNDLE_CONTENT_TYPE); + + restStrategyApplicationMockMvc + .perform( + put(ENTITY_API_URL_ID, updatedStrategyApplication.getId()) + .contentType(MediaType.APPLICATION_JSON) + .content(TestUtil.convertObjectToJsonBytes(updatedStrategyApplication)) + ) + .andExpect(status().isOk()); + + // Validate the StrategyApplication in the database + List<StrategyApplication> strategyApplicationList = strategyApplicationRepository.findAll(); + assertThat(strategyApplicationList).hasSize(databaseSizeBeforeUpdate); + StrategyApplication testStrategyApplication = strategyApplicationList.get(strategyApplicationList.size() - 1); + assertThat(testStrategyApplication.getTimestamp()).isEqualTo(UPDATED_TIMESTAMP); + assertThat(testStrategyApplication.getSummary()).isEqualTo(UPDATED_SUMMARY); + assertThat(testStrategyApplication.getBundle()).isEqualTo(UPDATED_BUNDLE); + assertThat(testStrategyApplication.getBundleContentType()).isEqualTo(UPDATED_BUNDLE_CONTENT_TYPE); + } + + @Test + @Transactional + void putNonExistingStrategyApplication() throws Exception { + int databaseSizeBeforeUpdate = strategyApplicationRepository.findAll().size(); + strategyApplication.setId(count.incrementAndGet()); + + // If the entity doesn't have an ID, it will throw BadRequestAlertException + restStrategyApplicationMockMvc + .perform( + put(ENTITY_API_URL_ID, strategyApplication.getId()) + .contentType(MediaType.APPLICATION_JSON) + .content(TestUtil.convertObjectToJsonBytes(strategyApplication)) + ) + .andExpect(status().isBadRequest()); + + // Validate the StrategyApplication in the database + List<StrategyApplication> strategyApplicationList = strategyApplicationRepository.findAll(); + assertThat(strategyApplicationList).hasSize(databaseSizeBeforeUpdate); + } + + @Test + @Transactional + void putWithIdMismatchStrategyApplication() throws Exception { + int databaseSizeBeforeUpdate = strategyApplicationRepository.findAll().size(); + strategyApplication.setId(count.incrementAndGet()); + + // If url ID doesn't match entity ID, it will throw BadRequestAlertException + restStrategyApplicationMockMvc + .perform( + put(ENTITY_API_URL_ID, count.incrementAndGet()) + .contentType(MediaType.APPLICATION_JSON) + .content(TestUtil.convertObjectToJsonBytes(strategyApplication)) + ) + .andExpect(status().isBadRequest()); + + // Validate the StrategyApplication in the database + List<StrategyApplication> strategyApplicationList = strategyApplicationRepository.findAll(); + assertThat(strategyApplicationList).hasSize(databaseSizeBeforeUpdate); + } + + @Test + @Transactional + void putWithMissingIdPathParamStrategyApplication() throws Exception { + int databaseSizeBeforeUpdate = strategyApplicationRepository.findAll().size(); + strategyApplication.setId(count.incrementAndGet()); + + // If url ID doesn't match entity ID, it will throw BadRequestAlertException + restStrategyApplicationMockMvc + .perform( + put(ENTITY_API_URL).contentType(MediaType.APPLICATION_JSON).content(TestUtil.convertObjectToJsonBytes(strategyApplication)) + ) + .andExpect(status().isMethodNotAllowed()); + + // Validate the StrategyApplication in the database + List<StrategyApplication> strategyApplicationList = strategyApplicationRepository.findAll(); + assertThat(strategyApplicationList).hasSize(databaseSizeBeforeUpdate); + } + + @Test + @Transactional + void partialUpdateStrategyApplicationWithPatch() throws Exception { + // Initialize the database + strategyApplicationRepository.saveAndFlush(strategyApplication); + + int databaseSizeBeforeUpdate = strategyApplicationRepository.findAll().size(); + + // Update the strategyApplication using partial update + StrategyApplication partialUpdatedStrategyApplication = new StrategyApplication(); + partialUpdatedStrategyApplication.setId(strategyApplication.getId()); + + partialUpdatedStrategyApplication.timestamp(UPDATED_TIMESTAMP).summary(UPDATED_SUMMARY); + + restStrategyApplicationMockMvc + .perform( + patch(ENTITY_API_URL_ID, partialUpdatedStrategyApplication.getId()) + .contentType("application/merge-patch+json") + .content(TestUtil.convertObjectToJsonBytes(partialUpdatedStrategyApplication)) + ) + .andExpect(status().isOk()); + + // Validate the StrategyApplication in the database + List<StrategyApplication> strategyApplicationList = strategyApplicationRepository.findAll(); + assertThat(strategyApplicationList).hasSize(databaseSizeBeforeUpdate); + StrategyApplication testStrategyApplication = strategyApplicationList.get(strategyApplicationList.size() - 1); + assertThat(testStrategyApplication.getTimestamp()).isEqualTo(UPDATED_TIMESTAMP); + assertThat(testStrategyApplication.getSummary()).isEqualTo(UPDATED_SUMMARY); + assertThat(testStrategyApplication.getBundle()).isEqualTo(DEFAULT_BUNDLE); + assertThat(testStrategyApplication.getBundleContentType()).isEqualTo(DEFAULT_BUNDLE_CONTENT_TYPE); + } + + @Test + @Transactional + void fullUpdateStrategyApplicationWithPatch() throws Exception { + // Initialize the database + strategyApplicationRepository.saveAndFlush(strategyApplication); + + int databaseSizeBeforeUpdate = strategyApplicationRepository.findAll().size(); + + // Update the strategyApplication using partial update + StrategyApplication partialUpdatedStrategyApplication = new StrategyApplication(); + partialUpdatedStrategyApplication.setId(strategyApplication.getId()); + + partialUpdatedStrategyApplication + .timestamp(UPDATED_TIMESTAMP) + .summary(UPDATED_SUMMARY) + .bundle(UPDATED_BUNDLE) + .bundleContentType(UPDATED_BUNDLE_CONTENT_TYPE); + + restStrategyApplicationMockMvc + .perform( + patch(ENTITY_API_URL_ID, partialUpdatedStrategyApplication.getId()) + .contentType("application/merge-patch+json") + .content(TestUtil.convertObjectToJsonBytes(partialUpdatedStrategyApplication)) + ) + .andExpect(status().isOk()); + + // Validate the StrategyApplication in the database + List<StrategyApplication> strategyApplicationList = strategyApplicationRepository.findAll(); + assertThat(strategyApplicationList).hasSize(databaseSizeBeforeUpdate); + StrategyApplication testStrategyApplication = strategyApplicationList.get(strategyApplicationList.size() - 1); + assertThat(testStrategyApplication.getTimestamp()).isEqualTo(UPDATED_TIMESTAMP); + assertThat(testStrategyApplication.getSummary()).isEqualTo(UPDATED_SUMMARY); + assertThat(testStrategyApplication.getBundle()).isEqualTo(UPDATED_BUNDLE); + assertThat(testStrategyApplication.getBundleContentType()).isEqualTo(UPDATED_BUNDLE_CONTENT_TYPE); + } + + @Test + @Transactional + void patchNonExistingStrategyApplication() throws Exception { + int databaseSizeBeforeUpdate = strategyApplicationRepository.findAll().size(); + strategyApplication.setId(count.incrementAndGet()); + + // If the entity doesn't have an ID, it will throw BadRequestAlertException + restStrategyApplicationMockMvc + .perform( + patch(ENTITY_API_URL_ID, strategyApplication.getId()) + .contentType("application/merge-patch+json") + .content(TestUtil.convertObjectToJsonBytes(strategyApplication)) + ) + .andExpect(status().isBadRequest()); + + // Validate the StrategyApplication in the database + List<StrategyApplication> strategyApplicationList = strategyApplicationRepository.findAll(); + assertThat(strategyApplicationList).hasSize(databaseSizeBeforeUpdate); + } + + @Test + @Transactional + void patchWithIdMismatchStrategyApplication() throws Exception { + int databaseSizeBeforeUpdate = strategyApplicationRepository.findAll().size(); + strategyApplication.setId(count.incrementAndGet()); + + // If url ID doesn't match entity ID, it will throw BadRequestAlertException + restStrategyApplicationMockMvc + .perform( + patch(ENTITY_API_URL_ID, count.incrementAndGet()) + .contentType("application/merge-patch+json") + .content(TestUtil.convertObjectToJsonBytes(strategyApplication)) + ) + .andExpect(status().isBadRequest()); + + // Validate the StrategyApplication in the database + List<StrategyApplication> strategyApplicationList = strategyApplicationRepository.findAll(); + assertThat(strategyApplicationList).hasSize(databaseSizeBeforeUpdate); + } + + @Test + @Transactional + void patchWithMissingIdPathParamStrategyApplication() throws Exception { + int databaseSizeBeforeUpdate = strategyApplicationRepository.findAll().size(); + strategyApplication.setId(count.incrementAndGet()); + + // If url ID doesn't match entity ID, it will throw BadRequestAlertException + restStrategyApplicationMockMvc + .perform( + patch(ENTITY_API_URL) + .contentType("application/merge-patch+json") + .content(TestUtil.convertObjectToJsonBytes(strategyApplication)) + ) + .andExpect(status().isMethodNotAllowed()); + + // Validate the StrategyApplication in the database + List<StrategyApplication> strategyApplicationList = strategyApplicationRepository.findAll(); + assertThat(strategyApplicationList).hasSize(databaseSizeBeforeUpdate); + } + + @Test + @Transactional + void deleteStrategyApplication() throws Exception { + // Initialize the database + strategyApplicationRepository.saveAndFlush(strategyApplication); + + int databaseSizeBeforeDelete = strategyApplicationRepository.findAll().size(); + + // Delete the strategyApplication + restStrategyApplicationMockMvc + .perform(delete(ENTITY_API_URL_ID, strategyApplication.getId()).accept(MediaType.APPLICATION_JSON)) + .andExpect(status().isNoContent()); + + // Validate the database contains one less item + List<StrategyApplication> strategyApplicationList = strategyApplicationRepository.findAll(); + assertThat(strategyApplicationList).hasSize(databaseSizeBeforeDelete - 1); + } +} diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/StrategyResourceIT.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/StrategyResourceIT.java index 4274b3a813364a7dc56ffd478a73aaa3cbadb28d..2c367144fc112c62d15cf4fd50a0c89cea450a1b 100644 --- a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/StrategyResourceIT.java +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/StrategyResourceIT.java @@ -8,8 +8,6 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import com.piacere.selfhealing.backend.IntegrationTest; import com.piacere.selfhealing.backend.domain.Strategy; import com.piacere.selfhealing.backend.repository.StrategyRepository; -import com.piacere.selfhealing.backend.web.rest.StrategyResource; - import java.util.List; import java.util.Random; import java.util.concurrent.atomic.AtomicLong; @@ -22,6 +20,7 @@ import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; import org.springframework.test.web.servlet.MockMvc; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Base64Utils; /** * Integration tests for the {@link StrategyResource} REST controller. @@ -37,8 +36,8 @@ class StrategyResourceIT { private static final String DEFAULT_DESCRIPTION = "AAAAAAAAAA"; private static final String UPDATED_DESCRIPTION = "BBBBBBBBBB"; - private static final String DEFAULT_BPMN = "AAAAAAAAAA"; - private static final String UPDATED_BPMN = "BBBBBBBBBB"; + private static final String DEFAULT_CONFIGURATION = "AAAAAAAAAA"; + private static final String UPDATED_CONFIGURATION = "BBBBBBBBBB"; private static final String ENTITY_API_URL = "/api/strategies"; private static final String ENTITY_API_URL_ID = ENTITY_API_URL + "/{id}"; @@ -64,7 +63,7 @@ class StrategyResourceIT { * if they test an entity which requires the current entity. */ public static Strategy createEntity(EntityManager em) { - Strategy strategy = new Strategy().code(DEFAULT_CODE).description(DEFAULT_DESCRIPTION).bpmn(DEFAULT_BPMN); + Strategy strategy = new Strategy().code(DEFAULT_CODE).description(DEFAULT_DESCRIPTION).configuration(DEFAULT_CONFIGURATION); return strategy; } @@ -75,7 +74,7 @@ class StrategyResourceIT { * if they test an entity which requires the current entity. */ public static Strategy createUpdatedEntity(EntityManager em) { - Strategy strategy = new Strategy().code(UPDATED_CODE).description(UPDATED_DESCRIPTION).bpmn(UPDATED_BPMN); + Strategy strategy = new Strategy().code(UPDATED_CODE).description(UPDATED_DESCRIPTION).configuration(UPDATED_CONFIGURATION); return strategy; } @@ -99,7 +98,7 @@ class StrategyResourceIT { Strategy testStrategy = strategyList.get(strategyList.size() - 1); assertThat(testStrategy.getCode()).isEqualTo(DEFAULT_CODE); assertThat(testStrategy.getDescription()).isEqualTo(DEFAULT_DESCRIPTION); - assertThat(testStrategy.getBpmn()).isEqualTo(DEFAULT_BPMN); + assertThat(testStrategy.getConfiguration()).isEqualTo(DEFAULT_CONFIGURATION); } @Test @@ -151,7 +150,7 @@ class StrategyResourceIT { .andExpect(jsonPath("$.[*].id").value(hasItem(strategy.getId().intValue()))) .andExpect(jsonPath("$.[*].code").value(hasItem(DEFAULT_CODE))) .andExpect(jsonPath("$.[*].description").value(hasItem(DEFAULT_DESCRIPTION))) - .andExpect(jsonPath("$.[*].bpmn").value(hasItem(DEFAULT_BPMN))); + .andExpect(jsonPath("$.[*].configuration").value(hasItem(DEFAULT_CONFIGURATION.toString()))); } @Test @@ -168,7 +167,7 @@ class StrategyResourceIT { .andExpect(jsonPath("$.id").value(strategy.getId().intValue())) .andExpect(jsonPath("$.code").value(DEFAULT_CODE)) .andExpect(jsonPath("$.description").value(DEFAULT_DESCRIPTION)) - .andExpect(jsonPath("$.bpmn").value(DEFAULT_BPMN)); + .andExpect(jsonPath("$.configuration").value(DEFAULT_CONFIGURATION.toString())); } @Test @@ -190,7 +189,7 @@ class StrategyResourceIT { Strategy updatedStrategy = strategyRepository.findById(strategy.getId()).get(); // Disconnect from session so that the updates on updatedStrategy are not directly saved in db em.detach(updatedStrategy); - updatedStrategy.code(UPDATED_CODE).description(UPDATED_DESCRIPTION).bpmn(UPDATED_BPMN); + updatedStrategy.code(UPDATED_CODE).description(UPDATED_DESCRIPTION).configuration(UPDATED_CONFIGURATION); restStrategyMockMvc .perform( @@ -206,7 +205,7 @@ class StrategyResourceIT { Strategy testStrategy = strategyList.get(strategyList.size() - 1); assertThat(testStrategy.getCode()).isEqualTo(UPDATED_CODE); assertThat(testStrategy.getDescription()).isEqualTo(UPDATED_DESCRIPTION); - assertThat(testStrategy.getBpmn()).isEqualTo(UPDATED_BPMN); + assertThat(testStrategy.getConfiguration()).isEqualTo(UPDATED_CONFIGURATION); } @Test @@ -291,7 +290,7 @@ class StrategyResourceIT { Strategy testStrategy = strategyList.get(strategyList.size() - 1); assertThat(testStrategy.getCode()).isEqualTo(DEFAULT_CODE); assertThat(testStrategy.getDescription()).isEqualTo(DEFAULT_DESCRIPTION); - assertThat(testStrategy.getBpmn()).isEqualTo(DEFAULT_BPMN); + assertThat(testStrategy.getConfiguration()).isEqualTo(DEFAULT_CONFIGURATION); } @Test @@ -306,7 +305,7 @@ class StrategyResourceIT { Strategy partialUpdatedStrategy = new Strategy(); partialUpdatedStrategy.setId(strategy.getId()); - partialUpdatedStrategy.code(UPDATED_CODE).description(UPDATED_DESCRIPTION).bpmn(UPDATED_BPMN); + partialUpdatedStrategy.code(UPDATED_CODE).description(UPDATED_DESCRIPTION).configuration(UPDATED_CONFIGURATION); restStrategyMockMvc .perform( @@ -322,7 +321,7 @@ class StrategyResourceIT { Strategy testStrategy = strategyList.get(strategyList.size() - 1); assertThat(testStrategy.getCode()).isEqualTo(UPDATED_CODE); assertThat(testStrategy.getDescription()).isEqualTo(UPDATED_DESCRIPTION); - assertThat(testStrategy.getBpmn()).isEqualTo(UPDATED_BPMN); + assertThat(testStrategy.getConfiguration()).isEqualTo(UPDATED_CONFIGURATION); } @Test diff --git a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/errors/ExceptionTranslatorIT.java b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/errors/ExceptionTranslatorIT.java index 75a171a6dae01642568d4adce7d9a7ab1600e749..cf08a33ea73d71a0481c57677a8b106269cca3ee 100644 --- a/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/errors/ExceptionTranslatorIT.java +++ b/git/sh-backend/src/test/java/com/piacere/selfhealing/backend/web/rest/errors/ExceptionTranslatorIT.java @@ -7,9 +7,6 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import com.piacere.selfhealing.backend.IntegrationTest; -import com.piacere.selfhealing.backend.web.rest.errors.ErrorConstants; -import com.piacere.selfhealing.backend.web.rest.errors.ExceptionTranslator; - import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; diff --git a/git/sh-backend/src/test/resources/config/application.yml b/git/sh-backend/src/test/resources/config/application.yml index dcd913f2e43286237383fef22b57e5d3bec567e6..72eb4188c49967046ed5bf8e2231004f48a9d37a 100644 --- a/git/sh-backend/src/test/resources/config/application.yml +++ b/git/sh-backend/src/test/resources/config/application.yml @@ -31,7 +31,7 @@ spring: enabled: false datasource: type: com.zaxxer.hikari.HikariDataSource - url: jdbc:h2:mem:shBackend;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE + url: jdbc:h2:mem:shbackend;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE name: username: password: @@ -67,13 +67,13 @@ spring: basename: i18n/messages task: execution: - thread-name-prefix: self-healing-service-task- + thread-name-prefix: sh-backend-task- pool: core-size: 1 max-size: 50 queue-capacity: 10000 scheduling: - thread-name-prefix: self-healing-service-scheduling- + thread-name-prefix: sh-backend-scheduling- pool: size: 1 thymeleaf: @@ -104,7 +104,7 @@ jhipster: authentication: jwt: # This token must be encoded using Base64 (you can type `echo 'secret-key'|base64` on your command line) - base64-secret: MDczODYyNzM4OThhMmNhYmUwNzk2OTNiYzFlYTQ0ZTJhNzkyMTczZjE2YzMzNWJhZWQ3MTBhNGFlYzU4OTM5MTNhNDU3YmI2NzJjMzMyY2E4ZGM3NWNjYjljZTc5ZjZiZmU0M2FmODExYzMyZDRkNDNiYWFiYzI3Zjk5MGM5YmI= + base64-secret: MDBhMjI4YTczOWZlZjFhOTMzMDMyNmI1OGFiODViZjFkMzlkMzI1ZDJjZmNiOGM1YmVlNDJjNDhkNDQ3Mzk4YjEyZmIxZmYzODRhMWZmMDE0MDZlYjViOTNlNjk1Y2I1M2ZjYWQ3NmJkOGZlOWVhNDRjZTZkODgyZDNlOWRjZDI= # Token is valid 24 hours token-validity-in-seconds: 86400 kafka: @@ -112,7 +112,7 @@ kafka: consumer: key.deserializer: org.apache.kafka.common.serialization.StringDeserializer value.deserializer: org.apache.kafka.common.serialization.StringDeserializer - group.id: self-healing-service + group.id: sh-backend auto.offset.reset: earliest producer: key.serializer: org.apache.kafka.common.serialization.StringSerializer diff --git a/git/sh-backend/src/test/resources/deployment-tests/createDeployment.sh b/git/sh-backend/src/test/resources/deployment-tests/createDeployment.sh new file mode 100644 index 0000000000000000000000000000000000000000..cd61b9ea5e1d6ea126cb9b11c67c300553acdecd --- /dev/null +++ b/git/sh-backend/src/test/resources/deployment-tests/createDeployment.sh @@ -0,0 +1 @@ +curl --fail-with-body -s -L -X POST "http://192.168.56.1:8081/api/self-healing/deployments" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"deployment_id\": \"posidonia.ct\", \"deployment_bundle\": { \"base64\": \"UEsDBAoAAAAAAHKaIlgAAAAAAAAAAAAAAAAGABwAYXNzZXQvVVQJAAPIYZRlz2GUZXV4CwABBOgDAAAE6AMAAFBLAwQKAAAAAABymiJYAAAAAAAAAAAAAAAADgAcAGFzc2V0Ly5naXRrZWVwVVQJAAPIYZRlyGGUZXV4CwABBOgDAAAE6AMAAFBLAwQUAAAACABymiJYFtXDGHMAAAClAAAACwAcAGNvbmZpZy55YW1sVVQJAAPIYZRlyWGUZXV4CwABBOgDAAAE6AMAAF2KOw4CMQxE+5wiEnVyAHrEAThAZHmdjUU+YHuLvT3ZpUFU8+bNhBAcA15d8MvAJ0lSLQlHz7xOZyQCeUib/CI5CDpSaqOzDeF+nJRwE7b939acCkGd9Xe5+ODvpAabnXyroMb4IBAsX7PwmW3Xd3Uxxg9QSwMECgAAAAAAcpoiWAAAAAAAAAAAAAAAABIAHABkb2NrZXJfc3NoX2NvbmZpZy9VVAkAA8hhlGXPYZRldXgLAAEE6AMAAAToAwAAUEsDBBQAAAAIAHKaIljHk+VaWQAAAHIAAAAdABwAZG9ja2VyX3NzaF9jb25maWcvY29uZmlnLnlhbWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAA4+LS1dXlSs1Lz8xLtVJIzCvOTMpJ5crMKygtsVLgUlDQVXDxd/Z2DYoPDvaIDw12DUIX8/APDkEWCwjyDHMMcY33do2Md3YNCuHKLy0BG1Zdy8Wlp6fHBQBQSwMECgAAAAAAcpoiWL4XHygkAAAAJAAAAB4AHABkb2NrZXJfc3NoX2NvbmZpZy9pbnZlbnRvcnkuajJVVAkAA8hhlGXIYZRldXgLAAEE6AMAAAToAwAAbG9jYWxob3N0IGFuc2libGVfY29ubmVjdGlvbj1sb2NhbAoKUEsDBBQAAAAIAHKaIlj4ge7SqgEAAFwFAAAaABwAZG9ja2VyX3NzaF9jb25maWcvbWFpbi55bWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAApVPBTsJAEL37FRMuaGKBkya9Ga3BkIgBNfHUbHandm272+wuEIL67U5pCxUiRe2lmzf7Zt682fE878SDWFtnfUg1Z2lxPgGYM2N9+gPMLBrFMvShs1rRHZ3M8tMuqnn3HLo34+tRMAmn02H4NA0m3TP4+OisaUWeNspwPH1sUHIj58xhmODyEPNhcvd89RiEo+AlvA4m2wyO2aQS7UEpGZWdGYRIpwINfPZ7uWQcDXoCM93vOTSGRdpkaxJAJFP0qzPpYS4mIT+zOpur1pFwH4Q0yJ02y00g04LwweVg8E0XN0iEA4L6UoTGMlhIFzeNAa6VQ+WqAlzny63gKlaa1yTVDhefwPVgWkt3dnu42Omh8lbhAlKpEJgjSICO2tuqUhc0qX5p+p68Igsx9oaRG7S1U8f7bm0cko+RfD1s8fsGAhjSWweheYKmgZb4PdUFGkexDzSHb/EnWq0iVq/YbvxOUCnplrfk0NGmHjPhbZPHTnm7QWWf/ZLee7NatSxPSfj7rjg94/E/KjcJeyrWyX/yoIJkJDlzUqvQyax+WGaOmzuMc7R2N/oFUEsDBBQAAAAIAHKaIljHFLSsRwAAAFIAAAAcABwAZG9ja2VyX3NzaF9jb25maWcvc3NoX2tleS5qMlVUCQADyGGUZchhlGV1eAsAAQToAwAABOgDAAAVxVEKgCAQBcCrPPBQfZs+cUFd07WI6O7R/MzjsBGDx5JBTK1E0GZsBlP4UyWCtduNJIUTlr2hD40r8H8vrBOXWEaUlODeD1BLAwQUAAAACABymiJY0AxvkNwMAADhnQAACgAcAGRvbWwuZWNvcmVVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAA7V1Jc9u4Er7nV6g055hZLlOpOFOOLXv0YtkqyfHMzQWRLRkTkuADSVnKrx+Am8BFEheAgmuSS2wLy4dGd6M3QJ//2Dj2YA3Ux8Q9H74/ezccgGsSC7ur8+H3h+u3vw//+PLmM5iEwqfRFJk/0AoGGwd/yjp94J3YMK7/if39fPgcBN4nw3h5eTkjzuqM0JXx92ScNfHzTV4+Ri0+vHv3njW7nZvP4KC32PUD5JowfDNg/+KeEYZcXzBt7PkQDQDOkg/ywRjxZsOBixzW2CKOzX72v8/GuZ4eRiZQeOtR8g+YwRmERtp0SmGJN0nXL2z+z3DhuiRAAVutP/BJSE02MpvvbAVu1IK1sSBA2PYHP2B7PlwgHxJSDQdrZIe8fZhOehaNbFR1XGIbRpsAXE5ZP+vLO2yqe5jE8WzMSXULa7CzLv+7+vb7u7jLZ0NcQLyiebjwYoB+Qik2kBPNWZtYRtolgjUQSJd+kACGSxv5Pl5ixjEDtv+fgq3HKRLzVPRhul9X95PbCbH4QhhGD+gDa+qfD38z0tkM3mRkgwNukEwQLSigoRmEFNnXgNj/UDHTRRBQvAiDjDsSFh4ObPIC9CsJXYvJQLoe/g8exAGuUID4Hwa1eJBhHjFYTJLEES1YotAOHvk23eIAGOLz4cez9+n21l3MDJZsT7iIJItBHmMEM9rkYYqbQRD+bFzsfr5FW6AiLpO4jK1cTtbzIZsfOgPC7pIiP+kJIqb8J8Y492sPyNiIJoUA/4xFYjgIPS/b/7dVDBDxX9QJjMvkh3FhffJxEi/AToJSpJ/4d+Ne+KUf2i3xinVqRLpYdC/FvioIhswAryE/TQNEcqYv8EUrZuqKZBm6Jl8Ssmfw/xDTSF36IpbCvlXQRuh5YK/Y6SKo9+Yaf0oJAxJshwO0YOtnJEzG76jb2ek4lKW+JS31FvvBbrn7zresRUcWiAyBhgK6Q6dsv8fKKFA+3jkFujPB2A1gBfR+wY0fWWSYvzoyyJWF61e3/muboEAuE3x9dUT4SogNyJVLhszjSc16yUeBwxwmk094x37VTRBEd0byul0Fy20NxgLfpNjLmbI9Yyrbazu3WPo52cXATkjnP5BmsHIWG9x7HvGZh7mvieFRsLg7CP69K4udCya+fCe+RC8LPJtsY/u2EbWuso4KzZ14ErSwYZ+QG20HlUE8Hj4ibgTrWAykRDlxUV2Z3iUW1IJwMHRQQNN170Rx+qWK1WLydpaQHmdDTjk20yviiV6thYUmRl7fy2Jd5K7Ayp8He1SxRC53sASGqrCz2wNCGy0N/5EbOsDOyP63qHZUQBfzODvqcpQqnKEZ/DoU7HTgPpA7dlTxCWrtXDX87nuIrWiu17iPMQX/wsFzakWLpDm6k0oo+p9RXP9BvfFA5h6YrJPJ+a53XquKy2IrOfxreix9Gr2XzO5hw2Fk+yU1W8uda6Fev8F2ijDdP74IqiMjhz5QbaxeBUmK1liQvSKUaWVHG0QLzAVEy/D9d8ZF0+j3nlhWKwfSYyt/IdTSLZY6j2pzeikdYUNQfWQXu2sGiGiEaIHMH+D2wCHsL0Ix077qplxxTP0KJ7FbqcqJfdiiwqlUg9NHjDQL89U0OPYUDV3uooXKAqbV0zX19wTaDeoELptpmWXwgigI8IowjtKvq7z7U1665gfx7FKTesdq1ZbsRGuc5SitgJEEXJ/R0JewgA6OTklUYOMRHyxuNdAl0wotJCZlkGwMRWkiP3RkA+2KyqdmVSlRcjDXKUzr7Ph9ncwPC2RZftsoAYSOTKNC7n9JjSRDke1eDUbhe9w118K2hZeDqyg96GC8rrCrG5zHtBhbN5+ixJZ9Sz2zo6cEyzjp5ZJmtAmqrbWmBBJNtFIxkFHfyi9WnNc39HFlze7O1o8+b2HtV5W292Hw83x6u+Ai35QwYFxyF6Xk5RsuK3B56otQCfhu0rFUAPXZuJy5WsGcx51V4Foi1A7TdVIUfuFfzIGusSLDVAwgN7odIHaUjws2YIZ8+SN3jSlxG1TEF+g4qhhJiaRQEnodpeSGj6FEOhgNKA62N+1BzsUhVGB0IXgh9Ec7dHdxZxW4aGi3VCsT4mKmWdjGztgYCi3k4kQ9hFTZWiwc9HIfr6vFyoNRAay2rwdpri6zfCtRL8OyqL3apCFl6F6w7mTZUfk6sENtjWhqaeHUMCBzE9k7YhaJd/jk6EhGB5nPzLe7Yla0W1O2y5AeMQ1CZE/isSQoZDX1H/lE47EwauMLv2pqRPoGbRNkfUU2v7BOD5hYt0Kzb9i1jiK7Gl1ffL996CA2vCYvu6lXnH636mTG1OUszFvRYnz3MJrdXdxmV/PfH2g8+rvQ+IO0itC+jvEfWEj7lXeW44hIKqFiOCAmsbUJYy0pcaaESgjTVJYstMYVEB1RmdiiWpeTifogY9r9gnszG83nB9VA3KKkBToHKPNeVA+2UXv35YjT0hoRbpBzqHbzxPDuIVOt2NxgO0FMzEu5pd2Qrizv0yoFHtu0x8zyWmWLOu28Mm+64Aw0JFzUqWt1H2XGcwD5p1hOfWISCeV9kqA44BC6fXIWepVd+2kYWSdQphc+mUzU9LMptMuL26T8IlPJ1TFLD9Uojsofjr1LCVsfWHAhwiCq6lpBkqibkQvQyLh+mt4S2EU+WyUHCoHTznc1sc/Pams3bJ2chW5xvEKuroMp07mWmmJtzpwjnnJGMNFd7ujI5Mfc66zML2fj6cGgxuTiZiTfl3mcjJ34uKsZpMwzlpzMNFiPk3YWZTFQeVCf5Rsb2eTXlDgSX2Pg5whQLciaoWmXds26H42mJ+3U0HT6vPWxiexigL8BabuXc/Nkjuiy1vZxZAlqkdPVrb5sE+OfcHX6Jwz283nEbQe0RKLk6ho+SXsjp57kPON4Sha63ZnG6o99CqtXkVj+SeTXZUo7ROIccl+1APGcT56Gseu1owOs6ljYCSQ5Y5A/mf+tjknKFV278qunNaKYO0oN3zidq3zJ61kMRxw7FE/xLu8+wyndQ4Xx0J0p16PdVPeELpjN9SMUYjejyu6VwVLx7nTcYlFUNSu8yzCmFXhd0ayJHTqty3gSMI/RIJ2xWOCBa9V+U2qvCyRbEE9RHOTHRcj+AbOsjXOoOzsrACiTw3vQ+hkl+rQkk0mji1g61RlUkyjdjD4pFM+plkDty31Q8KybZ1R9EaCHNHhlTESvJKGDNvNTg9I3HedmGvCIs6bfPQ1JstPnGSC9VFCgWmU16sPl1BhPZfh0LmN7sManq29agE3clfA0aXvvi/lCL2jb9s0zBohJzU08iJIbTeGCTdBSRKK+Km+sJxMcKxVKpEoW49V9gbyaHHJVxYEb2L0csR6A9PeMWqNRdSe8Ncvs9MTxM61uQCVpbxT1YFesQs2mhHuLB5eQa2vgHP7uhaIFndhHHaFlsYbS6/Y6q8esTu4EmsFGC9DnGgJ3BZ5WEuoYx83f9e+vIq/z9w9V3IU/Be/oRKDcjQdy7MbD3f3d6ECF0OTi7uJmNKt16+mv+9k3oemHg8POH4SmH6UpkBdEHb5oLe5IkXZ3pE7wDIgUuvccd6ak7f0VgUuUUWS0CfbcAGmjn2Q9rZN+YWWTR3WyPglpxS8ITj5pFSGt/PbVHvLNbH1rbEHdh2uy7/ichW6AHZgm3RXyTmmmPm6DQfyV2E2pEtUXYnOWdFeSFnGagpJ+1VzmMzQZyr4eoFk7USa7MRHTKl41X462S7G3+ObmXDnsqTOFGTCFqcFmr1hliLR4vypD08/LVajwVkZTlOW3NlSmUqM5990O7aemMtbcUcJQF+83VwY1j2qEdUxmUoAN9rlF+yqeb6449JctlG+OZSVJQsmMKHP+HgAd95B/qlsY7FhZviparJ0nFeRozZ4O8vwD/nWBTKovL6miOubTPbknVL+NCZ+QqKfrTZII33SVBVi9Fpso4zXXD/hzSCeV833X41+V8qncR/VFFWrYQrtHmJL8VPT9p9pwRKPKgp0LdqymQBWHFkqPVJUulLzfFg/R7M37nUj1p3h6zFKdaKUV0Hp7svKXGRttQYlQ8jIQpfhC3S2QlW8gXoAd/LPxN3bl+pXyDuzTFimHe2HM/p7wZ/YW5QGCP8UqH2Gq3Iu+3Y8oYocNbo6JZDZE+syTcVQcWySKcOB13WDmXpD36UBKQsBsXxLdiGzhe2Mb3kzMfb20/BdvaZwp0qX0IC9v6fZEkSttKyza26hrhG20wDYOJHxho0xkjCmXhDrINTXljEpNs/crWHMaUqLy2adi8nwriLt8+bXAxH5Nfa1JcHKPBj7hY1BxGY7qNyGOReQnaCPjMeTkGrtee37JnwkUNru4qTWO6BZe4QSQzwi4sKH3qZnNu4fPm8/f3JZmv8eYpvGfvrz5F1BLAwQKAAAAAABymiJYAAAAAAAAAAAAAAAADgAcAEVsYXN0aWNTZWFyY2gvVVQJAAPIYZRlz2GUZXV4CwABBOgDAAAE6AMAAFBLAwQUAAAACABymiJYL0o+t2oAAACVAAAAGQAcAEVsYXN0aWNTZWFyY2gvY29uZmlnLnlhbWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAbc09CsMwDIbhXafQBewDZO9U6JKxFKGYj1bEUY3/ILcvndv9fXgphEDmZfSFmAObt66eIA11okoZW7YkVgRZW7fUoDW9ZB7/82pTO2THKZf1ivOmB37pe/Tvke8Pgj/NsbB6sy2DYoz0AVBLAwQUAAAACABymiJYrDR6qtYAAAC1AQAAHwAcAEVsYXN0aWNTZWFyY2gvZWxhc3RpY3NlYXJjaC55bWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAXY9BjoMwDEX3nMLqPkizzX7OEbnBQDSAkW06ak8/SZuMaHfk+Rn/75zrOgcbruThe0G1FJVQ4gy/yWaIhxqvEHkb03QIWuKtA5hZTT0oyY1Ew8gS6LycFeGF1OcPAPd8eKhK/6neUKpJGgY0DENqpGxfLm248FRm/oRe0Zq88UD9q01VAOKSS5B84iFp5Bz/3ivREGql//Fstvc7i3moxAQ3LeQdP0+W1B5GXJTOeMVy2efVo/Ers2n+1d6vtLLcc6f4czJypZlwD5oeOe3X1CDuKdS7f1BLAwQUAAAACABymiJYVezrlrAAAACMAQAAGgAcAEVsYXN0aWNTZWFyY2gvaW52ZW50b3J5LmoyVVQJAAPIYZRlyWGUZXV4CwABBOgDAAAE6AMAAJWQQQrCMBBF9zlFTyDqRhCy9AQupQxpnNJgMgmZNFBK727aQkFEUWY1/78/fEbcrNfK1uJwPO32ZQ5CrNI5q8i1UMSmsQjaE6FOxpNcbGGIkyKNwBgzRgh9Y40GEwCt4mQ0o4q6g+zkOFa/09U0lQorxtD6CJeVuC5ELf69Vt29s8VAh5SAlEP5Rr0gaQgov3X4/BrmbpP7kpe6HPS8acWHEE1WCeGBA7TG4hyaF/EEUEsDBBQAAAAIAHKaIlgjhY5DkQAAAOoAAAAWABwARWxhc3RpY1NlYXJjaC9tYWluLnltbFVUCQADyGGUZclhlGV1eAsAAQToAwAABOgDAABljtEOwjAIRd/7FXyANPq0pD9jWEXXjJWlNIv9ezs1Jou8cO8NHEBE5xAmtWoBRCPJrp0DWAtfK9lsoRsAhHsS/ui9VqpTACgqbL/QKlUOQKNxfkP2vajLQvnW42xpFMYHCT0bpNzHRYCFrKbov92YSpxO2+Avgz93xuGJP9gq1EbVGTB14tbvamlwYPm2iHsBUEsDBAoAAAAAAHKaIli5fWUrPQAAAD0AAAAYABwARWxhc3RpY1NlYXJjaC9zc2hfa2V5LmoyVVQJAAPIYZRlyGGUZXV4CwABBOgDAAAE6AMAAHt7IGluc3RhbmNlX3NlcnZlcl9wcml2YXRlX2tleV9FU0tleU5hbWVfZWxhc3RpY3NlYXJjaF92bX19CgpQSwMEFAAAAAgAcpoiWHwj6LQtAgAANAYAABsAHABnYWlheF9zZWxmX2Rlc2NyaXB0aW9uLnlhbWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAArVRRb9owEH7nV1jpKzRsbF2Xp3asYkhUVBSkStMero5DrCV2ZDuECOW/17GTkACNOmlIiOD77rvvuzvnMEDIucOcKbJXjocO+r8+2cJ+lIBQFNMEWBlwQqUSz3WzCfWvudi6W6Aw2rst1JUzPGZLInYUk57MCtFk+bhdJ0lFZNA+dhURsXRrnAzbpFl2nU0MkElXhoCjhnAv/cvIz+PxJ/flcfGMQxJDR/YOIuqDopz1KD+COrmM+31+y3CD32EQ76u7cU1cW2p1B9S7vstgR4ogkqeit/01pJOHuejLKcNXjoYXQ7M31Fh4toNcBgERlG1H49vbrzfjL98n3xwLU3liWFt74Z0kWWQbEIKsMGuqItLsphV7p2eQGtKES+pzRqH20ZTT8/ekMuyNZL1knk8kFjSphnw4JZyVXl+QJFEwakHRljAiQBEfveboaX4/fVg9oPl09sG6oLy/JM+4Gftvm1IZdIaVK8ikfrYfezKHac2/JkJAwEVcsv4561cMlCn9Jf6P/Fih1jnlcZwyqvLLybrZT4LvqNRG19bGWV9+5a9CD/wjbjvUXOqeLU2r6+HZvTl329mU1pvFM+J8Ii6XoCwQoDWkWKWC3MupvYi2BdZHm5wC9n4uHxeVFWRP9PumcX3i/HDY6FIoiQCTkEdah4c2qwVSHKmQoJIL2cuEKEMzqoqi4T5tFbB8s5o7VbQwv8WwR6lqxv6f5OqVRfryp9E/yyxXZ1AM3gBQSwMECgAAAAAAcpoiWAAAAAAAAAAAAAAAAAYAHABteXNxbC9VVAkAA8hhlGXPYZRldXgLAAEE6AMAAAToAwAAUEsDBBQAAAAIAHKaIlh+e2KpaAAAAIsAAAARABwAbXlzcWwvY29uZmlnLnlhbWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAbc09CkIxEEbRflaRDSQLeLWdoAsQGSbhQwaTMeYPsnuxsrG/h0vee1KrcxzknHdqfYglcEdbaFxnzJpYK5fd35lX+Z81XTLAT2y+NkkZp3jGvkjBD77m+H7c7U6whxoOJ9Y1ZlAIgT5QSwMEFAAAAAgAcpoiWEVFbVWnAAAAYwEAABIAHABteXNxbC9pbnZlbnRvcnkuajJVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAjY/RCsIwDEXf8xX7AnF7EYR+iYzQ1QyLbTqbrjDG/t3OwUBQlDzlntxcLlxcMNq1UDenw7FMDbBJ56yjtKBZbOcITWAmk2xg9cJgWZJmQygUM0Ucxs5Zg3ZAP8nDYfZqnqvfV9WylMgNC/YhbqSFf93VNXiH5MgTJ2TtSe30DaVpIJWaA2sOnyK/Nxa57fJYfMqUf0F2rXAcos06Ed5pwt46Wk3rAk9QSwMEFAAAAAgAcpoiWD9WRHqzAgAAnwcAAA4AHABteXNxbC9tYWluLnltbFVUCQADyGGUZclhlGV1eAsAAQToAwAABOgDAAC9Vd9v0zAQfu9fcSpCg4qkQxM8RNrD+CGENBBsPCJFjn1trTp2sC8d+e+52GlJ2k1oQvASxXfn7/N9d2fPZlmWzTLYuEChgHdvZgAVSldjAR2GGS8bjyWJsA0FLzKwovd9tIGEMfCpu/16zXaArq2L6LyEtlGCsJRCbvCSUSD+lTthtCpJc8jF6/NzYATCS4YPaCli3GnalJqwjlw9W92FHyYL6HfoJyZp9H5XBk1HG2c5jNqGnDNhao87VDUYja6iISFkCneT6Ius0c1slOoN1m6HICB0deWMloxgt3GPsEFXBvOq1Ya0zVfa8IboYt0EbQpYtsEvK22XCX3wxdQLEFVMfUT21iN7Hk8WvDzhuhh8CgP94SAHEo9rHQh9wX+hNTQYyWvk9kiICo3oCngVF60lbfbRoANYR7ASfDb1D/LSzUNJcc3+Q0aJ4p45+BJF5ZrLrVhj6j8+UwHzNBKTXp/f2+w96JcuDdSIAZVmeu3xjnliYD8NWuJ+VwrbR6ipDIFc0xwOjlaw0oqjhQnYs5wM9i0JT0AbTKO9J3uYOM7SMSljnJKSb/GkJzSrFiGgrztIZ1d63froiACxHSYjNV9652iZ110u7Wo+5SbXys2Y5T3rp+16ihxRh05ojJBHDEskuYynSt+835yrtFA96xDOzYU/ucpnz/IFt6HKhFJc43zx/OwQkfDh7Mn3l2fTeyXqNLpC9/qmazSpkhrH417TcWY2tP5Qp5Hmj63TCDNd3UNFGhHCnfMKVs6DaBoe26SekNK1w+0bQ8uWOad8831h+qeFl0/nB4kT6ihkOM/4KQAwbq1tAoa+4BPzbxBiaQYXPzJyW+q6P6imUqha2/SMDcxe75h1kS+Kq+vrFx9urj5/m4+zv1Iqtv44V9ZDVCLgKFlVHe6no1yPEvnrav8CUEsDBAoAAAAAAHKaIliFD6qXOwAAADsAAAAQABwAbXlzcWwvc3NoX2tleS5qMlVUCQADyGGUZchhlGV1eAsAAQToAwAABOgDAAB7eyBpbnN0YW5jZV9zZXJ2ZXJfcHJpdmF0ZV9rZXlfT3JhY2xlRGJLZXlOYW1lX215c3FsX3ZtfX0KClBLAwQKAAAAAABymiJYAAAAAAAAAAAAAAAAFwAcAHBlcmZvcm1hbmNlX21vbml0b3JpbmcvVVQJAAPIYZRlz2GUZXV4CwABBOgDAAAE6AMAAFBLAwQUAAAACABymiJYK93z9VAAAAB9AAAAGwAcAHBlcmZvcm1hbmNlX21vbml0b3JpbmcvLmdpdFVUCQADyGGUZclhlGV1eAsAAQToAwAABOgDAABtiEEKgDAMwO6+wg+43v2MzFlHYW1HW/+vO+hJCCSkUhxk65wS/FMpgPW4GjqMplI/vz+Qe8vxVBanvSEUU/dlzFONoaMNZym4sQqFGkmdblBLAwQKAAAAAABymiJY+pytbQQAAAAEAAAAIQAcAHBlcmZvcm1hbmNlX21vbml0b3JpbmcvLmdpdGlnbm9yZVVUCQADyGGUZchhlGV1eAsAAQToAwAABOgDAAAuZW52UEsDBBQAAAAIAHKaIlgb5aNfggAAAOMAAAAvABwAcGVyZm9ybWFuY2VfbW9uaXRvcmluZy9hbnNpYmxlX3JlcXVpcmVtZW50cy55bWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAfY5LDsIwDET3kXIHS6zjlM8qt3FDaIPyQXFa4PaUKlRdsfTMvCeXHBwbKQ4AChJFZ+B6V09i6j1WF9xQ6LbWALMr7HMy0OHxjKeWcp6KXbCx1gcbrQcK9HojJfZ9cGhzlOK/fLUUu1P4Ok79F9XbXjeh+nG4rBpro4Ht2n95wU6KD1BLAwQUAAAACABymiJYaR1dopkAAADoAAAAIgAcAHBlcmZvcm1hbmNlX21vbml0b3JpbmcvY29uZmlnLnlhbWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAbc/RCoIwGIbh813FbmBegGfZVoi2hSgUET9TfmI0l21T2N1HnoTQ6cP7HXyEMUaMm+aYE0oZLeWh7i68gKLbV6LdWqsqIbekmuMWdpw3q3BxrtX1JGQLJV/FuBC1GxAC+gU9THNvzQBmgjGFt4Vl/J95s+iI8MQEyuvBIu8rTFKP+BuS1xy/J+jtTtA9jMOcahdMb5FkWUY+UEsDBBQAAAAIAHKaIlgCcJW3pgAAAGsBAAAjABwAcGVyZm9ybWFuY2VfbW9uaXRvcmluZy9pbnZlbnRvcnkuajJVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAjU/NCsIwDL73KfYE4rwIQp9ERqg102CbzqYrjLF3t9twN3HkEPL9EnV1wRrXqPp0PhzL1Eqt0CWbKI0yLHRzCDYwo00UWC+0IpZk2CIIxowRuv7myAJ14Ad5O8hej2P1X1VNU6lcaYE2FA3Gsvxi84EphUj8aNTeuOoevAN06JETsPGov+yupt+fizw3uC9B2paGIBtWeOgiZZMQXjhASw5n03yoD1BLAwQKAAAAAABymiJYOPtsLhIAAAASAAAAJAAcAHBlcmZvcm1hbmNlX21vbml0b3JpbmcvaW52ZW50b3J5LnR4dFVUCQADyGGUZclhlGV1eAsAAQToAwAABOgDAABbZG9ja2VyXQpsb2NhbGhvc3RQSwMEFAAAAAgAcpoiWK9JzIRzDwAAWywAAB4AHABwZXJmb3JtYW5jZV9tb25pdG9yaW5nL0xJQ0VOU0VVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAA3Vpbcxu3FX73r0A506k0s6YdJ2mb5Imx6IStQ2lIuW6m0wdwF0uiXi42wK4o9tf3XHBbkpLd6Vs1nkSkFgcH5/Kd7xysEJ/5mXWy3CnxXpeqderFM0/+TVmnTSveTF8X4i+yHaQ9ijevX3/z5KJd33ffv3p1OBymkraZGrt91fBW7tULXHg/X/2yFrPljXh7u7xZ3C9ul2vx7nYlPqznhVjN71a3Nx/e4tcFPXWzWN+vFj9+wG9IwFdTcaNq3eoelHPTF16biT/RRLidbBqxV7IVPZy0V3bvhGwrUZq24lWiNlYMThXCqs6aaijx68KLwmcr7XqrNwN+L6QTFW6pKrE5irUqWchXIN+aYbsT3wlTwwcNz5ly2Ku2P9XL2DPFStMdrd7uemEOrbICVIKFuj8KOfQ7Y/W/aT8v59KKfid7AZturYSF7ZYe8nbIFFBb2Yg5iT5TYmjxgKS9ErIkKUELMAM868UYeMArqJXjrcGgvTVNIaRV4UNDShd4Gvx2aCtYVpr93rRekn9QHHS/Yzm84VS8M5b06AbbGYiYZNXo8OCjiZcyoaM4caWveak5KFuA+yx4CZXQLf9eiN6IUoLT8Tkvhf9EFrBiL1u5Veg83NcN5c4rVojDTtHxwfu0ryTZuWUOGqMJpFxp0ITc43a6Q0m1rsGanbIlir769vXvr2k7A+ZhwwdBQ+96sDr6ANxklQsSQeRGtWCEUoMrR9IzPZPLfzXDRFzBWvzNTq5zr8M/tMmDrgaUZUUeH16AegRttUNFQO+9do4CnuKMk4DcchZqa9ithBSE9NqfRlpnVa2sheX015os/gm32JtKw9EkZVVwsG7LZiBTQBKK1vSi0XuNu4Mfnan7A4aXow3BKRVYP+QeCfJi+IEi5H+tt4Olv4NbGpXBx+3mXxAK56rL9sjfgTuGhvKjtmYPfyx3sgWtQ4JAVLQOn5QhoOibxn+shRRsHhJXjA/oZZwcE9Km05hQhpTzx9xCJMAZ4OvRgXP0gpM+MHo7lMO5u1eVlqI/dvmxPxr76QwUDvAlaUw4hJGWUkC34RgxAdh0/lh7WQGQPEjdyE0T8j/DpQLRFAOwlD6UZMSFgG5gBng4whtbCh7WZFbZ91hbyEJBWy/iCg6gHuW+g51hIUA7hDkvxCdnXadg50dIpsYcrpMVbpTVD2DFByXQIG5yGgG4x2Ub+NN7SWyDoPhGOnReS6lY4R4Y/RA9jFW4FbkLc+Gw0+UuAwNwVg81ADLTqgdNrsQoBtP4PBEKLGxs+AQivJvzbPLCsMopB5FC1pewmWkoKWCZ3uoWdjn3+TkeB5yqR+lfiFPzeethNHvfkXhfNazaSx3zU3XSUqSgXegYe2VVc4Q8aD+R4TYQLRgnrdyr6+B0DUBka1lSkSiyGhmNeqYUWkeZOnn9LUK5r/EXPX6aAzFls/2iAX3ChVoa9UBhI59QDFeeiQRJhm1Dq+DvTylfZEnRI+ob2LoJsO2GDWCHB4/AOyi6SHNSz6cCbUQ4fkYrgpep3D1bLXKigqhM22O8bxQYswZTPE1evqzai0k808TL4nofYRkWqQYS0BoA4wK9sJENxdHB4rqWyMfQeusLzILc6CoZCu3Uu5QsZH9XPFuKInble8C/pBMgom5wcQOUEqRlJStSIXd0vdq7HMKh5g4KS0hJNdI/we7HysdsJXKt3OhFBiOjKMisjXYDjlsOjqo87bgnvPQ08iMhXipN6jEYYXzWEI9wFNfpcjCDg+TdS/sJoc8mdhQol3J62xL2Qyiij8iwFyMRwWqyBHtLkefqdHKewif8Oh47ZOBnKU9uQMTH/cmmYgfKbBTEE1BGRUgOSuf7pCR06rcB4qfBbUsD9uZyjYQ3Sz8GojdT8RPSKtz2bTx+YFZiPXBx9bF6sZnJ0ixHZQVVUmQGEgghoDOxOOIFQA7hlMDwOtWDZUL4AfQ11UEj12hN+5I87+DE+PElsB67xcbJHGXTH1/WVsEnDcTuwZQI5GfV3Pd/uGHotmAF5FiHcXyGdAnOu2EDa8GKEKhdIyHQ4zegM5daR994YpH3bTnNj1hMZPlsxwvlnLCFHfR15qA7iaD7f+CdK1imuh4TDFqOPlAkUNBxQ3QtOj5r5j2g6yBsJx8UsbygEPXRpq6R50ERUA3AL/8XEMXYnh0TccATZc8KCWbCydAE7KOwq+y6BttN04LTycqIXV61spEa7M3PZocDK5KQ3LoRN1vIXuek1ZSdtQX0CR2N0qH25Yl/5a6hDTat8hUR4A8YSWT1tOx0QTgQd7i+2oL6TPLGyvktDuiKUOumYlGj/2Mv5ACpMKajU3q9ZRXkVuKfCeR8436VClbk1tY495IMhscozYD8iT+D56Vo5MENusejNmrLRQAsFpRPnOAEFZ8DOKoJrLjzrXaSUybnHMOxgj/2xFRBDFOxcSQGyhSaUZ8podFIOeZLXmBVXB0wRdF7IVakC4Stgi9D8EXrgjTsEyuGgm+mYqXyydCUtt7LY0K2UxQCHNSB24zw6BmWRy5B2gibDQByFEfIaOD/JlbkcdvMJfwJJCtSK0QGSaG1V4q9XJsGeiKu7wG7vg919kpe80kHiLQt6ovqcb8BbtVwRAStnPrG7hB/zg4qqT6cdhI/UBkNe26yPXlwk6g09lHYv/NQx2IIQfugW4wT7h5dtj1CXAxplImt+5aMoVjOeOcy29mqHhKsCLw5a+GpOwCNTg+XbRw3TAFRYIal6lj46C4QFiuFvKnIyASFaJ/SzZ+NRxAX9DmFVPxJzI3RM8gg5SpDhBaqDB4TzckZZ/tUuPgk56V6bLTqGkEr+t83fujqyfL2fvF2PoHke+zJ3ph2fg+k3Nk+eXZlEHAhU84sS/7KRIXWU4IPZUU9Zgo6ddGsCEoS57yZGA9qhAx8EDpC8SV2zcRctvBFu1KwgYxGSYftVD6l90tStgIxgk2/D2rKoGOydbLQKKrcszr8kIP5KMjyvB4PoISuE85gydymCngu39ji3MoycL1syuV7gwtWqk8yhQgEdIDsLBBoq5d4yGP0TYvzOWiYkVgoCU3o/Y67MMSvczNn/ibywK10HPJBD5GaV2QoY3V8bhFiHUez+Vg2ZFXh7xb7nTwiMylBdW+hL8mEgq3vwBH5maifwvFGVam2GvaBto4iJgAL93/BnaeYRgYOQwwww8VkomkV9EzMA+xwGn9smKfuLS6aKHUVRFtpWM8E4GTwlbkChfhz5CrjSE4jax2x3AsMPo32LlwZsZjsrsjUF7QpUtrU1Cwen2hF8ulcTCWSh1tn07ykwNlt1agKR9aNs2Si0hhHo7FM7FROOoGRQ76lZsffBHCvmligm4oPLVRRR05Tj7BRqbH9JYnZBUmcbxxPWWQ2zMrGWE+OrhLTxx1PBzlM9Tb59Pm/ac08zSI1s4BhEUxdq3D7yOuXpsdF8faG6svGcFOGabul9g7LCKnmBigHTlWKL4IwDTKX+I2YXfCAFKwYW6It9HQU+EefIdSRqUdVZhBPwBsNYtVWWr5XOu09/F3AHwEKAwFxCIsZj64MIWfPlDu7EULD+ws1pi/hGkPucW4WGQ1OvZR9wJm+/wg6+Rjmh0PQBo1DpKQ21arfBu1vj7CgO/AJlnRyKRR+s8fradQGrAy8o4QDelfEpgMntWfz2ZBNwW++GlwoAWypP03FjXbUOuGlbS0+Av8EuxxjEkRVN0duYKnzxhYrwQB5kZqXNAUrksN87ruk6hXqikOD0xY1fxrHlyPnXuNcCyB/MluLxXoifpytF+tg3I+L+59vP9yLj7PVara8X8zX4naVX8vfvhOz5a/ir4vlDdAdzTfAjzgddekkmnClysakKYNoTioDTh2hySVTUUNkzyEWjHm/uH8/L8Dqy5eL5bvVYvnT/Jf58r4Qv8xXb38GLWc/Lt4v7n+lEHq3uF/O1/z6wMzLuJutwGEf3s9W4u7D6u52Pedqy7eFDd4sgP4dbKrp1oFuZrgrHIcLeM6azmqk53TgGqILH6H4S4ibzUt52ugccCI8boBr7QjZnSl1bJMZ1P09K01j84vW82aWY+/PU/gcTIqL3mu50Q1dni+w8gqgP21PerAM+KqhYSfoCJ12NmoJN1kQQH0+MmjVttHAvkp1XcTb7mI0yo2Tn8/G+xUTBZzpN3pDhI6U2+I8It5bhC17fAPB0e345fxg9ByVDxzKBJc1mjb2EwFyrdzL7XiGj6vDKwHp5QDXKbxbz26fIaGA2PJVAhIYnunihZwXGhAaZ26gN46rLd+ZYxWPtRpvjU8bXbLmEDFm4G90652Z4Wo+Mbh69k48aIXHbgwH7NaY6qCbfHb4CYqy6TqJU0LkBAMqXkvdDJarkWzqoU3khorghTdB8BYAgze3B2+sHAQOxiES9NNBnJcRh+myetB0SVr71zcgA7wRwssNXjxnwHdTMSuxJqAVAvLizrNUqLOk+LhD6j5O19PLwmev2wILLXfG8BSUJp2jy3aauQJvqxXhCUAdaSjbUvEhOh6DevQ7UtypfYuvlqSBGJu1CboLs2n8FIp4yyuEHWS+fNUC58F88f2VDggaG4yfzQE7IW4lo8HInpngdD56o6VtstuQyLn9tQgNcf3XCKQJRklfYjrpFiUhepoUZWHgZ8LYM+ma8RkTnvOdbFNH21SqhnaFVwAzri6MzqXdExIFch2tmNJ5sDbdlvnJMWAydOXYrPIQtTifG2+OnmykAx3RAsmmkcwfsmjMaGPUhQN4vrzBunrpNTj6++zuDh5Z/P17dCFNCwBRj/71hfzVPfwbqXKId0nwc/+FCwr/GsV4mhBotYGssdCG92GqUaROvtaqqZyAAgHJzqC/wVtKBZE5+cc/JxH4aDLhq90xBBOhqu/6sk56Kq5uTPuH+L5AlqNB+O+uBXXr1KY6oBcQCUDxox6+O8jKdnY3i7nijoDnj/EilJp6VgBwAhY2Di+o+Gk/Jw0oTs9y3ECUIWPltotoZheKcbha3aj0ygrdkAZNHC6cgHI0uEYMnmCtGN98+pdfUE0IPB3v473lwr1rHM+kIYe05Q5vrDkY0mXim9dvvhZ3i9nb+WouXvlLNPhFbmnq8SLhRpV1TOPgKfLXQcUVPhDfuLz+AUWEbgRhgIuXH54HEq9b34QSMMZ4igRHpJ7fbGhWJkcDuxDGsg/B/rkXTt8Dc1+u5y9BZVryJfz8Kebh3zhDMdlA7fz9JrwyyB94in//j+Q70G4y21qpkQohxInUQMTA0drtAO4GQgBFoT19r8/PShJbd+fnmr74D1BLAwQUAAAACABymiJYmjODNbYBAABiBAAAHwAcAHBlcmZvcm1hbmNlX21vbml0b3JpbmcvbWFpbi55bWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAfVO7tpwwDOz3K3S2uRWkp81JkS5/4COwMA5+ED/uXv4+gjXsXvZRYUnjsUaMqqo6VTD4mGIDxndolvMJIGEcY8MHgAocWmpgCtolkDp2huOw1gAktVk1JQCwUTWQBh2hQwdoooeWQHpHcNFpgDO6qFtDlUKDXzNoFxMaA1WAQP+yDmTJpXj+9vIGSmRIBeyhD97ClaG83Hlrs9NprhU5Cmjq8pC4wkThuHWa5ompgze0p+47EL02XN9Y7kv1bM3pNrZI4ZMCX/BBTBT4Y9F1JKznfjwPTfEDUyDxZKY/B+pGmDBwlJiktNKjNoeZfnxi0MitADjPv4F67Uh+FNBlIMdzSmSBR38H2Oo8e7GU4422gsmikDQZPy+6hJaHmna9yV+yFW3uRkqvqsmP5F4VfVCvSihl+DaNP6vDHqbxzGJ7tNw+Pwhp4PyIOMh5j1lFvYewtPeAReCG2DT+cjEHAuXypFhqN6LaDFiim9LrjRW659jFaV1Giiy1pFti/3M2hbyQsVWu/t3dtmR+WNSunpHN+3S/fx+2rHCXDajbrE1iAu06kyVvBG/OsVX5t7pgxFbXO8l/UEsDBBQAAAAIAHKaIljYawyz3gIAAI4FAAAgABwAcGVyZm9ybWFuY2VfbW9uaXRvcmluZy9SRUFETUUubWRVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAhVRtb9NADP6eX2FlSLyIXNrRjRdpEmJCDCFgYuMTQpmTc5NTk7twLy0Rgt+OL2vWQoWQUqlnP8/5sX32EfQdQt/iUBqzSpLrRjngDzV/TpUt3TnBN+hBaeexbcFTS7XFJcMkVGap6mAJvGEUgSaSDsxyPPRkl8Z2qCuCzmjljVW6Zk7XG03aR1yvsCJLSXJ0BBdmE+8JjrZy7gREXcGbDr2qWMMA1JUciSQgi8YKygEGjvj2/M3jMXS0MYn/arBBR380v339HpL9WJ6c51isAJB/HQ6wwcFNLthVCEbQhkCaKnRR/ZiiNRXJWIClaVuzYUVKgwkWKnQkkkfwsfTIJgTnmshdkQXVYU0xe2e6scw+1onBY421V+hpvH7HmZyxAc1eayx9C8pSFOQY02LQVfMnBGuMVFA+SZQgAZfWrJWMreB0Glxz7q0llENs/oFMIQSMtFAG7UMWAY33vXuR57XyojKShKdKY6uQT13uOrReIovFMm9VadEqcvntrfnuGlFHSTc3N8k2oO0gW+7Fmeya/MbY1X/9FWfBlcsyadWa7Flplazj2YWSMWfzmZiJkxMxy48XB6jDa+PDySQDNXb7/mjZRvzDqHqYIpzwkfQaLj+/Kq6uLorz15+ui9lZeu9BxaP0KxfMyJUsrEPRh/Jhuh9e5NsJzKceupyHNd8+gGKyFvvNFyzhn0zOJJssEXj/R8rmQlLfmiHSCyXTF5DOj5/Q4uT0aUbPnpfZ/Fg+yZDP2eL49HS+mD9dzGbz9DGMZKWXbfguy6IMXC0f6dt/fwO8WZGO/u2wX6JzXD15ADS23oMduFFKG/3T65scou9EpcSWJqTid4Xt7k1KWqfw834ydsnAlbeq8hfG+Xc0nDdUrXgUzrQBa4x/ueugI7tWvLruFh5X3wc3PtgkTpgJvg8eXGOChJJu12R0pHeUy7gf3LhYuQc6ztzNly/w8R18/ZqOi+iD4UWT/AZQSwMEFAAAAAgAcpoiWLoh2rRKAAAAbAAAACEAHABwZXJmb3JtYW5jZV9tb25pdG9yaW5nL3NzaF9rZXkuajJVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAq65WyMwrLknMS06NL04tKkstii8oyixLLEmNz06tjPcvSkzOSXVJ8k6t9EvMTY3PrSwuzIkvy62t5arGr9M9FShXWgLTCNTABQBQSwMECgAAAAAAcpoiWAAAAAAAAAAAAAAAABwAHABwZXJmb3JtYW5jZV9tb25pdG9yaW5nL3ZhcnMvVVQJAAPIYZRlz2GUZXV4CwABBOgDAAAE6AMAAFBLAwQUAAAACABymiJYmZGKnXUBAADlAwAAJQAcAHBlcmZvcm1hbmNlX21vbml0b3JpbmcvdmFycy9tYWluLnlhbWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAhVJfS8MwHHwf7DuEvVRBX3ws+KC2ytjcZGygiISsTUNomoT8Kdax726yrpPYQl9Cc7+763G/yArBHEsmmgpzA2keg9nhAJgQpZVXEeZ1dAOiJH1brj9e09UWzpMIXIPjcQamE+nElBfMfud7uLdZiU0MhvTz1fNy9548wsfd0yLdnh3+GRhRYj6i364X6WpYLhQZEa83L8NSlOdqRPuQJJuLeDoxmGGiUAER8bVJlJXuC2qDDI4Bc6c2AzxhjbQmnk4AuAWmkY57CVHfeRiATPCCkri9eJ5VTIN78Onj9WL7QF9/3FOHjtzjtoNT+o7rCkOc/iBDxaDEzUNBu+Eh6nkSsCnXOLPKlVJSCWusaNE4rVEWB80QJvaIQYOI7opBBHJUuXKCl9la+2GNmMXxJUbA6kIENqJi0P3vRPHQoFWPNWrlN9i3qqvwiUhmiSvDxSyQZd32WzQGmbQhUOEqBKQSGdYa6xDOqS5DhGMTArrRxrv9AlBLAwQKAAAAAABymiJYAAAAAAAAAAAAAAAAFAAcAHNlY3VyaXR5X21vbml0b3JpbmcvVVQJAAPIYZRlz2GUZXV4CwABBOgDAAAE6AMAAFBLAwQUAAAACABymiJYmZ5IVVEAAAB6AAAAGAAcAHNlY3VyaXR5X21vbml0b3JpbmcvLmdpdFVUCQADyGGUZclhlGV1eAsAAQToAwAABOgDAABtiDEKgDAMAHdf4Qdsdj8jtY0l0DSSpIO/1w46CQd3XCHPpOscAvxTyIEl94oGoymVz+935LNGfyo2o70iJBWzZcxDlMEwdSW/NpZGLkqtTDdQSwMECgAAAAAAcpoiWLvKhoEIAAAACAAAAB4AHABzZWN1cml0eV9tb25pdG9yaW5nLy5naXRpZ25vcmVVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAALnZzY29kZQpQSwMEFAAAAAgAcpoiWIwpj5LiAAAAxgEAACkAHABzZWN1cml0eV9tb25pdG9yaW5nL2J1aWxkLXdhenVoLWFnZW50LnltbFVUCQADyGGUZclhlGV1eAsAAQToAwAABOgDAACFkUFuxCAMRfc5hTV70i5GXbBsD4IooAkawBGYVulo7l5DgpRFpUos4H+e/Q1CiEnAgoWKBIvm7vIEYDAlZ8hjkhDQ6AAs8iJd7kVOvBOQdHQSfDKhWgdfOheWYQiqCbLL8xbDGfnAdYPP6oMF6zMQgnWFOmzYkn0HULKRcJlf9lDCujXgdjnMRrD7eByZlY/65lSvqlrV53NcjWi56evb9XoO8b737zB0+AgQY02etnm35nP5kax3GQeAVdPyT5a/h9iTNPBb/9RFMZXooJt3GoL0jX9C03gofh6s2TDe2/wCUEsDBAoAAAAAAHKaIlgAAAAAAAAAAAAAAAAbABwAc2VjdXJpdHlfbW9uaXRvcmluZy9jb25maWcvVVQJAAPIYZRlz2GUZXV4CwABBOgDAAAE6AMAAFBLAwQUAAAACABymiJYGv12GakGAADQFgAAKAAcAHNlY3VyaXR5X21vbml0b3JpbmcvY29uZmlnL29zc2VjLmNvbmYuajJVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAxVhbb9s2FH7Pr+CMAm3TyErStNgCRcDQoU/dVmCPVSHQImUzpkiNpJy4l/++Q1IXSnbtbN2yF1vnQurwXL5zqERqTYu8kKJky/QEoaTgjApjH4HQVG2o8gSQmBBFtU4/f0Z3+FOzyiss8JKqfCW1Ebii6OvXJO60ulW1VGZ3ieU6dSfudZU0spA8NUUNoo7y1sShOYm3OQKdknGaNotGmOYM+f/L8+Fpfn6VxBNtv4WQhpXb3LCKpq/PkzikvYZ9jBSF1YIWJr24BK0Jzyvixsgcjm0wnGZLNbgh5LQmq20NzIqalSQptlpjlg1A3EXgZAhHvmjKsj/5D1GEfl4CG3k2krVhUmgURa0GYRovOCWpkEncE172Z0Mbmmv2iaavzs/hPAHDa9AN7K3zGqKk7TGJVUziXXZgbm/hSWvge8lZsUWVFMxIxcSytS5RUppiRYv1A2x1ermNmPZODRmhilHyFouRUscK1QjdhCqWDMV6O9rBkqG4ZmQkd/RIAVJ5rOEYoQorQzlQJ0NM3yoKsRDgNbPCBvWOQkwjek+LxlCCIgRxUFt0cYlWslFB0MtueXr18tIGbGC0L7E7rplp/UdNEesVVpTEI8Hc3JtkzErH6zvX7tmhFY336EPRosqa1bkoW0/1lMumIDssfScJp8hCy82sYDoqsJlN88btMkkcW6OygYL98bytWEt5GRMGcATz9IIkcU+0phVYRFJEQR2PWe0RbvEG5zU2q9RZqGPLSOKB3cacwWozUvSsJA5F7uROPtTP7xpiB3G2Bi4VtgXeVVDoFOnVHuQU1YicYAol6cUB7RW4XHqD4g1WMVBxu333T+YAaA03eg7CJO71Q0Rud7C5MVk9twodFIcLoWPkHC8ob1MioPe55o+tNrQCz1hAkuCjPX6B2oXGwQGgpdpxzh6kGZJitTcpcinySVIMLK8GhUDuoBi8Rk95oWyPJrtaEtTcSbX23I7wohoXa+iR7YqeOum7qUaY85uZkLNWJYAZ6HAFdN9+dU8GQPMLNniBNUV6K4qVAoj+5BNMU2MAqgNQmWj0jbrC9zmtdXoB5dU9d116d8kohOC7rtGIIFk74m/5fAjb5Z64HcAZZ0SXUG8B49pCY2Zfz7LZdLxlfRPJu+UjICe0xFBK3wHnx30UhJwpVwuMamQk8uagZ9DMS6kqm0+ohlmQwUkQGMRKVrjo6efhVNHv4er7LG60ihdM+AcNT9Ydg9KeZU5bu98FQP1EP/CgbTuh0FrNlkIqOhjkaY81FaQ0ZIDn7IrthKrnhIrtAaUKMx6D6wzThhX6gKbCgsgq0pSSo1rzI1qY3NoGdch4Y2pi0faQSY2p6vsD8rsj8qKpoTtRQJIDSqSpaoINPaSjN0W8kRy8yINDjUOLzLY+FFMnBxRXdEnvZ6ltN0++zPVd/WTfjm9cNpsVRXZaOYOx2CBh6woVsqqh2pyMsLIc3iOkpVuLNQegZBs42HxNt/Yi4IRH55VO2M+VPRUILQQHUkcG4n7o7KngZL+xAuoR8waOJpXtfL5yW1gfjtMyYHcmLYg5YN5hBjv/iu9Z1VQI5iLwEDhIyWa5so/9ngPGhyD/r7aRb3eAENxfVVNsb60bde0R45/2qQHpu+bwTi4R3Fn5VrPuQDAoFZgHF0k7CFkcxSaFjIMrLvHDUcvrxiMnSQlk4Xs7BnlyivYvX4+x3loVvO/I68uG8/y4DTBwWJxDkWl4LdAXCBlBT3WcPfvw4Rpz0VTXHz9mL7LnGcpeAIuwJTOetY+RPZufZs+v3epOcuoXA+88+imbZ9fZqdtx7paMNePhrVlkV85P4+wCZZfo5gZlL93vFcpexU+tqfbLQbRGVyhaDpY7HWcGPMXX2YXXBeHF2SWZuhtzhnXvBQ54T4Xt926SggHUif+XyHCs4XQC2S8N35Ei7htBYdiGIhjZa2jkHcYm2LGjjv2QaziGgcJirusj9Tq3t7R5TaEse1GvGU4P7V13wnT27ljRWf1mJSUYu4CRmFKBZjXHTMzO0OxWS/sPMOh5Z47hcNFBv/MmkqWb5BRULLIdcyjZ5RIivBsXt9c0II72+m5xfxnpCAR94mZWMwwdk0aE1lxuK7iORIzM7MeuVpIPkpwR973LLW/f0W5rrwXhZ7iTZOez3IHEwg1hZk9G2SXO3/1tzmn63+4CF4bk4bkMKNlfAA+8053CzS3TcOtHeb89cwUN0F6fHuVlcNxG0cc5F8yqj+XD0//+LWwRE1msqbKfBwxUJFU6Po1Pj+XJpHT+AlBLAwQUAAAACABymiJY00QUiJIAAADLAAAAHwAcAHNlY3VyaXR5X21vbml0b3JpbmcvY29uZmlnLnlhbWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAbc5BCsIwEIXhfU6RC6QH6K7QYEXblFoRFRnSMshgGmOSBnp7URduuv34HzwmhGBk3RxzxrngpWz36lzLpodt+ZVTcTlWUBdNsZEdVOrQr3Cruh+TDVHbESGgT+jBzYOhEcjBtISXgTStZ56SjggPXEB5PRoshx0ujZ7wP3zO8fOTX28M7Z0s5lzbQINBlmUZewNQSwMEFAAAAAgAcpoiWEmLaeezBAAAXBEAACoAHABzZWN1cml0eV9tb25pdG9yaW5nL2RlcGxveS13YXp1aC1hZ2VudC55bWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAxVdha+Q2EP2eXzHdFhYOdp32clcw5MORHunRlgvkQmgpGK2l2Lq1JVeS78498t87Y9m7smNvNiVw+bDE0mg87+m9kbyCXFtnY7DCfBLGJnfaJFaktZGuSUqtpNNGquwEIGMuFya5YynFN8Ke4GBlROKY3doYHwBWoFgpYrjIRbqFihl8cpi2nQS4Y7KIu/8BSpvFsPzEjGSbQsDXr9KJ8v4elHbAxZ1Ugi+74M+5UDHQPEgbBvTz0uUJTdt9+hVUkqUCC+SiKnRTCuUSyYP5z+zfOk9KpliGwIgIqn42oNLGDVBeITPuIUouNnU2grl7otWLycJiZGC6ZLi/XwwTTFfeZpieeiwFYZtYTsO7pT3st8rWRkCm6ipD9OkWQ7vc3dMevF/Rhu7GrGMOB1E6FvF1wxuRagp1pqZkqArUoizETlg0sm7KglTXKe5kX9N1Y0kcXDiUmN8IpqxEXa03tSycVGu/LbQd5wsE2oqphxbop98qpAijuiQJl9YZuamd1Crgcj4oITcdHVyyj+i7cEmA7T35DsJ4bwFbV7Q/nQnGcG0uiiIGkeYaFloVDWDmm02tXA3awC9iI5nq0LfumoT63TksfegSA/h8kM+8pLq/h2vh6gqwlZAXcC1smBV8COHh5qFGDONiEg2rXC8qv2bxoqe1k1OBv7ZXU11xfExSlubC9yo/jiWlIsFkSSZQ7x+82OivDU0+sULyxEl6w8vXp6cnoTT7NEZkCEQYpAwTYTtEON0EwkPFwo/dSqQEG14QRt3L1mkqrH2M+fOAeSRyNiYgvufzzdUHkAp5KQqs6Z9aGiS/s6adhPQY3UFPxKOhCHts43KtXg73IrT280H0rxgA5dw3LKIYoVba0nnVtFLtGWgDVgi9K2iMfVPodBvvPOozXwq3z7zaimYHeYKqBOf3FOG2G9z03LnKxlHU875u063x3RGGR5dXl6vf3v65un3z182v4fEwpBBGdc0hPljePiyskkbRR+jQQ7Werb9EmCOiuuiULplUi9lygwlq3r7mNllIz4w5e4zvZjZu6D2fxTZ2D30v2p1wHyR5bjn2kgyb3gW+7P11oNMb39mAUD3Jh01dDtve8sVyaLWg7T0CzVe1HPsHDxe4bRV1yD/wRP+8K9urAyVHpUNooPH6KdymKsemmhUaxT3Jbbu1xxMWQutJO8J8uH0z5pt2Bhc2NbKiCvCa9fvq7x+MKASenXgzwPffjsLpVH2s15B/sYwoWJZVWUr3891lK5j4/2QCoN0RPH+QtjLaidR1408w+wE3jDgcLXwed1wYgcsh1epO0kXX5ZMepUbXl0VBcXvNo+8piXcNvxrfZ4KbYFcdDiIvewGVmuPo6c+vXj13qzoUM4VcV02PG29mFdEITqPkS9zK9pPxqPbVr+3psSb17OBos9F62/ES+XdF2uKn55oe1h9/6slCU6B2FhF+APiASLg0CF0M2Xt9dja6pXVbkOZMZd1l+dtRe+2YcWFP7ZVyfG/9g20FtJ9ggfb7NHTD7IzYdnH6UCjxc0nwWVvZ9vrNQ2txhjutsHcVmvFhqz7su10PGC7xFcRYzQiLp4PaaUjDkVUe0QAs5f9Gm/4fUEsDBBQAAAAIAHKaIljiWjtQhAEAAHEDAAAxABwAc2VjdXJpdHlfbW9uaXRvcmluZy9kZXBsb3ktd2F6dWgtZG9ja2VyLWFnZW50LnltbFVUCQADyGGUZclhlGV1eAsAAQToAwAABOgDAAB9UclqwzAQvecrhtydlNIFfAulpJcuhIZCL0KVJ44aWxMk2SUN+feOZDk4DS0YLD+/bTRZlo0yWJPzLoeC1AbtCECRMai8JpNDRUpWjPHjpdu4fMSnDIysMQdtVNUUCK20jmHoARGAPMKTXV0NJXcWpccQsdIlbKVfR+FKV5jHE0Qwh/F+Dw5tqxWKji0KbeFwGCea82zErbXlrmR3Ca6pYPTi9vr6JJa2uz7UY72tQglPYLEmPoUbiPr+X9/FWdVVYXT3QbRJJaad15ScQzUJH5PPy75Zgc7/M8BAND4tfXN1FQGLpXYebZ4qC7WWpsRiONGiMWljoGtZYhR2QIjzUhs2SP6d5Et+N+uMucZnR0rPQP9FlvcLCTgGhTmiUkSlSMzBJmL+OTHCIpicb41f1vNAHRiu/4+wU7VsPImws5a5K1k5TD/QtP2s8DZ7Xz6Ix9nTbH6/GFrW0rCrFX3cwDiJWPH0KuaL5+XLeZfSUrMdaFqqmhrdMZdv7Lckra9jBukPUEsDBAoAAAAAAHKaIlgAAAAAAAAAAAAAAAAiABwAc2VjdXJpdHlfbW9uaXRvcmluZy9kb2NrZXItZGVwbG95L1VUCQADyGGUZc9hlGV1eAsAAQToAwAABOgDAABQSwMEFAAAAAgAcpoiWIG+vyVuAQAApgIAACwAHABzZWN1cml0eV9tb25pdG9yaW5nL2RvY2tlci1kZXBsb3kvRG9ja2VyZmlsZVVUCQADyGGUZclhlGV1eAsAAQToAwAABOgDAACNkV9PwjAUxd/3KW72wIOxrRD0gTdjEI0RCMEY/BPSdWVr6Nqm7cQZP7xdAQPRGN92b3t+p+fseja5h5xngqpB9wx3e8hJUSXJ7GEM1HhUcA+1yann0Ol8b4RynkoJqIGXBMBYzYwDVlsZr3hLlTPaelR6Hw4KVZuiF1Tai1WDvNbSgWl8qRXKNVtz28JbUkQgB1E3IMRQtqYFd3hDP+oSM12RNW/IaDpCd8MFerx8eriBz2ga9kDzHNCexVmpIQ3Z/qL18TsJagIhUCY5VFSoNBA950C4Z/HQ6dqyIJPCeZyTrbod9lY/mzpaH9QlXYYsl5w6vhfbCpBdAXmjlkiRRccW7sjJ9j/sStEQjVFIoDzq4x4+x/9MZ0LjpI1GNuQAcvi9jEDUXdIqv+hHcHhfbtYFIAGY/OqdJFeT6QLCzjZGC+WxK0Nth+P2hnaOs/AktcsZ59hvkgzH89liOrkdz+E5zagr09P0CJG+fgFQSwMEFAAAAAgAcpoiWGtNCQjhAAAAiAEAAC8AHABzZWN1cml0eV9tb25pdG9yaW5nL2RvY2tlci1kZXBsb3kvZW50cnlwb2ludC5zaFVUCQADyGGUZclhlGV1eAsAAQToAwAABOgDAACFkDFPxDAMhXf/ikfvxMTRg4GBE8fGH2BEDGnjNqGRjZL0DvHrSaiq22CxbOm9Z3/eXLWdl7YzyRFt8JpNzMiOYUaWTNSeTGw1Je5/dWfzPbtdr5KjBqSqplLznJ62z+QHvGG7zNgJY4/3Q00TArh3iubF+MAWWRfzsuZxNTVV9+XzOtPgiRZjZ/ppjDqLxYd2CXEW8TLeIPiUubYYNKJ3RkYuQXR2ZRNSYP7Ew/4AqyX8P5x6+BGt5VMrcwi4P17fFdsFEfgTcsUMqlMqp018eSasZ3vbLKoKWZMLoFVh+gFQSwMEFAAAAAgAcpoiWKVWIZOaBgAA0hUAACwAHABzZWN1cml0eV9tb25pdG9yaW5nL2RvY2tlci1kZXBsb3kvb3NzZWMuY29uZlVUCQADyGGUZclhlGV1eAsAAQToAwAABOgDAADFWFtv2zYUfs+v4IwCbdPIsh0nbQNFwNChT7sU2GNVCLRI2awlUiMpJy7643dI6kLJrp2tQ/eS6FxIHp7Ldw4dCaVolmaC52wdXyAUZQWjXJtPIBSVOyodASQmRFKl4gf8pd4EJeZ4TWUUtuxWrRJSx/Ob+TIK7WfHl0KLTBSxzioQtZQ7KvTPipxBAejkrKBxvaq5rq+Q+7+Y9V/TGZwy0nZbcKFZvk81K2l8O4tCn3Ya5jOQFFZzmoHFC9Aa8ZwirrVI4Yoaw232VMGVfU5jstxXwCyp3ggSY6M1ZBnvhq17L3pfp6s6z7ub/xQE6Oc1sJFjI1FpJrhCQdBoEKbwqqAk5iIKO8LJ/qppTVPFvtD4ZjaD+3gMp0F3sLdKKypTZa5JjGIUHrI9czsLLxoDP4iCZXtUCs60kIyvG+siKYTONjTbPsFWq5eaiCnnVJ/hq2gpPmM+UGpZvhqhO1/FkL5Y7Qc7GNIXV4wM5JYeKEAqDzUsw1dhuS8H6qKP6XtJIRYcvKY3WKPOUYgpRB9pVmtKUIAgDnKP5gu0EbX0gp63y+Pl9cIErGc0h5gdt0w3/qM6C9UGS0rCgWCqH3U0ZMXD9a1rj+zQiIZ7dKFoIGPLqpTnjac6ymaTlx2GfhCkoIjjkt5PMqaCDOvJOG/sLqPEMTUqaijYN7OmYg3lZIxrwBFcxHMShR3RmJZhHggeeHU8ZDVX+Ix3OK2w3sTWQhUaRhT27CbmDFbrgaJjRaEvsje38r5+/lAQO4izMXAtsSnwtoJ8pwin9iSnyJqnBFMoSSf2aKdQiLUzKNxhGQIVNtu3/8kUAK0utJqCMAo7fR+Rmx1MboxWT41CC8X+QugOaYFXtGhSwqOPuebPvdK0BM8YQBLgoyN+gdqFxlEAQAt54JwjSNMnxeZoUqSCp6Ok6FlODQqBPEAxOI2OckLRXE20tcSpfhBy67gt4UQVzrbQNpsVHXXRdU6FcFHcT7iYNCoezECHy6DTdqs70gOaX7DGK6woUnuebSRA9BeXYIpqDVDtgcpIo2vUJX5MaaXiOZRX+9126cMlgxCC79pGw71kbYl/5PM+bIsjcTuBM9aINqHeA8Y1hcb0sZ5lsul8y/omkrfLB0BOaI6hlL4Dzs/7yAs5k7YWGFVIC+TMQS+gmedCliafUAWDHoObIDCI5Syz0VMv/ami28PW91VYKxmuGHcfCr6MO3qlI8ustrJ/VwD1I33Pg6bt+EJjNVtzIWlvkKMd1pSQ0pABjnMo3ggFqEUo359QKjErQnCdZkqzTJ3QlJgTUQaKUnJWa3pGC5PPpkGdMl7rihi0PWVSrcvq8YT84Yw8qyvoThSQ5IQSqcuKYE1P6ahdFu5EAV4svEsNQ4v0vjoVUysHFJd0TR8nsWk3z75O1UP17NiO72w26w1FZlq5grFYI27qCmWirKDarIywPO/P4cLQjcWqAKBkO7jYdEv35iFghWfnlVbYzZUd5QkNBHtSS3ribujsKO9mv7MM6hEXNVxNSNP5XOU2sN5fp2HA7kwYELPAfMD0dv4NP7KyLhHMReAhcJAU9XpjPrs9e4z3Qf4/bSPf7gA+uN+UY2xvrBt07QHj3/apHunb5vCrWCN4xhZ7xdoLwaCU4cJ7SJpByOAo1jFkHLx6iRuOGl47HllJTCALP5gxyJFjtL++HWK9sco778zxeV0U6XkbYOAwOIcCXRcVR18hZAQ9V2Hy4uPHO1zwurz79Cl5lbxMUPIKWIStmXasY4zkxfQyeXlnV7eSS7cYeLPgbTJN7pJLu+PULhlqhv2pSWBWTi/DZI6SBbq/R8m1/btEyU343JgK0w4KtmiJgnVvudWxZsBXeJfMnS4I51cLMnY3LhhWnRcKwHvKTb+3kxQMoFb8v0SmwApux5H5peE7UsT+RpBptqMIRvYKGnmLsRG27KBlP+UZjmGgMJhr+0i1Tc0rbVpRKMtO1Gn600Pz1h0xrb0HVrRWv9sIAcauYCSmlKNJVWDGJ1do8lkJ8x9g0PGuLMPiooV+600kcjvJSahYZDpmX7LrNUT4MC52r3FALO307eLuMdISCPrE/aRiGDomDQitCrEv4TkSMDKBYfSaLm9uXwf0zdtVMF+Q6wADHSwXt7fz5fz1cjabwwlmn+awZn/zPvB/bLuIDn58O5FhuCZMH0kts8Q6vnvWWU33t33J+bF5elIDXHYvwRNn2lvYAWYcd/VDzjd3LqETmnfUDzkMrltL+mPuBUPrGR+O0upvUEsDBBQAAAAIAHKaIljAFDZtqAAAAGUBAAAgABwAc2VjdXJpdHlfbW9uaXRvcmluZy9pbnZlbnRvcnkuajJVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAjY/RCsIwDEXf+xX7AnG+CEK/REboaqbBNp1NVxhj/27ncG8yyVPuubmXqKsL1rhG1afz4VimVmqVLtlEaZRhodYh2MCMNlFg/cGKWJJhiyAYM0boh9aRBerBj/JykL2epmrfVc1zqVyxQBdisdohUhrBB6YUIvG9Uf9mVbfgHaBDj5yAjUf9pfs1v38WeWzyUFK0LfFBNq1w6CNlkxCeOEJHDpejZVFvUEsDBBQAAAAIAHKaIlhcKqzGRQAAAGgAAAAhABwAc2VjdXJpdHlfbW9uaXRvcmluZy9pbnZlbnRvcnkudHh0VVQJAAPIYZRlyWGUZXV4CwABBOgDAAAE6AMAAIsuzk2Mz8gvLonlyslPTswBMRUS84ozk3JS40uLU4tsyxLTixLzEIIFicXF5flFKZgS+UUltkZAwMUVnZKfnJ1ahGQmAFBLAwQKAAAAAABymiJY+AMzry4AAAAuAAAAHAAcAHNlY3VyaXR5X21vbml0b3JpbmcvbWFpbi55bWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAALS0tCi0gaW1wb3J0X3BsYXlib29rOiBkZXBsb3ktd2F6dWgtYWdlbnQueW1sClBLAwQUAAAACABymiJYzat6lxcFAAClDQAAHQAcAHNlY3VyaXR5X21vbml0b3JpbmcvUkVBRE1FLm1kVVQJAAPIYZRlyWGUZXV4CwABBOgDAAAE6AMAAJ1WW0/cOBR+z684GlZakEgolNJdJB6mLWp5GIpYKNp9STyJZ8YisUe2M9MU9b/v8S3xDHQXeEt8OZfvfOc73gHVkHRZk24qxH2S/EXLVjLdwURwpoVkfA7jOeUadu/Ij3YBxPzsQUWXtegas0EUEKhEeU9lkuzswK3CM5DCaEokbagm9cis78BHwWds3kqimeBJctEshdQELayIZGRaUwVrpheMQ4ErKuuaugDGy7qtKOgFVfQ0SYqiSNI0TdYmmrwhHJ3JfCGU5qShpzCyG6nfGG2dMx7xzOG7w2MMaslISSXNh2RyVpnto7f0+N3J+5T+8ec0PTyq3qYE/9OKNiK9uhh/PL8+H9lIknFdu9CiJErCYUpBrKiUrKIcVowA5SsmBacN1xk4PK5bbu7CgP6NALm16FMmXDE03lcKGsK4QQhShhitMHYhu0x/1y6uGzQRFQzUQrR1ZcJCB9xU1ZZtKUVJlQLhnGoi51SjvZkkSsu21K2ksEuzebaPp79N9rKNEn/yVce4py1D+8aIdfi78pQA1piz6KBwCwWYYsFMisYeL/roi32fPUMMRYM1q36VvfWWulJbf/8Bxd+iRXMme1KrOFAXGbppSV13gO5g2aoFMA1agBINho3nZMhE0jlDVLoMLkKUBAvfoX0Pb7kgfG652tMBZkJG3gxJH7M86wlhS9OjaGNqRMVmnVm/CMnBjNXUwq6wZNpeiDqyFqXNaNd+hPApnzNO954PsrPoUXZG/hdsREbIasDMOQXWU8wh2pASEaD7MWK9NSBliUYw47oLvbKlHeffSbNEcMXMXi3jXdgdgN2LFENRuWIlzd3hvGISW/3hAXzeOXZo9uXr5Bx+/jzwyhAzbJS4lHJbyNzS6MVGDuzlbVV6nXq5PWs251SvhbzHTeUFPG16AU8jfavojLS1Hm3ejn3bpRRB0qgwWPGjzbNzKdolHn7SkId2JerWWkRgHqNuoBEK48zM2ukBFsv9H1BdRjubph3qT0TqEX2xmB8fnZwcHh++P37z5uiVYm6cBIIWH6yuOM21E7OIhP1CQ6vQWmFarsXCdJljUxaTqjC93tYUBUYjp5fM3PCN59IqwACI6hSptdEI/OVGtywr1YYMO90xkmOXrQAN4jsM2s0R4Bt0ODn0ekj4k43IZ+wmwSsS74k2JA9meLkfo1Uqkk+bBnFJYO8XMREcQqc10VRhDNMOPEdht9cHI8iP1BclsVVBd30nQfG8RsKZ9SRwtoSoekibDmMPLx29IE6tHWoT19guS29Hmdx8FPtOLtdM0WgorBnylAtteGkzQj5YGEtn28tFBkUQliII5XgwgJeVYc+gtZZJK2aFDOttL0yCrfPLb8NMK+7G/9x+ySfjy/Hn8+vCGHJVCg6DvyhBO9l8jgFkgyQqNsXRPMUOy4JhtHp5k3++/np7Vbho7ejGPKcG6HtDdiSjDb7FhLDWQ3ZDkdDeICdFxPrHPUVLO3kCMrb5qtBoPUexnYpIr6Kbriv6J52f3sPLGOPFUc3L4b2xb0tIKgTcYJokOOIUM6PTzma0b4eZtTEl5X27DDXpXx1Gm4yR1tMjtJ0KcCbJh83XjpuGZQUbCPjJ5p9GqQ67UXf5toLMKeVWnhq5t3B4vbR/YI0E3+6H4bVKaklJ1QUCZS6B8CDDKFIMOHWvqiFas+TiOHteGHihp659NNk3aopxxUQ/25jOw3ZE17Pe4Ap+e7i6+/S8WfdrxE2+/wJQSwMECgAAAAAAcpoiWIUPqpc7AAAAOwAAAB4AHABzZWN1cml0eV9tb25pdG9yaW5nL3NzaF9rZXkuajJVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAe3sgaW5zdGFuY2Vfc2VydmVyX3ByaXZhdGVfa2V5X09yYWNsZURiS2V5TmFtZV9teXNxbF92bX19CgpQSwMEFAAAAAgAcpoiWAD02MMhAQAAZgIAABwAHABzZWN1cml0eV9tb25pdG9yaW5nL3ZhcnMueW1sVVQJAAPIYZRlyWGUZXV4CwABBOgDAAAE6AMAAJWRS2uDQBSF9/4KcWMLnQhdZidEaqHGkKaUdjNM9MYM6lwZZwxpyH/v+GjR1kW7vK+Pc88hhFg1yIYnQBMUB57RlMul7VwuNhM13xdAQTSLMI4C+3r1Ks4SkEBO7EMfCctAKMdKMclBUl6amu41L9J/Q7zu2LG6Fi2ZMJWkR6yVYCX0qAIx19WNa1Dune2++u8vIY38tf8QbGkYP+9c+9bgf0IqlOoPgE28/QYMhE4ZFaBOKHODqCHRkqszKVFwhZKLjKRQFXgu28UUDkwXyple9/JHrxLjs2JcgCT3091Moq7M8ixoSKfBQn8Z8ju41l2sjc5F21t6DZN97YFKRpMpug9uRukQijUERkfP8nTW01WweYrfomC9o4+rwU7b+gRQSwMECgAAAAAAcpoiWAAAAAAAAAAAAAAAABgAHABzZWxmX2hlYWxpbmdfbW9uaXRvcmluZy9VVAkAA8hhlGXPYZRldXgLAAEE6AMAAAToAwAAUEsDBBQAAAAIAHKaIlh+e2KpaAAAAIsAAAAjABwAc2VsZl9oZWFsaW5nX21vbml0b3JpbmcvY29uZmlnLnlhbWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAbc09CkIxEEbRflaRDSQLeLWdoAsQGSbhQwaTMeYPsnuxsrG/h0vee1KrcxzknHdqfYglcEdbaFxnzJpYK5fd35lX+Z81XTLAT2y+NkkZp3jGvkjBD77m+H7c7U6whxoOJ9Y1ZlAIgT5QSwMEFAAAAAgAcpoiWN0A4P+rAAAAbQEAACQAHABzZWxmX2hlYWxpbmdfbW9uaXRvcmluZy9pbnZlbnRvcnkuajJVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAjY9BCsJADEX3c4qeQKwbQehJpIRxTG0wk6mTaaGU3t2pxe7Ekk3yX/I/MVcOznJtytP5cMxVGrNKl8FGrY0VpRsjuCCCLlGQ6oMNiSYrDkExDhih629MDqgDP+qLYfDVNBX/t4p5zpErVmhCzKvcQIuWSR7gg1AKMbe12etX3INnQEaPkkCsx+pL90X9/l213eQ+O1UuRwTdtMyhizTYhPDEERpiXI6WwbwBUEsDBBQAAAAIAHKaIlgTmxAcLwAAADEAAAAgABwAc2VsZl9oZWFsaW5nX21vbml0b3JpbmcvbWFpbi55bWxVVAkAA8hhlGXIYZRldXgLAAEE6AMAAAToAwAA09XV5dJVyMgvLim2UsjJT07MAbG5FBRKEouzi62ADAUFXYXc1JJEK4W8/PwCLgBQSwMEFAAAAAgAcpoiWLoh2rRKAAAAbAAAACIAHABzZWxmX2hlYWxpbmdfbW9uaXRvcmluZy9zc2hfa2V5LmoyVVQJAAPIYZRlyWGUZXV4CwABBOgDAAAE6AMAAKuuVsjMKy5JzEtOjS9OLSpLLYovKMosSyxJjc9OrYz3L0pMzkl1SfJOrfRLzE2Nz60sLsyJL8utreWqxq/TPRUoV1oC0wjUwAUAUEsDBAoAAAAAAHKaIlgAAAAAAAAAAAAAAAAKABwAdGVycmFmb3JtL1VUCQADyGGUZc9hlGV1eAsAAQToAwAABOgDAABQSwMEFAAAAAgAcpoiWE+rrp8wAAAATQAAABQAHAB0ZXJyYWZvcm0vLmdpdGlnbm9yZVVUCQADyGGUZclhlGV1eAsAAQToAwAABOgDAADTL0ktKkpMyy/K1StJKy5JLEnl0scQ0ktKTM4uLeDSg8voc+kjOHo5+cnZehnJOQBQSwMEFAAAAAgAcpoiWGeb/fGFAAAAywAAABUAHAB0ZXJyYWZvcm0vY29uZmlnLnlhbWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAAdYw7CgIxEED7nCIXyB5gO0FsBAUR22E2zsrg5uNkEsntXW1stH4fY5xzhuKNI41WSQTnJMFwzFVHa6x19ryDy+YEKMozek3SoRaSiIH+8YylPJNcTar6Hn08jkUxeoI1biSQhRsqwZ06HAX9QttpT/2wfiH08lighd9hnRb2wPmrDcPwAlBLAwQUAAAACABymiJY737YEqAHAACDGwAAEQAcAHRlcnJhZm9ybS9tYWluLnRmVVQJAAPIYZRlyWGUZXV4CwABBOgDAAAE6AMAAO1Y2XLiShJ991co6HmjW2hHepiJkNhXsQkQEzeIklQSQvsGiImeb58SYGPTdNu37Y6eGzO2sU1mqs7JOpVFVj08pDCOgRnEHvavBwyLYZTZMTTWYRzsbAPGycmMYWCfYH+//I9hSZDFOsSQpbQBycbWgzisoJDSxb9DD9qBX/j//Q+Mxomz4+tD8fr68PAJqwW+aVtZDLF0AzFxMcVGF8SHR2isVIx4wvyEiFnnAXcgxs9v1j7w4MkJdB0mydqB+SUAPbi+Gk8xCdRjmN7EXI0Fq4eHGF4yK6DXtp+kwNdhCSt5eRK56513pgM8u0gN/flCMATJUxzFGxxPsxQDikwfH1yneQiLyJTCfeAHhQ9hnYgXZjkGugvrWg/mQ2Qq3OgnBdZ1rksnRxGsB35BFq6fuDzO5sOn+ah2w30X6oj26XcxkG4b8VpzA90phiIJnCQIHH1XSK50Czm8sHsCLEa5YmHTTPNheoOXnIwI8vwP+WQoxkQDrG0DjXlhhhcv2/geLxLxopgC0gPhOsw010bPh2skuQsyX98UC88EbgK/R/1C4pH12zhT7+FMfRBn6s9xpt/Dmf4gzvR1ddyW0HmcdQq90AVpUUnQBUlq6wkEMXKAxDpTL0oCbTrQtA/YaV9BHnJ9KiYPWBCl9bMFV0wKqvMsttN8bcVBFqLBilT+iV22gGcuHLpaYt0a0Zz+gRX5vUwOZGmQ6MC1fesc+P30DJictlUdhEBHA2OnJMnT1B/WiX2E2LOvi8f2v+MpUjoGfjEr0E9t00abJcrnuj7wl1WIEvgDPXYjxkVLlNxl6DuC4d/kc15PL7b4v/VRZJI+rYJXl4Bh/1h46q7wBi9QgmBQZlWXTUbQPlZ4fQN1x3PeI/3ztH6P4PQHCH7O4gNktlAwmqcfS03flZqkIMtoNGGwOqfpgvGxUr+rwL/J6vcoTb1f6WeZvEHtm6kp2pgQ2DGakcb0sX85wT41OCeJr07kunzEnHuwUpJsvsQJwET0JdHDI6iRuU41ird1cSxKhVkc13okaFq26y87GxgvqW1HX/neXOxV+8q8Tgu9KpFVU73LkepOn/ZFLqN2DTWAc0HQ6k3WFpV5kwT0Lo8BlDfDFjPnemk/8xNJ9eqQ1MtyMFiKWjVYzv3UUeSWn+9nc+aQC1PasGs6qfbq+5DIzZ5Q0aC2GlTYcbarGEuiUZ+pneMsa+hlNRwqFdUOrbBiBKsOYQb+0RnMbIWkWpo1tRtxlC5HYyZtkwPg+Om2rLCyHJL7ZNicdGIi33ZbWaM8qfcOaLJAGQ62EjGTytO853U98qA0yKEAAkCS+pburBj6UGVn/Y5pTley2rKAnHgznoxmoTT0R7lZQU08sTi61ngvTUFGBGFzX2F0qebJzemhrard0iuSGvaPNL16f1LU+q6XcXZArpyszzjWIJJAjxg7pr4st2Han1m5kg5n29BQVLUCpZzb5soi6s/6ku7ynaxaVgfWqNecsv3pYLlczTtsYLAJMKKd5c1bYOsYiSWsAnYRDQ/b6casKGTH54PjcTg8zNRJY8D3+qYoypoJ5k7C+Wptu9c5pwl9n4lUbt5xvZGq58fNYRFtHD9wSZGP6wngRHe7U8x9QLeErbLSFFBOmA61HyRcMuQbR3sJt3CkDo4Ns2EIYafMiMlYbHQtXejLk2Vjs1G3dVWdNbcNWGk5uSVNpuy+nzhVReHm2wqfR4xJL7qj3XKSl0m5ObejyrDvsu1upUwmrrmJWiMlrk8X0SRR2trS1Gmtxq6mkjoA1VdEbZ3r/QfC3kT8bMXG1MHe9qO0vZTLwNrrh4Npgaa43LmJIhH1uCzvjEo0Z5yoP6hx7RWTCkOyvXDoRbtbFpZmoJGgY8mQYKqi1OlXx9yYHu6plSR2QDR3bI9KheZwuDu2W7tGRDjOZtws13JDstRkEJs2C+bdWErbttEnJCNYtMOtO2jb+ojJjFXgLekeZMJNyLf7OeRFbxtYVJIly6QBDPrITysub2tOU+rWKSm0J/OMHartWNtsoikn1rqVA6RH/sGV2vQ2ltNxfxLtmhPfXsjG3JyW681ZNuRFO24K815F7Hvtsm11FnDELKiutmFmVS2LJlyyYdPlQXJEpy63e2GysrYhGVjdI2V7zk6eDaDSUY2aN5PNyXE684RXxL09St5R985p8//y/nfJW1yMTBrirDNsYdNGTZl0Zuq6NZGV0e0x8EX/UhwHb3uaa8t1bTBQ1GO39LI1uJ4VsdMVBLQQ3OPVjxkH3joM4vQUTpxsafBoudrCOEgDPXALoC/k+cbneu48dWOl06UDOnYSpc9Y0bd8fQWNvwfHf4s3q43uA768Uvh8e17/fHsYfhstgSLuEXsy/0ZqHMtyd6g9md9EjWVwiqziJCngPFmhqTdiU9Qd5IvxTbgUSeMCh1MImhbOuCUaveHRq0rjPH+xsSTOCzhD4OxjFCmwOEvjFEPhSITnlLHLxcTP15bx7ZXA3eoq4v5i9UWyFHkH8Mn8ixZyiWdwkmLwKo9z3MeKde8C565ap8C/mFzv3g7/LCDD0HcQH62/BPK37q3vX3/375HursBL6P/aGvxe7f/ylfhzwO/+UHtlr/sPUEsDBBQAAAAIAHKaIljvftgSoAcAAIMbAAAWABwAdGVycmFmb3JtL21haW4udGYub3JpZ1VUCQADyGGUZclhlGV1eAsAAQToAwAABOgDAADtWNly4koSffdXKOh5o1toR3qYiZDYV7EJEBM3iJJUEkL7BoiJnm+fEmBj03Tbt+2OnhsztrFNZqrOyTqVRVY9PKQwjoEZxB72rwcMi2GU2TE01mEc7GwDxsnJjGFgn2B/v/yPYUmQxTrEkKW0AcnG1oM4rKCQ0sW/Qw/agV/4//0PjMaJs+PrQ/H6+vDwCasFvmlbWQyxdAMxcTHFRhfEh0dorFSMeML8hIhZ5wF3IMbPb9Y+8ODJCXQdJsnagfklAD24vhpPMQnUY5jexFyNBauHhxheMiug17afpMDXYQkreXkSueudd6YDPLtIDf35QjAEyVMcxRscT7MUA4pMHx9cp3kIi8iUwn3gB4UPYZ2IF2Y5BroL61oP5kNkKtzoJwXWda5LJ0cRrAd+QRaun7g8zubDp/modsN9F+qI9ul3MZBuG/FacwPdKYYiCZwkCBx9V0iudAs5vLB7AixGuWJh00zzYXqDl5yMCPL8D/lkKMZEA6xtA415YYYXL9v4Hi8S8aKYAtID4TrMNNdGz4drJLkLMl/fFAvPBG4Cv0f9QuKR9ds4U+/hTH0QZ+rPcabfw5n+IM70dXXcltB5nHUKvdAFaVFJ0AVJausJBDFygMQ6Uy9KAm060LQP2GlfQR5yfSomD1gQpfWzBVdMCqrzLLbTfG3FQRaiwYpU/oldtoBnLhy6WmLdGtGc/oEV+b1MDmRpkOjAtX3rHPj99AyYnLZVHYRARwNjpyTJ09Qf1ol9hNizr4vH9r/jKVI6Bn4xK9BPbdNGmyXK57o+8JdViBL4Az12I8ZFS5TcZeg7guHf5HNeTy+2+L/1UWSSPq2CV5eAYf9YeOqu8AYvUIJgUGZVl01G0D5WeH0Ddcdz3iP987R+j+D0Bwh+zuIDZLZQMJqnH0tN35WapCDLaDRhsDqn6YLxsVK/q8C/yer3KE29X+lnmbxB7ZupKdqYENgxmpHG9LF/OcE+NTgnia9O5Lp8xJx7sFKSbL7ECcBE9CXRwyOokblONYq3dXEsSoVZHNd6JGhatusvOxsYL6ltR1/53lzsVfvKvE4LvSqRVVO9y5HqTp/2RS6jdg01gHNB0OpN1haVeZME9C6PAZQ3wxYz53ppP/MTSfXqkNTLcjBYilo1WM791FHklp/vZ3PmkAtT2rBrOqn26vuQyM2eUNGgthpU2HG2qxhLolGfqZ3jLGvoZTUcKhXVDq2wYgSrDmEG/tEZzGyFpFqaNbUbcZQuR2MmbZMD4PjptqywshyS+2TYnHRiIt92W1mjPKn3DmiyQBkOthIxk8rTvOd1PfKgNMihAAJAkvqW7qwY+lBlZ/2OaU5XstqygJx4M56MZqE09Ee5WUFNPLE4utZ4L01BRgRhc19hdKnmyc3poa2q3dIrkhr2jzS9en9S1Pqul3F2QK6crM841iCSQI8YO6a+LLdh2p9ZuZIOZ9vQUFS1AqWc2+bKIurP+pLu8p2sWlYH1qjXnLL96WC5XM07bGCwCTCineXNW2DrGIklrAJ2EQ0P2+nGrChkx+eD43E4PMzUSWPA9/qmKMqaCeZOwvlqbbvXOacJfZ+JVG7ecb2RqufHzWERbRw/cEmRj+sJ4ER3u1PMfUC3hK2y0hRQTpgOtR8kXDLkG0d7CbdwpA6ODbNhCGGnzIjJWGx0LV3oy5NlY7NRt3VVnTW3DVhpObklTabsvp84VUXh5tsKn0eMSS+6o91ykpdJuTm3o8qw77LtbqVMJq65iVojJa5PF9EkUdra0tRprcauppI6ANVXRG2d6/0Hwt5E/GzFxtTB3vajtL2Uy8Da64eDaYGmuNy5iSIR9bgs74xKNGecqD+oce0VkwpDsr1w6EW7WxaWZqCRoGPJkGCqotTpV8fcmB7uqZUkdkA0d2yPSoXmcLg7tlu7RkQ4zmbcLNdyQ7LUZBCbNgvm3VhK27bRJyQjWLTDrTto2/qIyYxV4C3pHmTCTci3+znkRW8bWFSSJcukAQz6yE8rLm9rTlPq1ikptCfzjB2q7VjbbKIpJ9a6lQOkR/7Bldr0NpbTcX8S7ZoT317IxtycluvNWTbkRTtuCvNeRex77bJtdRZwxCyorrZhZlUtiyZcsmHT5UFyRKcut3thsrK2IRlY3SNle85Ong2g0lGNmjeTzclxOvOEV8S9PUreUffOafP/8v53yVtcjEwa4qwzbGHTRk2ZdGbqujWRldHtMfBF/1IcB297mmvLdW0wUNRjt/SyNbieFbHTFQS0ENzj1Y8ZB946DOL0FE6cbGnwaLnawjhIAz1wC6Av5PnG53ruPHVjpdOlAzp2EqXPWNG3fH0Fjb8Hx3+LN6uN7gO+vFL4fHte/3x7GH4bLYEi7hF7Mv9GahzLcneoPZnfRI1lcIqs4iQp4DxZoak3YlPUHeSL8U24FEnjAodTCJoWzrglGr3h0atK4zx/sbEkzgs4Q+DsYxQpsDhL4xRD4UiE55Sxy8XEz9eW8e2VwN3qKuL+YvVFshR5B/DJ/IsWcolncJJi8CqPc9zHinXvAueuWqfAv5hc794O/ywgw9B3EB+tvwTyt+6t719/9++R7q7AS+j/2hr8Xu3/8pX4c8Dv/lB7Za/7D1BLAwQUAAAACABymiJYB3nOjYARAAAxLQAAFQAcAHRlcnJhZm9ybS9tYWluLnRmLnJlalVUCQADyGGUZclhlGV1eAsAAQToAwAABOgDAADsWWmT6saS/Tz9KxTt90230YqQHM8TFruEFjYBYsLRUdr3XQjhuO+3jwT03ncZ3/ZzON5AI1pZWZkn62QWVaW7uzuoMLMMWHEWIiFwo05h/ReO4sQdht9hXQhFfyaxnzGygz68ILi93sAw/O2e5M8Y9abnr79Cd9gnvMdAMPYJQ3Ho119v7tr3ozno95s7CMrMtHQz07hPsvjgGmaWX+QQBKoc+uXhBoLyuMx0E2pEtw7IHVePswRpdG4fFA5NXzeOWoV//TdEdNBry+f2q7l8br3/BA3iyHLtMjOhwjEhdruC5lfPN3cPGKDb1vDF908NRPti9wCyzuXmPgKheWkFum7m+b1v1leNpuv9k/CilJt6ZhavlJ6EV3DtOzOvgbYQ7t0oL0Ckm7fQbVjnaXB/CK+wQOi2kTZfdyiJYjRO4bRB0UQXJ8E58Ieu90WdmK1qgXciEMXnxsbnOYRWLmdAD8yhNjNrqRGd29tPAexnBNye21p9PY5a3Ob9I6LnA9wM8WY+eB3HIdGbEM7Xsz3dNbJ7LYh1v7WIoR0MRTvNG8Go27e+pSvSR8+toVdOoVWpRWbx2nF+lja+L/9gj4Kz6cbOvWs0pq8YO+3HNb6IEGsQ4uTZdQiS+6TUArexkNw3GRGAMtKdNj8tEOTml6O4InkWwHeCx38MPP5x4PH/O3jix8ATHweeeJU6b6vuYvC+MMMkAEVbfGYA8sLVcxNkTQPI7WsYbQ01M5dpuUfoPDU1Tdj9pf5CYJtNjH+8SNsxauaIMnOL+t7O4jJpzLVh/Q90nT6eNXXMQMvt18JmiH+DrpG+jBGURZzrIHAj+6L7lSgNMz9P0TpIgN4Yh86xYhcyjve5ezKhZ6+HJjf6UlMb2SmO2uExo8K13GbKbcJ6SpvOy3Jt4vit7feKmAd+myiv1t9hr/MmqmuevfjF+IfQqObFi9T4ZlIY7jdSAX8/FQyawRnGwK2eLlsko310KuiOqfuh/4PJ8CK6vywFiA9JgUssH0W83XRohuwb5BPvk4/hZpfUCNTo6pSmM8ZHk/+jk8Db4P4y7vGP4P5ZPN/L/+thaldLCXCz27eLpQuGx+UU9KUF1fUH67IAvM1z5y7LAcQ2rz4hncAAq3V81N4O2QXbb8XsYpDhR9cT0mK6k2FgV/rxaNlgzO4OQa700WEGywcDSTeknwrigJruyYKRsOnWJ7ZTHmZ2VqxhgLNlEyV7bJ8TegtqQUgVvu+zHEg3vhviBTOWpMNpOjmMUtT3ncUYHtRG31ZzMbPcLtjwWb+YuoaA9o14O028QJy6+pwsjX0c7oiZSSZOQk+F2qTZ0IttPC/zXT4CBnGiV0hAu5o/7vNDvJ+4y03ZldRppjlOuqLYAY8cTWIeHYP+lPAyuVgIy/QwXkbuVjY21goejtelRLNuNmY2M4QVwins2tzWnJNbnNccct3TynRJ5U632B37PusP5eksyfe2l2CxzZ9wN/QP8lo0FU41BuFatpan1Tpkbr9N8shwv8bvs+Y/Su3wMCspN8b2fimQvi2mfTBDF76l7+CpWQhru1YKae0lhqKqiNmvKa9WtqmwFvp6QHNlD1ZFez4br7rCStzt9huuGxvdHBjpwQ43E+D5Rm4z+7i7TaWjt3IsRMG4iI5PJ0k6rtXlSKRngsWysmaBjZ9TkTrwKp3yx2YUkalKbbggnKt6fXKO29TxozjAWDob5oBiA++gWFVMTBhP2WsKgHOSwysxp3KJHp3cnemZc1U8jayRwSQcTLL5gh3xts4I8nI3chzVG6rqeuyNTGTi13Z/uepWQu73FIXaeAhdp6RFbPn5YbesYUweb9wUkYSgO+URGMsDy0kncyUbrrbpMlem2s7SCW3Q3a/6qgh630Ht5DIbfI3eVyr/X71/t+pdfbV4Vz9M7AwDY9sNoh3nmNkO9zh9H4UbdtYTlM2QYGY9tOwVOk9h6kFfCSxV4oeRGpsbhtGG467LKpsxBohDnQFTdqQJuaFmhVBGeV8Nhyamw3Is7litF+82UeEr8iSqq/WGPNbMijDcgY6ps2GVoLU1YxDN1PYi0l2UB8TYoaPhWuVO63Kkw2oiKYjqJnaCGPGeQ604Ovni2lUwfKLZK3eUpcVuviCLKSYCPyo8WOnKcoJVuTRechlae/ykHMHL4ezYjBaATdHro+s+vKpnIR9iR2WESQyIAYbpHsHtSeLY664FzrJWe1md2EDOwzWNpeukL0Xz2kLS0kW3p8BeVP0VKNE4GVcIqfcHoTxeHaeqyt8+24/9BA2WI3bNSRNoNRooS26t3k+WsjJ/s8d8sdBp95qvFz/P1mdPi5BG7XFh9XLx8LQThS6HIKbdeHw8krKyOLxP4qw4d0AvwiJ+ED0TJllcxHoctN7usOtJ1NPO9rx6uz0feTQbW/T2E3Re4Hz+pk/6Xaf0O17Xg/kX3L48zPj0+oDg0+tN93eDY3D0XXhP8r8YINXtUu8BfJJ/H8Au2cGxXgfDmA6NIQT+/Qhw/D3/D9Lv845jRIehOngDgGAu3m+J5oZuPj2iQ9NXWRfr0EyHRDvdBy2M6Xa6RAcn8U5DyQvg0IvzkB+pQePtOcT7Vdgq/l3rEOvi2Htun+R/Vqrf0mQHw8lOj+5Q1J9E4XtnSe9zeNb8u5L4EZPpH3BLksR7fh/Ff5rjv3x+/rgMff+I6/0cver+J2fpF+eMf0+u/mH3H/Fz+T3z5bOnnA0QGPrCc8m2AfoJMmK9DM2oAEV7iOQURZL/jCDtk8G8yOrOo6mOGyOP3RE/M8tTZWa+mTVrcr39Cs5nT+1dfrF9kZ+fXMCXJH322POtgdsHrWcHWk3NdfCHhs/n7/bafm7gA8hcoAVNVV0M3Ovnp6HN1qlwbi9Om/BMC5RBcT4d+71t6YSxUQbmZ+QptFuocNwcav6iuIBAEMSVaUBaWUDPOkBudFHTQW62uh3kjYd/IZ3EBbqZmXeGGcZvXRixeXFSxZnfWnTNEKocM4LK3I3siw/zYeQehvsTxDWicz8/iqumQ926fuYYiZMCaWx92f8N3Aza8zEDWeFaQC/irL4vczOLrpvMr+klIM8b5MaT3tND5iuJD+PuxPkZWRm5xyafkMYgkpXRletO3nzdXjU/JOV+ypqAC/Ou9XvOvzOA66TZ7IUbB8/SrBHcN0N2qam7cTvL/+P39lH220z6jLTKF0Grdxe311WRuXoxbXw0O/BBOyc39P0SxU8aSjOms4atqFXKx25g/oIY5gGJyiC4/a0dOwh6CLk9u3YeygQYxnkOaYE3GN0Q3D2SekbXcHvoPNDSjJYegcAFHT0Or5XyQOcl6c9P6N8h+/NV+4HU97UfWi/an9+kx8PR9MscepGcpVZGRfk2Ax+fE1wPLtpx9s36rYHvPIZUtoWIrj111Q8PmOqjNQ77sWK4I2YRuTtxFZ30xWklOZ4xn8mq05VHNRVXOavP1toe3jlZBeN4tx6wURCo6bgKp5lmIUI15POgBkk4yLDM2wyzNYaDWYGsCzif7XqZeKjqTFCLnjqaO90RK9XZbnuqD0f3FEfkYkQbA3alZyjf9Qv+xKibyWZ7cHJSPi3zlUvOJ5LIHl3JqcNKGCQuu0cd3cP2oDYJY8JUy17Fp7ycepxIHEN8sNDiU787K6SBfDrxnN5LPS2oKHtXJHPUnYwRS/XIZJnqqE3Ba2M0HGpzRcmiyWJTlHE96IfZvMxDS69ra4/KHD8QVB54U7XrGDtY9ONcMBZbsmtlDiNgJ8iL8/LX7UxEUQZnv0Zi5h7aPPgSi//8591IXt/Ad+2rP5pwErRcsdB8yW3Y9QiajdRzyw0sctwoYbmG1dmAXYxYbJytpRGJj+x9xmx5SSwOyWw8VZ25wpPBaZTQxEhEPVUl1rUXcuYNvHbEMhUFdjrwcdwKSEDPi6LUbZvv7rczR+cdCieQmmZrjdfDdG+nDCCxBYUyRuhmFnoD96xsEMDUSaDFtMYFE+8PSXPJDvUUw3I6o9Wc4uFRfz5d2KNoxgzMvbDSke14GWwyUpOHN3COaqO4HB69NSuqnqon+aBKVXticDuO2W7zqCCWB31k0gPgrtO4Hkr0vrD9CSVW5ipbL25gL6fr1VSmYryry/G4B9YM5zgWgXPwTAGRxMkHn1iyFX7CxrPu0R9rWira9j499TI+IsQGQ4QbQ3ewcPHBNj7isrrbIB4/EwaEMi7lHUVaK0avuEsNxVx7HJhTzDrEkM0RdTXnBgYsOeRRaoBpuUPrc+bQzWPethLseNquJnHc11nsCHKZo/qU5/iZLQVShpQNgya5EaKGC6zmZ9mEqyIF2FkQTxaiOjkOZ7tKXRxpNIHHu2VZmb2EoUxF9ziBLhYrZWBghSFzdG/TjMPY62/A1q01S4aBslgIdSHY8aznzixH6x1kmBnD+xnmDr3+UDqOS1cWu6fY3MpcT4tVv+ECr3ecX8V9c77CszjX5gKgSCbfAH9mHvGtszCUcV6Qew3gSyfaLvo7RSVJ4TCaddenlT5uMNRq4sxlZZUE2ukk4rBVyhFgMInbhnw9DS2sG3i9HeMPKGo35vZicACJn/fpvBglQ5e9gUkQEJzR59l40mfn87IpZj9D/IWqRr0muS07CTlp36M3JG2LgpPUigy0fTGm3UisxXn/Bk57vjWNcrrhZrSm7WwlZURaDYcbGg+qwyRdDsYDh12JxmK5ZAQQ1YY/XJlpUu7rRbEJihuYRaiuqhi6pPY2NSzC1tLprjIHoVJdJjRTMIXtTuPJ5bQ/R+RROC3HZChY9uaMWerpDQbjuJad3fwgKxTTz7sZb1gxlfY5TLVpcTDRi1yp5uOkwvxtr0csZXkOqB1HDXvkMDds+gaukz3MDYhkuSmOFLZzCUmujltpvZ7ARq3Y69X4BG9nXl3t9jtzymnbyHbHqU/zY3WxnZ/8G5hSAe+Txd7xcbWUJDAYqEt7kdbbA63HozJbBuJuPw2iM2pB5ysDLNATHe94NxRIr2qqe7/r+lyWzLcgKlljr5gkb3lwuqNDi7RmM20QVwtBDYO+XCH7YaFbw0BU8yYto7G3h3s3cDYncp5XExEbE77DL0NibkiyMlBElR7Abi8wvX0zW4yolVHzY/9UaJ4eVyrXi/hpf7oXbuCRdEj1zRbvVXN5G2xm8elEBacIa1CzwqYKQbyihsWy0qtm0bMXFH/ZW0sOx5aeLc6mEnYDD2tnKC9hsrASlSMYZwobVhiJNFGtMytvDCqg8lkzSdexFdQrMe7hOwTfB9T/VmpuzYnCUBx/76dwuo/MctnWCzvjQwVFbW0RFenO7DgBI4IRKOHqp28SwLaOfegjJ5nDySGT8/uTY1rRTDfJUVz4WhkK+153ZxjZRAC4sJEmd8U/KH1yluuO5cfD+eC4D8TUXCdOeym1FTxZvxW2UEojvbjhBmbE7Z2Z4r4+oKll+yffttVw8qJgS1/oUM7CwVPvZOaRCJ7TbO6kAyFTEimQHEldp3pM9qQ2K4Wdkb+K/wLgci/qLE3RsWu41mpedrzddOydZOfR1FzhqBEqmS58V+Gkh4k8HiHPvyNnFJ61lRSuRPdR7t7HajE/5MfJOjLG7S532HVwL9HUWNezN0te3Ed3YTFCy7zfr0vR8Fn9phCxcsXK3a+WTqgNMzZnLRBkB5wlfY2MzE7FPNFSIe79ptCCS0z4aFvXwgbJfgh1Qh51hCte/6L6sr+JcQsS0AKtACZMXThEyBAZk8QA7rzDpjbfcGxaE3VtJXFfzLuI+XL0/FIlhrR7AbQIISfAC2B8JTfnsab1s/bOckbcf04hf2WpfNN3cg6JxlR5oiYYZJTkK5691VeDzWIx3ihDY7kR+xXTfgObFdb+Z36rpeEN2GZ05rYB8joHNG/817TxF2nhWSctV0tVSkQE+11I0TqJU1jpnZheycYMbAHKQYlZCAjYEOEPqcye2Q+f8Fi/lW6GKMSQJ5rIh07yIZgBStlXIqPeNgw8cPtJKr8DUEsDBBQAAAAIAHKaIli98Aj1fgAAAMoAAAATABwAdGVycmFmb3JtL291dHB1dC50ZlVUCQADyGGUZclhlGV1eAsAAQToAwAABOgDAAB1zTsKwzAQRdFeqxhEau0gXbpAsoRhrAxEWL+MPiCM927HkHTu7zsvtZpbBe1iqRQtY2HpLJjb5J1FlzGM8vHYg4ZFAXTyjeEK+rK8kp330qZYyUUWc5QmUuBVq1WpdGaL61QZZx74FLKeb9Odx2Mfnr91EvOHfkIp769y3G1QSwMEFAAAAAgAcpoiWGMJ5U0zEAAA6z0AAAkAHAB0ZXN0LmRvbWxVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAA7Ttrc+K4sp+TX6Fy7dadOUkAm0dg6s6egkACCY8kPBKys0UJWwaDX1g2hOzJfz8t+YHNI5M9Z3a3bt1kahK71S+1Wq1uSVYsQ0e2RTXFMjWMfj8+WhKHapaJhGxKFI6PbMeyieNqhLLGI2K6lmNaXwXbIdDKmtdEdgEwxjrBDqEMmk4jominaEKoiz33FBEdU1eTRxRQ5KmPUW41uggb2llGKZakUkmR1HO5o+ZK41MfLEoknxtnM0peLozlkhKAcxmxKBWkolIoZvNSDh8fvR4fHXOOtq1rMnaZ+lWiaqbGHo+PcAye6OsRtVR3BVqPZMuwLRN6h658nXkzY9owXeKoWAYD0Knl6QoaE0SJjR3sEnhZI6A1MD1FY6BypwQ1qjVkEqJQ5FoMWdWeicK4gbGWmsIsidjr0dR17eiBsqdX9ku2TOoZGzRlXJZBPEc4iizIcV/396Hmm7vLcf2exGT7LNC2rFAMeouxou2wg5H+Pq9j1g2DImNNF/o2i51ebqj40Gqm6kCHHE92PYcgPIZnLLsNBubUMExt4q4sZ87ITeKipS3HRhBVO60mklLiKVpbHpKxiahNZE1dI3jEiuIwXcdEtYA9G0KdmBN3iiyVv1FvzHjCIM8DlmXQBOv6Gmlu6BVYpxZiKiAtkich4IgaF1dBf11LtnQk9C5u041bNlGOAtb+HzEwBQh4IGiKl4R5kDwl8hytpgRUcUAfjUYaf1pNNRjJFabghPb6zAYrgU+qjmUwxUNmlMieo7lrNHEsz0aOp4PVZU1xPiMcdoTxYH2FcYYOuMRUGCPLiRkgZJfwLg6EkTchCsD84v7FsSXfKV53eiltehnMtYM8xEM8shse4JJxlwHIhUMUcFYNRgQAc7Ie2VhzQmE3ZN3GBom844H8Dww6mJaEPqGZE95roIS/YLLJNHrHrutoMNG5bT0KAyLYGgQHPxoyYUigdHrmUIzK8FPJtl/whbiWpRp7rZbvyhUGLt9dONKzNmsu3Ppj5wRPVvLzszrBl+XHpU77lUzVOekslfRikJsvmq2LQv0p55baYv1hnn2oX5+UHlVrLOLGpEMyufNypdE8vyvcZdsr6alSbuDFYK4Zklu6bLeXL/WrZW2Rmc+nd5cnF2ulMhnSlqNqeTy4dipuXVOamYpiPdTtmd6qa/JtzlOeLOMxe0Ny9tQu1ptrUiwbM2siUY8+0hpWsi/FblovauP5ZeW6KlVs7X7g5dvDujOeThfdQvniOv1Msrfms16pZ2dOx71r3i+Wl/em9tBRBmr3pHrZ89rFsuZclgY36XLTqJ9ok8YDuc09SNfjaa53PvYW9wU6zbuPz5V5eV7t1G9s+jSZ2aI1uX6RNGO+7PRapN8YKhdGr6Pev3R7RomPAtYnFvj71EDCfbfMQWPNpSiXKRUCN4m8otZNOMR/N6Q3Ir6caLr52AB/epRmDfnJNAblm/Nmf1DNlm7OM965K18XxOFS7jbLBU9a1oYWGZRK4+plXiv3B5cizi7XDiadafsqNyjcuE3PpJWhUSWifNKxWo/l8bn1ODDdeb9zZa5XvUHueV3qZhXtQhaHN9WVnVmrN6X0mIyfWun8nbdMK4+ZWrU3bLz0vJp8MrTb/fRQsyd2WrGeGhnVMl/mrZ7WF6Wr8aSr1ZyF+3h7l3PrYgvPTXd20s93Ora4ou3L+4aTWc+ur7zayX315hnshk9Ia1bJ9Con3fWNcW2Iz/2a2C5hC4uiPMs2nnLZ5/N8r9lQ1e5TZ3g1wR1q9IriomdX2ubtWk0vPC3z8KJP7laVLvYyln25SufkyoXRuew+14fD6z8+pIr248a0urzxCpolPs29Zm4+aS0q+CZzN1flx5M6cZu9ybrvtnszW+kPh2lSWRdm6/7DotlrVmS92PDOT4atye3NZTff7LYeH58Gjbyl5ClWFsuJMbjCs7lCJ6UnK/+waD/PulM13RcbZtF6eWm3n3vD+1qreNNUy+XOWMWDOS2Yw4vZSi7ML4lp5hbDwqChG7dDef0yfX5YTOempYvlolOluFDWZ8u+urKyV6VZ/2ncxyc015BWLVqg7WLtRXskM3I7bL3U1JpSshsnuTK9K9euJ3Kp2bl/rE2nw1l1OOxdzmokfTVfTyr33fyqSefn/X5hMEsX14ucmn24vl0+3q9PxM7lQFuk2009X79On4hUV6eLq9u+U+0+LO5pvz5+VOXs+CL/1K0MW/j8vWMaH9YOrPk6qY4/AvhHAOeewbI+CxJIeFwafmY5goco7XMRpEqtcrta7nXuhyyVgrzJT3IoT20IhuRp0GL4ABEuIGnodM/OzyRRFIUNF5YuQhrv2UqY8W/52aAFSRpmKSlxNJYa0YTbeRRPCMslI9/jSa7GigrIlMOsb0x0y5zQEegZZD9R7hOiSodQpR3U7CHUbIQKveuY+prraHrGGOYCpK5XFZ5tAb6USWXYc4Db61Q7X1DXz3ZXhBtT3qRa/+QlwOZ9e74es3YDKi8oIMFwIz8L9ZWUbW8EOX0s++dCFY3isU6U0YYspBDCnFbYJH/HO/zRhrFPB0mmggSfxTfBsBRA+iZ8Qd8EKHLBJQxsygA4DRACBRiGCl0iIZzxHvFkGmojU9UmDMPnCq0m9NZn+jtUQlBgj4hODDDLiLWg19czgG9pGjaFsoENy8KdJdZ9VqIRa+K2Y/BffchRIJu1kWfb8UkiAgaGzvnQvJGA6xg8hMb051BKloRZ1yeR4RHqZz1GCDhQUBOYpgFOEESTKAqxdWvNu64pG5PEofE++zTbBnvTlEla0Bqa3LVNDgp70/Yhq9eYgbBpWi7fO9ixEtaJ445giDx/NEDgz8jBK/TzK2+iX76ZIG4FkQz95KOBGIA42ISI8NP8FMDoy1eUYoqhpK4g6veflqkmH59UoglUNRHatccWyXZzQDa1qJvEZJCgkWvJWplmDAZPUAv6agcPP7MHv5v7TTZxsIpNPOJG2Daa7wj5+LBZzqTBoWIc6mpuODkhYrpbzgcTme/u+AiVLR/CLo5Pj/gM8ScQURuBQ5bjpKxt4RFn3Yt8aLvZITp4w5L0NIPcs3FMdpDjsAKcgQuZzGmyxbUYPBMDvibZM9Wp5Tky6cenTAQdeTtzJghlRN+jyVRTtsPXZiSCANPizitmdpQ18HMVBN9agMlxcllpB4mby1eUdfvT2JPnBBzs27dvgv/Mnj5/M//1i+/3n6AMdwBhmXJDE3YZ5BTBomNvwS3bp1Q1HZT9pJpf0CfnM/oKvH5lfEcGwdRzuJOz99/Q169cNET+jdxD1AFSnOjMhdmuf590pGpEVxLUfJ0fsZzy++TJyBjnsi9Afp/dTtDcZrkvdkZs54TY6BOSLd0zTArzhveQDQN7OEV7NQ7A+yT7TSysbN42Bgveeajhen5OevPO/IzPls1zfOIcnN2VP3F2/4i5fQbT7r1zOYp5dCu2bRngyF8KwbzY9Vf9rVZoZtvXxh4+8JPNb0F+O90h3yyxEzcxPtud5tjsBOGwKhte2FS+zyyKN3+oU9t+xPv1PVGQzHqQ1HxX2JsGYpul3+/VBj/oXwLhNf7225bbbbwqWC7YnOL84O8XPtVGLCkcjfjk45HKn8G8kXsg/H3dmYR//tpxeKImTCKDDakmj+IT4EBMiB6jwQ1BwV8f7m8r+zvwLvgmAlXGluUKQZEAKT0ShENVhUEMyHs/Coujj8Lio7D4KCyix4/CIhiJj8Lio7D4KCw+Covkz0dhEZJ8FBb/fwoLbFINUv1EZfE709AmGAKb5Y78e0e+Rrc9scVsKdg6XkNFMt9K/87Ozr6ZZzzVgnAKKwK7rjcC+hElujqaEqyz7HOTiLLkC4ZxzlJGhM6Qn8751Q5PzBAQEA300skXH+CDvoQRPujAiJ1+8dCd0qhVLGREP9CHNDZ2pzs0xFym6p1W7fU1reI5GdGp5yrWyowTyg4YAsStCU1kgLwZeNHpyF+deNoI/hTVZUtjpBnsbC08+wte+ZyaEJMFB34dLTobjF1Hi7CJor1B6rfuJQxuN75BvMEIGSQE+/eo/Ot4b6mwhRdXBrhbFCqooGqMJGI68RkBekwLP9rsP+wMjg5DbP8tCE/7DxwD148f+iUvWR2HOIZmIn6cCbMXiSidRn3KTk/LoH6XqX/FtccUYbTCa35WC00G5uWhvg4cFloNLE81fkcNyZjyY1XiOJbDmLP/6X+w3+gf7Naf5SjsxpwVXfbjd9km0bU2d+oQdnpLITFSgenmwlv5ip6yM04ZmwE7yL588vAuXXSYG94S3B4KHlxSAXnsPp8vC7piktX21TwN5o1C9rEL+KymxARdmO2oJ083WgSC0oddI+lGcQfZcbB3uEmS5m1nEQ84S3T36q/1k0P2gZmesIo/899jC8B82wLZQxaIrir9LSYIvS+wQNh59p9M+OYWhfVEwUG/NjdYz4L+s4x1ZFuOG2SnrhV/Y1dMKfpVyKT4v3RG+C3qJnSJC9DHO8x7F7fb3ItJ9sUkfzGTgkQhJYIIKSeg8F3aes/677s6RPcQ3tShBGlGQosI8KP0CFbt9yhTyOcLCWUiQKhMPpeSxPOUKJZSRTGdlSJ5PEqG1zlUF+ozCfQRP0O4RJRO4VX6/M+4WgznHSpJUkKh4DVURxKzqVIhJYFG2RJTBwlZeC7C//Nsqlj0QXkxVSylcplUPsARS/lUPpuSclIKrB3vhu+mmn8z31cvsXSFaPtdXRmHzv5XObrl7HLfY0UxL4kJCRHgP/MyJBRzKVHKpc6LqUIhacCE8ZSxGPyVgr/Zt01I9L/chuw7if8+XHxPwruiQS6XTcgI398j5O+ONztjv2cxf3vs+TcJxvz/4ui/MR1+tA8cEvX3RODDHd/1hzChSXoB/N5s1rHNRI4efjD19ZdYpQHw5EdI0LqdZjIcReMtPNWCd//zIICEFVsoF8ts8wwlxQeffV1YJuRUrvbif+EFCVH5oXvMiu0Y2O9aACOjrU+KFLJMfJTkILwKjcG+Oonoou+KfLtGc4z5rFgINg+CT1UiouTXPVuUwewNmgwMrhfPmsPthbc4S/s5S4c4S+/mnN3POXuIc3YPZ94MdjvetGx+QYIdiUze4OVTBIpitluDBFdKmdi0ApFbHyX6jEaqjpcwg75uY7/G9Ij51a4y2xUBVAPiRpkfrstOQbZR6pA60p+pjl//hEocUiH7J6oQ273YskW0O7LjLfFdk1hYvZjyo1BWSfsI/Gwi/CDTdSG0+hS81T+5EPZ+XyrscR9faMyJdvXb3VbaI2v7y1dhazzeJWn/PtQeadsf1Ap7TP++vr2xc/UHLbqf1UZ6eLUbbZaAZfBZqGW7mhFGfXjh8q3xjHDEwPkE2aKuwJcUje/lCHiJNR2PNZ3dHucN+DlY4kzLVD2Tf4SI9ZFDFp7mnwAGzAAiIuECOKL//YrOWdwXGLn/yHj54gJcCQnlmDD0y1dUKKTyPwtMF/7ISRIKBaRZJNwGS5GAghN+AdYkrrAQrlKAjYIfoMkhITgvC9AGLb5VylfQ1+N/A1BLAwQUAAAACABymiJY8sZpf1kQAAA4bwAACgAcAHRlc3QuZG9tbHhVVAkAA8hhlGXJYZRldXgLAAEE6AMAAAToAwAA7V15c+LGEv8/n0LFS1KbcowuwODY+wIGG2wO2xwGJylqkEZCoAuNxOF9+93fSEKAxCVkvLXZYreM0ain+9fTPT0ttTy6+u9UkYkxNJCkqdcxOk7FCKhyGi+p4nUsW78plWL//fzTFacpiqaiy3ytUq5oPJSJqSJdLvoxdj/MCVPg9utY3zT1S5KcTCZxTRHjmiGS7UppQYL8JBPWoWAoisZk5TrXhwo4l1RkApWDXi+g675eugQ4aMBz3dAGkDPj0CJ5TZFJTCdLHDAxMK/rHH2o7nNar6ukCgYI1dGhRKZhcaZlLFBruhmqN6aTFOltDlsFCryO6RqSeE2VQIwAnCmN4Y2mCpJoGQ7VdYwk/+RWW5BtBZey5APjkXIGNOcybNrPPxHEFVBVzXSbCGyYS3OmY3rP3vVHQ9OhYc5ixBDOrmNQNTVD1WLEGMiWDRFrSkbgg9WfYfWXjHpAhsCAyOO2NOLaYNgEmASz1jUVA1qVh/td1jXBnGBeNx6BN553EHuUhQ/xUCBLgXxJNaEhYIMgZ4RWhNrD5bGPs+SfcIrlr3aIU8SOHvTGHnPkGPvayTlC21HcEdhLhjy6K3IpOPLQFGTsLRJXxzbg+kcaoP3qIlfcURXhpW8GH2JZEbDnc5W6B1eZoZG8XxLfy3L4aKvNr1ajntPgj0ZzNqCHW3CAcKKDN49UHM5XITo9L1uSYVpArgCuL6nQB7c7VmKEhof0Bouv1c8vzhmapmMEwqEBiJiKoexAhIMNjwkkILuj70eEDbA8H2exAAyjrkNOEiSuguc5ZuasQRt6GpbsGIgQoQpx6IP8raEpG0nnFJrhM6jkH1uMvQdlTRVRQ9vIRYXmRDOGmAf5J7J6+NANtQhpnGTL39gLQc4yJHN2Z2iWjmPCysQOAGCiAKCPCICNAoB5DwBeQqAnQ35pavTZI78iN52dO77jrvODpXXX/bdSUrAzBh23K7mtC89pVTZ7pyMGG5k8WBSOCocIEt2xYcg/FXeu5aEgYa3tPOBw4aK7xEUAQB0HAHQXEjeyR4BB74KxEjI25BgPcPYIJCOw2uPWKj6OERaCBk4j3PxrnoYg1D83ECCy+F+Orb6BG3rGMQX7MJ99yubs5uzTjcFMpUF5ZBbbtTMgTrjpVBDBbbY9llEzR+WNs9qYJ0etxHBUrtykiq8JM1Oliy9D9qV4f5ZpC1qPBiWxBqnERTZXKl88pZ7Y6oR5zWVLYNQaSgpjZm6r1fFb8W5cGFHDYf/p9uxmxufEDqoYgpQErXsjZxYlvkzleO2lqA/kSlHiHhMW/6opbfYBJvS+ni6WZzCdVQaayCALtVEB8Oxbuk7Kaak3vM3d55mcLj23rGS1UzR6/f6onsre3JNTyD6qUzlXZAdGzXwqP4/Gt8+q9FLjW0L9LH/bsKrprGTcZloPZLasFM8ksfQCHxMvzH2vn2hc9KzRcwr1k2Z7mhtmh/la8UFHr+JApzXx/o2RlOG41qjAZqnD3yiNmvD8Vm8oGRw9ZBHPbbOPQ/dzPYtDkGRi30hQmVQ0ixfqxzD2Aw1uRUlW26U+NNrMoMS9qkor+3BRbrbybObhgrIuTO4+RXfGXL2cTVnMuNDRYCuT6eVvk1K22bqlATueGQDW+tW7RCv1YJYtFeU6Sh7S3FlNq7SzvQut3VLNYbN2p84mjVZiOsvUWV664ejOQ36iUzPhIUP2YO+1QiafrDHJt6lCvtEpvTWsAnfW0atNsiPpoo6vHl5LlKCpb8NKQ2rSzF1PrEsFY2S2H58SZpGugKFqDs6ayVpNpyeoevtcMqjZ4P7OKpw95x+meMDAGawMclQjd1afPSj3Cj1tFuhqBmiAprkBW3pNsNOLZKNcEoT6a61zJ4IaUhppetTQc1X1cSaQI0uiXt5k8WmSqwOL0vTbCZngcjdK7bY+LXY69x9gbF46grXz4wcrJWn069AqJ4ZiZZQDD9TTUODaZ0VolhvirGlWGwOdb3Y6JMzNUoNZ82VUbpRznJwuWRdnnYr4+HBbT5brlXb7tVVKanwSAX40FpXWHRgMeSRmXrXky6g6HdT7AtmkS2pae3urVqeNznOhkn4oC9lsrSeA1hCl1M7NYMKlhrdQVROjTqpVkpXHDjd7609fRv2hqsl0Nm3kEUhl5cG4KUw09i4zaL72muAMJUrMpIJSqJouvEltOICPncpbQSjwGb10lsiip2zhXuQy5dpzu9Dvdwb5TqdxOyhA8m44E3PP9eSkjIYXzWaqNSDTs1FCYF/uH8ft59kZXbttSSOyWpaTxXvyjEay0B/dPTaNfP1l9IyaxV5b4NjeTfK1nutUwMXxrV3DaasM871TNP83R3N3jV9LIbKWqdU5IOM0z8kUg8kMQOIyd1/LDtYyn40XJ4dcjRx6ZcEs0AUzaw+U0/hNknxqJccm18bKS6JdQ0Szij/DC2WbYFL4bgvRB1qI3WohP7TIdjr4apD5eDvh65Bw1nEuWN5tE+ZAm9DbbYIBRbbEwVel7OGW8HPwbmaJMUJa3mw64DILE6/dc3LucXicsXF5ECN0QzM1TpOvY+fYNgIe40fNMK9j2PlMzfu6MqicxBufqbjzn6SuSOd4oaojYaM8uYcXVEnFo1eq3j0X6vVV0Y2bx1XZ6RXh6XXpNBWnKfyDATAJP4IACbOfhN1AsksPiMLrkWGoFU2co+9KF8W9ExJeoVQymVoq5BwFoSQTcYa+iNN0Jp6mSZYJj0Yw9fBIGGaJg2HWUDA0G8+k4gwGwmbWUHhULD6dxj8XbDyd3kqVpOPpTDxBxZPbOdGZZDzJxpkEE8dW3q32Femf6rvmP9/bEwHmt5SWs50IQUSHIWK+j7ihGSC8V9BJhl7Kd46++YTzSNKJOM0k4hfpeCp1PIeA8j6P2HHP63tbE5zK1LFWhYjyDwjniQS7RGAfHAHCv3o5OcRxuT7khsowjOtuum39Q7tu+FDxwQ4cGcgx1+53B04vg59jG+vc0mfmGb3nNc4R7RR3Vcjh5L70zqU2XPRdyjvosp3cqQYTTY2NyUC4C4tIalB71GCjqcHsUGNPQFnUvz248+NVB+d0q4sZ2+VyGx4vuU/LfPn1P9PsH/gjs/YxsjTzD0XjMRP3+yXh/tahIWiGYj+G5Db8vofJvHDpcRHwhTHc18fG3nXU77qP83i9dyBe9rZ19oP+8oWwHynqQhkq+OK8a1MQX7+e43ZlUU/tOlLnp/bqthQn2Y8mjIHsF0krB7BwbOX1/2tPD/tj3zgE+MOpbvjhhQMXYIMN7+eSDKlkgI8MelBGYW26iQOCY2hHTj8cDjdJnGeJ8KCWfDlgQlEzAnzn99Sjs+WhLmszx/Ukft01V8+G9r2NcoJOHmoaRJeHrYDZ2Lfe9iq1d66FFf/1QGdbeQrvPR4HZGiYXefRPBRQ9hfCABPil68OCbp0mGNtJ5LZJ352e2AtcYsBVBESPw9/x83E5TURt8eF8A8VRvfl53G87EyRuO8UHimbNQ7ua1YM9AqeXvbsa8j0E9sty/MOXJvAhjhvxgdQ5V0V5l9+sb+4Wn+s9UQDCEAFXWds32O/5bxLRvF0zRBLCw50FA6mZAbXUhMi8x2xylvI/Uxz7wgfwASHrEKBjwPNEhBuQKEUiI3ZSKoE+I4saMwaayHqGKwNKAP70eKGpMBne25HdNBNvO0LDo9diqIiA11xQM3jR0VkdsDk3eZeSLMMDjY3rYKLs10r+jIYEKnYD+Yf0Sp9iQ+dyYbl6eWPlcW6QlNHMbgCpnk8qI8alrDgnWCZozB3ppXfiLbLfupZ3BDiJeZvt809nB/85oj932d3IfyETGBgynHc9OZP3W753X5sVg+0a/qisyDJeMA+Ceol8cn4jbjG7P6aC+gqECB87WQvfPOmf4jraw8MvgwKItnBbEkd4HFu4oRCPoBTV5CgzG9gZiEgYndH0DiAmy8n2MB0Q/J1CPdg7rBFwoY8MihlCKFOfMIXnLKlqAgvKd5w2Hadf/+d2KHV8uQWUAsCO4kJtvlGfdnqZDieUr+9M8iEWb6iBtvD+0WJz5GD4jato+Ufm6LLv3vR/tGX7HO8Sn2PS/QiLT7ohsoHTZJNAKEdgewHPo6j9CYROjCAckT9Ax9s8ogc/3nfPNk4bdYCh2i+KxYHPqJPqk1o7b8C/Fh3WB8PoPLf74D4Ust/3eQ4xtq/6eOf79FUBuQtDn67SPZNgoX9/OP3OzvW8a7Ml3cLipB1rrjoEVKeZcYRuEPw91L9+ddLL6Xv2vWNbtdL9b2Lq8V1hEdopyzzr++9u7AEfLolkPm4i4Fdbs/heYokrhtM+CLKinK9dVCX0AE8DNs9NNtlbez41f5TZfsxZXF2HTNgT9PMZYtvi4W66f4N8qLs7HsiEyqaMTtVmk+V5ndcs7sX0qdK86nS7POrU6X5VGn+UOudKs3bY9Wp0hyG7w9w0/pUaY4q8lRpPlWaT5XmU6X5VGne9hE5KG7T+lRpni+yP/iSfao0RwR4qjT7Pk6V5lOl2Q/3VGne9HGqNJ8qzZvxnirNp0pzSManSvMxPf/HrDQDFUk9Ge4pNX/xbK5DgK/JNbPbg4JmBGz02KArngu48VwGs56mDQOT2yuhnJ+fO/jOnUIFuiQQngfQQF3MuougLHT70NlBrLusJf3qli5w2BjOiy8EcU64VRG3aj5vJAjcE0pYGRleLtrc1suVexvzAejiUASdexVxCWnpFEUvbnGsdNaB2d/UGarjeLFWKXz9SgpgCLuob5m8NlHXOXAGHkEMYAaRr67iUWCmqN91b9l4JZl5EJu/hCDwSgenLfAWBW/vHzj2tlPXDW2MQ5fhnQITtNzSYKws/kjd5QO7yy3VFaDv3ot6ZfeFw962MFa6ggzG9vZR89ctmExcBaq2uvUZxraC09nUeStYb1dn51d3rqginVMJik4zKSbNp9JskkmAHVr5tmYn94r2b6u9JphPZ5hMhmeEC64mJDK9cILpEILXt9ReE04zMJnosRSf5FI9LsOHE86E0XrLdtpHGvjVve8CW3EsINh7chCA5+3HXJwbO9ex+aYz9j4sdGqX4y72lFj1Xf9OEgs5iw0+Nspyt8kJJWvj/hX75DJb5DJR5NLh5bJb5LJR5Po2lfTvkGHHjMBGkYsIhUR6l7t4m/d/bPhZQxcGN7MfN/M94mb34/7ocL8F9xW5WMDcNTCw4DmNqy8r8vZ+001vBdR69puNpLHvrSL4/GXFqSLZT63VPBJvJyJFUp1diBw1bM2QuXjoLhI/MF3lB8ZAkkFPkiU8SB5fFedflsrZSgD5GY4sya1wbRpiZ3LyK0TeLqsGHOHJg9dnzpB09/G/Gwye+FU2/7gmLijnVSgBxbDtp9cx99yxwTABMNkVzYnP10QqFU/+snVoCGyH65hNEwlYQbUUdwPYzeDYALjHuaut4vHcbyVpch71+YwTKZykuN+9TYC2YduLfQEpEYA0r4ahVUitipcQrjq+lw6uvH9rkQ3q3lxYlt8QsXhlz86XEVHuq3Aiv6rjcIn0fok738pxuERmv8Sd70M5XCK7Q6LvVS9OwFsx6eefrrxXwi1ffvf5p/8DUEsBAh4DCgAAAAAAcpoiWAAAAAAAAAAAAAAAAAYAGAAAAAAAAAAQAP9BAAAAAGFzc2V0L1VUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAHKaIlgAAAAAAAAAAAAAAAAOABgAAAAAAAAAAAD/gUAAAABhc3NldC8uZ2l0a2VlcFVUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAHKaIlgW1cMYcwAAAKUAAAALABgAAAAAAAEAAAD/gYgAAABjb25maWcueWFtbFVUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAHKaIlgAAAAAAAAAAAAAAAASABgAAAAAAAAAEAD/QUABAABkb2NrZXJfc3NoX2NvbmZpZy9VVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYx5PlWlkAAAByAAAAHQAYAAAAAAABAAAA/4GMAQAAZG9ja2VyX3NzaF9jb25maWcvY29uZmlnLnlhbWxVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABymiJYvhcfKCQAAAAkAAAAHgAYAAAAAAABAAAA/4E8AgAAZG9ja2VyX3NzaF9jb25maWcvaW52ZW50b3J5LmoyVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWPiB7tKqAQAAXAUAABoAGAAAAAAAAQAAAP+BuAIAAGRvY2tlcl9zc2hfY29uZmlnL21haW4ueW1sVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWMcUtKxHAAAAUgAAABwAGAAAAAAAAQAAAP+BtgQAAGRvY2tlcl9zc2hfY29uZmlnL3NzaF9rZXkuajJVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJY0AxvkNwMAADhnQAACgAYAAAAAAABAAAA/4FTBQAAZG9tbC5lY29yZVVUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAHKaIlgAAAAAAAAAAAAAAAAOABgAAAAAAAAAEAD/QXMSAABFbGFzdGljU2VhcmNoL1VUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAHKaIlgvSj63agAAAJUAAAAZABgAAAAAAAEAAAD/gbsSAABFbGFzdGljU2VhcmNoL2NvbmZpZy55YW1sVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWKw0eqrWAAAAtQEAAB8AGAAAAAAAAQAAAP+BeBMAAEVsYXN0aWNTZWFyY2gvZWxhc3RpY3NlYXJjaC55bWxVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYVezrlrAAAACMAQAAGgAYAAAAAAABAAAA/4GnFAAARWxhc3RpY1NlYXJjaC9pbnZlbnRvcnkuajJVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYI4WOQ5EAAADqAAAAFgAYAAAAAAABAAAA/4GrFQAARWxhc3RpY1NlYXJjaC9tYWluLnltbFVUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAHKaIli5fWUrPQAAAD0AAAAYABgAAAAAAAEAAAD/gYwWAABFbGFzdGljU2VhcmNoL3NzaF9rZXkuajJVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYfCPotC0CAAA0BgAAGwAYAAAAAAABAAAA/4EbFwAAZ2FpYXhfc2VsZl9kZXNjcmlwdGlvbi55YW1sVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAcpoiWAAAAAAAAAAAAAAAAAYAGAAAAAAAAAAQAP9BnRkAAG15c3FsL1VUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAHKaIlh+e2KpaAAAAIsAAAARABgAAAAAAAEAAAD/gd0ZAABteXNxbC9jb25maWcueWFtbFVUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAHKaIlhFRW1VpwAAAGMBAAASABgAAAAAAAEAAAD/gZAaAABteXNxbC9pbnZlbnRvcnkuajJVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYP1ZEerMCAACfBwAADgAYAAAAAAABAAAA/4GDGwAAbXlzcWwvbWFpbi55bWxVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABymiJYhQ+qlzsAAAA7AAAAEAAYAAAAAAABAAAA/4F+HgAAbXlzcWwvc3NoX2tleS5qMlVUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAHKaIlgAAAAAAAAAAAAAAAAXABgAAAAAAAAAEAD/QQMfAABwZXJmb3JtYW5jZV9tb25pdG9yaW5nL1VUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAHKaIlgr3fP1UAAAAH0AAAAbABgAAAAAAAEAAAD/gVQfAABwZXJmb3JtYW5jZV9tb25pdG9yaW5nLy5naXRVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABymiJY+pytbQQAAAAEAAAAIQAYAAAAAAABAAAA/4H5HwAAcGVyZm9ybWFuY2VfbW9uaXRvcmluZy8uZ2l0aWdub3JlVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWBvlo1+CAAAA4wAAAC8AGAAAAAAAAQAAAP+BWCAAAHBlcmZvcm1hbmNlX21vbml0b3JpbmcvYW5zaWJsZV9yZXF1aXJlbWVudHMueW1sVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWGkdXaKZAAAA6AAAACIAGAAAAAAAAQAAAP+BQyEAAHBlcmZvcm1hbmNlX21vbml0b3JpbmcvY29uZmlnLnlhbWxVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYAnCVt6YAAABrAQAAIwAYAAAAAAABAAAA/4E4IgAAcGVyZm9ybWFuY2VfbW9uaXRvcmluZy9pbnZlbnRvcnkuajJVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABymiJYOPtsLhIAAAASAAAAJAAYAAAAAAABAAAA/4E7IwAAcGVyZm9ybWFuY2VfbW9uaXRvcmluZy9pbnZlbnRvcnkudHh0VVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWK9JzIRzDwAAWywAAB4AGAAAAAAAAQAAAP+BqyMAAHBlcmZvcm1hbmNlX21vbml0b3JpbmcvTElDRU5TRVVUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAHKaIliaM4M1tgEAAGIEAAAfABgAAAAAAAEAAAD/gXYzAABwZXJmb3JtYW5jZV9tb25pdG9yaW5nL21haW4ueW1sVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWNhrDLPeAgAAjgUAACAAGAAAAAAAAQAAAP+BhTUAAHBlcmZvcm1hbmNlX21vbml0b3JpbmcvUkVBRE1FLm1kVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWLoh2rRKAAAAbAAAACEAGAAAAAAAAQAAAP+BvTgAAHBlcmZvcm1hbmNlX21vbml0b3Jpbmcvc3NoX2tleS5qMlVUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAHKaIlgAAAAAAAAAAAAAAAAcABgAAAAAAAAAEAD/QWI5AABwZXJmb3JtYW5jZV9tb25pdG9yaW5nL3ZhcnMvVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWJmRip11AQAA5QMAACUAGAAAAAAAAQAAAP+BuDkAAHBlcmZvcm1hbmNlX21vbml0b3JpbmcvdmFycy9tYWluLnlhbWxVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABymiJYAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA/0GMOwAAc2VjdXJpdHlfbW9uaXRvcmluZy9VVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYmZ5IVVEAAAB6AAAAGAAYAAAAAAABAAAA/4HaOwAAc2VjdXJpdHlfbW9uaXRvcmluZy8uZ2l0VVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAcpoiWLvKhoEIAAAACAAAAB4AGAAAAAAAAQAAAP+BfTwAAHNlY3VyaXR5X21vbml0b3JpbmcvLmdpdGlnbm9yZVVUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAHKaIliMKY+S4gAAAMYBAAApABgAAAAAAAEAAAD/gd08AABzZWN1cml0eV9tb25pdG9yaW5nL2J1aWxkLXdhenVoLWFnZW50LnltbFVUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAHKaIlgAAAAAAAAAAAAAAAAbABgAAAAAAAAAEAD/QSI+AABzZWN1cml0eV9tb25pdG9yaW5nL2NvbmZpZy9VVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYGv12GakGAADQFgAAKAAYAAAAAAABAAAA/4F3PgAAc2VjdXJpdHlfbW9uaXRvcmluZy9jb25maWcvb3NzZWMuY29uZi5qMlVUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAHKaIljTRBSIkgAAAMsAAAAfABgAAAAAAAEAAAD/gYJFAABzZWN1cml0eV9tb25pdG9yaW5nL2NvbmZpZy55YW1sVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWEmLaeezBAAAXBEAACoAGAAAAAAAAQAAAP+BbUYAAHNlY3VyaXR5X21vbml0b3JpbmcvZGVwbG95LXdhenVoLWFnZW50LnltbFVUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAHKaIljiWjtQhAEAAHEDAAAxABgAAAAAAAEAAAD/gYRLAABzZWN1cml0eV9tb25pdG9yaW5nL2RlcGxveS13YXp1aC1kb2NrZXItYWdlbnQueW1sVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAcpoiWAAAAAAAAAAAAAAAACIAGAAAAAAAAAAQAP9Bc00AAHNlY3VyaXR5X21vbml0b3JpbmcvZG9ja2VyLWRlcGxveS9VVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYgb6/JW4BAACmAgAALAAYAAAAAAABAAAA/4HPTQAAc2VjdXJpdHlfbW9uaXRvcmluZy9kb2NrZXItZGVwbG95L0RvY2tlcmZpbGVVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYa00JCOEAAACIAQAALwAYAAAAAAABAAAA/4GjTwAAc2VjdXJpdHlfbW9uaXRvcmluZy9kb2NrZXItZGVwbG95L2VudHJ5cG9pbnQuc2hVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYpVYhk5oGAADSFQAALAAYAAAAAAABAAAA/4HtUAAAc2VjdXJpdHlfbW9uaXRvcmluZy9kb2NrZXItZGVwbG95L29zc2VjLmNvbmZVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYwBQ2bagAAABlAQAAIAAYAAAAAAABAAAA/4HtVwAAc2VjdXJpdHlfbW9uaXRvcmluZy9pbnZlbnRvcnkuajJVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYXCqsxkUAAABoAAAAIQAYAAAAAAABAAAA/4HvWAAAc2VjdXJpdHlfbW9uaXRvcmluZy9pbnZlbnRvcnkudHh0VVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAcpoiWPgDM68uAAAALgAAABwAGAAAAAAAAQAAAP+Bj1kAAHNlY3VyaXR5X21vbml0b3JpbmcvbWFpbi55bWxVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYzat6lxcFAAClDQAAHQAYAAAAAAABAAAA/4ETWgAAc2VjdXJpdHlfbW9uaXRvcmluZy9SRUFETUUubWRVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABymiJYhQ+qlzsAAAA7AAAAHgAYAAAAAAABAAAA/4GBXwAAc2VjdXJpdHlfbW9uaXRvcmluZy9zc2hfa2V5LmoyVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWAD02MMhAQAAZgIAABwAGAAAAAAAAQAAAP+BFGAAAHNlY3VyaXR5X21vbml0b3JpbmcvdmFycy55bWxVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABymiJYAAAAAAAAAAAAAAAAGAAYAAAAAAAAABAA/0GLYQAAc2VsZl9oZWFsaW5nX21vbml0b3JpbmcvVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWH57YqloAAAAiwAAACMAGAAAAAAAAQAAAP+B3WEAAHNlbGZfaGVhbGluZ19tb25pdG9yaW5nL2NvbmZpZy55YW1sVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWN0A4P+rAAAAbQEAACQAGAAAAAAAAQAAAP+BomIAAHNlbGZfaGVhbGluZ19tb25pdG9yaW5nL2ludmVudG9yeS5qMlVUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAHKaIlgTmxAcLwAAADEAAAAgABgAAAAAAAEAAAD/gatjAABzZWxmX2hlYWxpbmdfbW9uaXRvcmluZy9tYWluLnltbFVUBQADyGGUZXV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAHKaIli6Idq0SgAAAGwAAAAiABgAAAAAAAEAAAD/gTRkAABzZWxmX2hlYWxpbmdfbW9uaXRvcmluZy9zc2hfa2V5LmoyVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAcpoiWAAAAAAAAAAAAAAAAAoAGAAAAAAAAAAQAP9B2mQAAHRlcnJhZm9ybS9VVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYT6uunzAAAABNAAAAFAAYAAAAAAABAAAA/4EeZQAAdGVycmFmb3JtLy5naXRpZ25vcmVVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYZ5v98YUAAADLAAAAFQAYAAAAAAABAAAA/4GcZQAAdGVycmFmb3JtL2NvbmZpZy55YW1sVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWO9+2BKgBwAAgxsAABEAGAAAAAAAAQAAAP+BcGYAAHRlcnJhZm9ybS9tYWluLnRmVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWO9+2BKgBwAAgxsAABYAGAAAAAAAAQAAAP+BW24AAHRlcnJhZm9ybS9tYWluLnRmLm9yaWdVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYB3nOjYARAAAxLQAAFQAYAAAAAAABAAAA/4FLdgAAdGVycmFmb3JtL21haW4udGYucmVqVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWL3wCPV+AAAAygAAABMAGAAAAAAAAQAAAP+BGogAAHRlcnJhZm9ybS9vdXRwdXQudGZVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABymiJYYwnlTTMQAADrPQAACQAYAAAAAAABAAAA/4HliAAAdGVzdC5kb21sVVQFAAPIYZRldXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAcpoiWPLGaX9ZEAAAOG8AAAoAGAAAAAAAAQAAAP+BW5kAAHRlc3QuZG9tbHhVVAUAA8hhlGV1eAsAAQToAwAABOgDAABQSwUGAAAAAEMAQwBbGQAA+KkAAAAA\" } }" diff --git a/git/sh-backend/src/test/resources/deployment-tests/notify-posidonia.ct.sh b/git/sh-backend/src/test/resources/deployment-tests/notify-posidonia.ct.sh new file mode 100644 index 0000000000000000000000000000000000000000..e2220104c31b625d2871b1f7eee2a7e4c3467c5b --- /dev/null +++ b/git/sh-backend/src/test/resources/deployment-tests/notify-posidonia.ct.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# This script is used to test the webhook functionality of Grafana. +# iterate json files in the same folder as this script + +time(curl -X POST -H "Content-Type: application/json" -d "{ \"deploymentId\": \"posidonia.ct\", \"error\": \"{\\\"labels\\\":{\\\"doml_element_name\\\":\\\"mysql_vm\\\",\\\"severity\\\":\\\"critical\\\",\\\"deployment_id\\\":\\\"posidonia.ct\\\",\\\"host\\\":\\\"4010ad3e6ef4\\\",\\\"value\\\":2.4787775891347517}}\", \"eventType\": { \"code\": \"posidonia.ct-memory_stress\" }, \"origin\": \"pm-grafana\" }" http://192.168.56.1:8081/api/self-healing/notify) + + + diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/request-11138466349188940497.json b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-11138466349188940497.json new file mode 100644 index 0000000000000000000000000000000000000000..ca9552412641550abe616dc4900164db851ba759 --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-11138466349188940497.json @@ -0,0 +1,267 @@ +{ + "receiver": "piacereWebhookDev", + "status": "firing", + "alerts": [ + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "avprdu90", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Availability Prediction Deployment under 90", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view", + "fingerprint": "51523ecf671e54e9", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Davprdu90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "avprdeu90", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Availability Prediction Doml Element under 90", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view", + "fingerprint": "6396fd2ac13746c1", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Davprdeu90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "cuprdo90", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "CPU Usage Prediction Deployment over 90", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/cpu-usage-prediction-deployment-over-90/view", + "fingerprint": "932e414cbf1ed7e9", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dcuprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DCPU+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "cuprdeo95", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "CPU Usage Prediction Doml Element over 95", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/cpu-usage-prediction-doml-element-over-95/view", + "fingerprint": "5ae8f06204aafeb8", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dcuprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DCPU+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "duprdo90", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Disk Usage Prediction Deployment over 90", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/disk-usage-prediction-deployment-over-90/view", + "fingerprint": "cd95b3f07e9140b2", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dduprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DDisk+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "duprdeo95", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Disk Usage Prediction Doml Element over 95", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/disk-usage-prediction-doml-element-over-95/view", + "fingerprint": "dd940175e442affd", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dduprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DDisk+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "muprdo90", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Memory Usage Prediction Deployment over 90", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/memory-usage-prediction-deployment-over-90/view", + "fingerprint": "5a1c3a6b50853009", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dmuprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DMemory+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "muprdeo95", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Memory Usage Prediction Doml Element over 95", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/memory-usage-prediction-doml-element-over-95/view", + "fingerprint": "9d77e54a45aa4d94", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dmuprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DMemory+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "resolved", + "labels": { + "alertname": "test", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "deployment_id": "123e4567-e89b-12d3-a456-426614174000", + "doml_element_name": "mysql_vm", + "event_type": "123e4567-e89b-12d3-a456-426614174000-cpu_stress", + "grafana_folder": "piacere-123e4567-e89b-12d3-a456-426614174000", + "ref_id": "A", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n", + "grafana_state_reason": "Updated" + }, + "startsAt": "2023-12-13T15:33:40.007424001Z", + "endsAt": "2023-12-13T15:33:40.009715196Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/ed508646-8663-4338-8f9e-b50236009fbf/view", + "fingerprint": "0a0a65ee528cf72e", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3Dtest\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003ddeployment_id%3D123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003ddoml_element_name%3Dmysql_vm\u0026matcher\u003devent_type%3D123e4567-e89b-12d3-a456-426614174000-cpu_stress\u0026matcher\u003dgrafana_folder%3Dpiacere-123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003dref_id%3DA\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "resolved", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "deployment_id": "123e4567-e89b-12d3-a456-426614174000", + "doml_element_name": "mysql_vm", + "event_type": "123e4567-e89b-12d3-a456-426614174000-cpu_stress", + "grafana_folder": "piacere-123e4567-e89b-12d3-a456-426614174000", + "ref_id": "A", + "rulename": "test", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T15:32:00Z", + "endsAt": "2023-12-13T15:36:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/ed508646-8663-4338-8f9e-b50236009fbf/view", + "fingerprint": "08c4bd2ef80e4fa3", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003ddeployment_id%3D123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003ddoml_element_name%3Dmysql_vm\u0026matcher\u003devent_type%3D123e4567-e89b-12d3-a456-426614174000-cpu_stress\u0026matcher\u003dgrafana_folder%3Dpiacere-123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3Dtest\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + } + ], + "groupLabels": {}, + "commonLabels": { + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "ref_id": "A" + }, + "commonAnnotations": { + "alert_values": "alerts:\n" + }, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[FIRING:8, RESOLVED:2] (piacere PE8DBAC5E0F530B5C A)", + "state": "alerting", + "message": "**Firing**\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d avprdu90\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Availability Prediction Deployment under 90\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Davprdu90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d avprdeu90\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Availability Prediction Doml Element under 90\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Davprdeu90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d cuprdo90\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d CPU Usage Prediction Deployment over 90\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/cpu-usage-prediction-deployment-over-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dcuprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DCPU+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d cuprdeo95\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d CPU Usage Prediction Doml Element over 95\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/cpu-usage-prediction-doml-element-over-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dcuprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DCPU+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d duprdo90\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Disk Usage Prediction Deployment over 90\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/disk-usage-prediction-deployment-over-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dduprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DDisk+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d duprdeo95\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Disk Usage Prediction Doml Element over 95\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/disk-usage-prediction-doml-element-over-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dduprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DDisk+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d muprdo90\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Memory Usage Prediction Deployment over 90\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/memory-usage-prediction-deployment-over-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dmuprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DMemory+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d muprdeo95\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Memory Usage Prediction Doml Element over 95\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/memory-usage-prediction-doml-element-over-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dmuprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DMemory+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning\n\n\n**Resolved**\n\nValue: [no value]\nLabels:\n - alertname \u003d test\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - deployment_id \u003d 123e4567-e89b-12d3-a456-426614174000\n - doml_element_name \u003d mysql_vm\n - event_type \u003d 123e4567-e89b-12d3-a456-426614174000-cpu_stress\n - grafana_folder \u003d piacere-123e4567-e89b-12d3-a456-426614174000\n - ref_id \u003d A\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n\n - grafana_state_reason \u003d Updated\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/ed508646-8663-4338-8f9e-b50236009fbf/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3Dtest\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003ddeployment_id%3D123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003ddoml_element_name%3Dmysql_vm\u0026matcher\u003devent_type%3D123e4567-e89b-12d3-a456-426614174000-cpu_stress\u0026matcher\u003dgrafana_folder%3Dpiacere-123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003dref_id%3DA\u0026matcher\u003dseverity%3Dcritical\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - deployment_id \u003d 123e4567-e89b-12d3-a456-426614174000\n - doml_element_name \u003d mysql_vm\n - event_type \u003d 123e4567-e89b-12d3-a456-426614174000-cpu_stress\n - grafana_folder \u003d piacere-123e4567-e89b-12d3-a456-426614174000\n - ref_id \u003d A\n - rulename \u003d test\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/ed508646-8663-4338-8f9e-b50236009fbf/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003ddeployment_id%3D123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003ddoml_element_name%3Dmysql_vm\u0026matcher\u003devent_type%3D123e4567-e89b-12d3-a456-426614174000-cpu_stress\u0026matcher\u003dgrafana_folder%3Dpiacere-123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3Dtest\u0026matcher\u003dseverity%3Dcritical\n" +} \ No newline at end of file diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/request-11829728479550021108.json b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-11829728479550021108.json new file mode 100644 index 0000000000000000000000000000000000000000..f3814ebcb9f310018ea9b0b37b4f1673f286c348 --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-11829728479550021108.json @@ -0,0 +1,237 @@ +{ + "receiver": "piacereWebhookDev", + "status": "firing", + "alerts": [ + { + "status": "firing", + "labels": { + "alertname": "test", + "category": "piacere", + "deployment_id": "123e4567-e89b-12d3-a456-426614174000", + "doml_element_name": "pm-a-00-00", + "event_type": "123e4567-e89b-12d3-a456-426614174000-cpu_stress", + "grafana_folder": "piacere-123e4567-e89b-12d3-a456-426614174000", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n host: 4010ad3e6ef4\n value: 2.4787775891347517\n" + }, + "startsAt": "2023-12-13T15:40:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/ed508646-8663-4338-8f9e-b50236009fbf/view", + "fingerprint": "87404b1bd28f6838", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3Dtest\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddeployment_id%3D123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003ddoml_element_name%3Dpm-a-00-00\u0026matcher\u003devent_type%3D123e4567-e89b-12d3-a456-426614174000-cpu_stress\u0026matcher\u003dgrafana_folder%3Dpiacere-123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 2.4787775891347517 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027usage_user\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-00, host\u003d4010ad3e6ef4} value\u003d2.4787775891347517 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "avprdu90", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Availability Prediction Deployment under 90", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view", + "fingerprint": "51523ecf671e54e9", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Davprdu90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "avprdeu90", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Availability Prediction Doml Element under 90", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view", + "fingerprint": "6396fd2ac13746c1", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Davprdeu90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "cuprdo90", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "CPU Usage Prediction Deployment over 90", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/cpu-usage-prediction-deployment-over-90/view", + "fingerprint": "932e414cbf1ed7e9", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dcuprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DCPU+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "cuprdeo95", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "CPU Usage Prediction Doml Element over 95", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/cpu-usage-prediction-doml-element-over-95/view", + "fingerprint": "5ae8f06204aafeb8", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dcuprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DCPU+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "duprdo90", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Disk Usage Prediction Deployment over 90", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/disk-usage-prediction-deployment-over-90/view", + "fingerprint": "cd95b3f07e9140b2", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dduprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DDisk+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "duprdeo95", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Disk Usage Prediction Doml Element over 95", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/disk-usage-prediction-doml-element-over-95/view", + "fingerprint": "dd940175e442affd", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dduprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DDisk+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "muprdo90", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Memory Usage Prediction Deployment over 90", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/memory-usage-prediction-deployment-over-90/view", + "fingerprint": "5a1c3a6b50853009", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dmuprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DMemory+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "muprdeo95", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Memory Usage Prediction Doml Element over 95", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/memory-usage-prediction-doml-element-over-95/view", + "fingerprint": "9d77e54a45aa4d94", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dmuprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DMemory+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + } + ], + "groupLabels": {}, + "commonLabels": { + "category": "piacere" + }, + "commonAnnotations": {}, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[FIRING:9] (piacere)", + "state": "alerting", + "message": "**Firing**\n\nValue: B0\u003d2.4787775891347517\nLabels:\n - alertname \u003d test\n - category \u003d piacere\n - deployment_id \u003d 123e4567-e89b-12d3-a456-426614174000\n - doml_element_name \u003d pm-a-00-00\n - event_type \u003d 123e4567-e89b-12d3-a456-426614174000-cpu_stress\n - grafana_folder \u003d piacere-123e4567-e89b-12d3-a456-426614174000\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n host: 4010ad3e6ef4\n value: 2.4787775891347517\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/ed508646-8663-4338-8f9e-b50236009fbf/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3Dtest\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddeployment_id%3D123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003ddoml_element_name%3Dpm-a-00-00\u0026matcher\u003devent_type%3D123e4567-e89b-12d3-a456-426614174000-cpu_stress\u0026matcher\u003dgrafana_folder%3Dpiacere-123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003dseverity%3Dcritical\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d avprdu90\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Availability Prediction Deployment under 90\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Davprdu90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d avprdeu90\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Availability Prediction Doml Element under 90\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Davprdeu90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d cuprdo90\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d CPU Usage Prediction Deployment over 90\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/cpu-usage-prediction-deployment-over-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dcuprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DCPU+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d cuprdeo95\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d CPU Usage Prediction Doml Element over 95\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/cpu-usage-prediction-doml-element-over-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dcuprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DCPU+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d duprdo90\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Disk Usage Prediction Deployment over 90\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/disk-usage-prediction-deployment-over-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dduprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DDisk+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d duprdeo95\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Disk Usage Prediction Doml Element over 95\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/disk-usage-prediction-doml-element-over-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dduprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DDisk+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d muprdo90\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Memory Usage Prediction Deployment over 90\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/memory-usage-prediction-deployment-over-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dmuprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DMemory+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d muprdeo95\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Memory Usage Prediction Doml Element over 95\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/memory-usage-prediction-doml-element-over-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dmuprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DMemory+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning\n" +} \ No newline at end of file diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/request-12154151990300747348.json b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-12154151990300747348.json new file mode 100644 index 0000000000000000000000000000000000000000..72a840972707f408721b3aa0553811e9ceeafb07 --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-12154151990300747348.json @@ -0,0 +1,136 @@ +{ + "receiver": "piacereWebhookDev", + "status": "firing", + "alerts": [ + { + "status": "resolved", + "labels": { + "alertname": "Availability Deployment under 90", + "event_type": "avdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-10T23:25:00Z", + "endsAt": "2023-12-10T23:36:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view", + "fingerprint": "0bf7f2b8c29507f3", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "resolved", + "labels": { + "alertname": "Availability Doml Element under 90", + "event_type": "avdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-10T23:25:00Z", + "endsAt": "2023-12-10T23:36:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view", + "fingerprint": "b95789e343cae5cc", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "resolved", + "labels": { + "alertname": "Availability Doml Element under 95", + "event_type": "avdeu95", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 100\n" + }, + "startsAt": "2023-12-10T23:25:00Z", + "endsAt": "2023-12-10T23:36:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view", + "fingerprint": "edfbb61968355179", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 100, + "B1": 100, + "B2": 100 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-00} value\u003d100 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d100 ], [ var\u003d\u0027B2\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d100 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Prediction Deployment under 90", + "event_type": "avprdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 65.83500000000001\n" + }, + "startsAt": "2023-12-10T23:27:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view", + "fingerprint": "43e9cbe8e24811e9", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 65.83500000000001 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000} value\u003d65.83500000000001 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Prediction Doml Element under 90", + "event_type": "avprdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 31.67\n" + }, + "startsAt": "2023-12-10T23:26:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view", + "fingerprint": "f3822f4fc40bfe30", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 31.67 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d31.67 ]" + } + ], + "groupLabels": {}, + "commonLabels": { + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms" + }, + "commonAnnotations": {}, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[FIRING:2, RESOLVED:3] (piacere Piacere Generic Alarms)", + "state": "alerting", + "message": "**Firing**\n\nValue: B0\u003d65.83500000000001\nLabels:\n - alertname \u003d Availability Prediction Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 65.83500000000001\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: B0\u003d31.67\nLabels:\n - alertname \u003d Availability Prediction Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 31.67\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\n\n**Resolved**\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d100, B1\u003d100, B2\u003d100\nLabels:\n - alertname \u003d Availability Doml Element under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 100\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n" +} \ No newline at end of file diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/request-14399135176979635469.json b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-14399135176979635469.json new file mode 100644 index 0000000000000000000000000000000000000000..79a9915a782525c282bcf0ca4fd2a074dbfcc4f4 --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-14399135176979635469.json @@ -0,0 +1,161 @@ +{ + "receiver": "piacereWebhookDev", + "status": "firing", + "alerts": [ + { + "status": "firing", + "labels": { + "alertname": "Availability Deployment under 90", + "event_type": "avdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 59.375\n" + }, + "startsAt": "2023-12-11T00:02:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view", + "fingerprint": "0bf7f2b8c29507f3", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 59.375 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001} value\u003d59.375 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Deployment under 95", + "event_type": "avdu95", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 59.375\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 100\n" + }, + "startsAt": "2023-12-11T00:02:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-95/view", + "fingerprint": "a032c4ce778097c4", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 59.375, + "B1": 100 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001} value\u003d59.375 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000} value\u003d100 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Doml Element under 90", + "event_type": "avdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 59.375\n" + }, + "startsAt": "2023-12-11T00:02:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view", + "fingerprint": "b95789e343cae5cc", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 59.375 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d59.375 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Doml Element under 95", + "event_type": "avdeu95", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 59.375\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n" + }, + "startsAt": "2023-12-11T00:02:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view", + "fingerprint": "edfbb61968355179", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 59.375, + "B1": 100, + "B2": 100 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d59.375 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-00} value\u003d100 ], [ var\u003d\u0027B2\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d100 ]" + }, + { + "status": "resolved", + "labels": { + "alertname": "Availability Prediction Deployment under 90", + "event_type": "avprdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-10T23:27:00Z", + "endsAt": "2023-12-11T00:02:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view", + "fingerprint": "43e9cbe8e24811e9", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "resolved", + "labels": { + "alertname": "Availability Prediction Doml Element under 90", + "event_type": "avprdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-10T23:26:00Z", + "endsAt": "2023-12-11T00:02:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view", + "fingerprint": "f3822f4fc40bfe30", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + } + ], + "groupLabels": {}, + "commonLabels": { + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms" + }, + "commonAnnotations": {}, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[FIRING:4, RESOLVED:2] (piacere Piacere Generic Alarms)", + "state": "alerting", + "message": "**Firing**\n\nValue: B0\u003d59.375\nLabels:\n - alertname \u003d Availability Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 59.375\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d59.375, B1\u003d100\nLabels:\n - alertname \u003d Availability Deployment under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 59.375\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 100\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: B0\u003d59.375\nLabels:\n - alertname \u003d Availability Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 59.375\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d59.375, B1\u003d100, B2\u003d100\nLabels:\n - alertname \u003d Availability Doml Element under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 59.375\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\n\n**Resolved**\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Prediction Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Prediction Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n" +} \ No newline at end of file diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/request-1575998898893037549.json b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-1575998898893037549.json new file mode 100644 index 0000000000000000000000000000000000000000..0f930ea43aece867841712c7d7ea8b8628f03343 --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-1575998898893037549.json @@ -0,0 +1,163 @@ +{ + "receiver": "piacereWebhookDev", + "status": "firing", + "alerts": [ + { + "status": "resolved", + "labels": { + "alertname": "Availability Deployment under 90", + "event_type": "avdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-10T23:43:00Z", + "endsAt": "2023-12-10T23:45:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view", + "fingerprint": "0bf7f2b8c29507f3", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Deployment under 95", + "event_type": "avdu95", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 93.75\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 93.75\n" + }, + "startsAt": "2023-12-10T23:43:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-95/view", + "fingerprint": "a032c4ce778097c4", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 93.75, + "B1": 100, + "B2": 93.75 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001} value\u003d93.75 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000} value\u003d100 ], [ var\u003d\u0027B2\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001} value\u003d93.75 ]" + }, + { + "status": "resolved", + "labels": { + "alertname": "Availability Doml Element under 90", + "event_type": "avdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-10T23:43:00Z", + "endsAt": "2023-12-10T23:45:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view", + "fingerprint": "b95789e343cae5cc", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Doml Element under 95", + "event_type": "avdeu95", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 93.75\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 93.75\n" + }, + "startsAt": "2023-12-10T23:43:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view", + "fingerprint": "edfbb61968355179", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 93.75, + "B1": 100, + "B2": 100, + "B3": 93.75 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d93.75 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-00} value\u003d100 ], [ var\u003d\u0027B2\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d100 ], [ var\u003d\u0027B3\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d93.75 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Prediction Deployment under 90", + "event_type": "avprdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 70.83500000000001\n" + }, + "startsAt": "2023-12-10T23:27:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view", + "fingerprint": "43e9cbe8e24811e9", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 70.83500000000001 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000} value\u003d70.83500000000001 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Prediction Doml Element under 90", + "event_type": "avprdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 41.67\n" + }, + "startsAt": "2023-12-10T23:26:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view", + "fingerprint": "f3822f4fc40bfe30", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 41.67 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d41.67 ]" + } + ], + "groupLabels": {}, + "commonLabels": { + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms" + }, + "commonAnnotations": {}, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[FIRING:4, RESOLVED:2] (piacere Piacere Generic Alarms)", + "state": "alerting", + "message": "**Firing**\n\nValue: B0\u003d93.75, B1\u003d100, B2\u003d93.75\nLabels:\n - alertname \u003d Availability Deployment under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 93.75\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 93.75\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: B0\u003d93.75, B1\u003d100, B2\u003d100, B3\u003d93.75\nLabels:\n - alertname \u003d Availability Doml Element under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 93.75\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 93.75\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: B0\u003d70.83500000000001\nLabels:\n - alertname \u003d Availability Prediction Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 70.83500000000001\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: B0\u003d41.67\nLabels:\n - alertname \u003d Availability Prediction Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 41.67\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\n\n**Resolved**\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n" +} \ No newline at end of file diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/request-2492530301635325202.json b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-2492530301635325202.json new file mode 100644 index 0000000000000000000000000000000000000000..2f43b98267feeb082e7af67ffde0f016a29cc3b5 --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-2492530301635325202.json @@ -0,0 +1,144 @@ +{ + "receiver": "piacereWebhookDev", + "status": "firing", + "alerts": [ + { + "status": "firing", + "labels": { + "alertname": "Availability Deployment under 90", + "event_type": "avdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 50\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 50\n" + }, + "startsAt": "2023-12-10T22:47:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view", + "fingerprint": "0bf7f2b8c29507f3", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 50, + "B1": 50 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000} value\u003d50 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001} value\u003d50 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Doml Element under 90", + "event_type": "avdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 0\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 50\n" + }, + "startsAt": "2023-12-10T22:46:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view", + "fingerprint": "b95789e343cae5cc", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 0, + "B1": 50 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d0 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d50 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Doml Element under 95", + "event_type": "avdeu95", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 0\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 50\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n" + }, + "startsAt": "2023-12-10T22:46:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view", + "fingerprint": "edfbb61968355179", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 0, + "B1": 50, + "B2": 100 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d0 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d50 ], [ var\u003d\u0027B2\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-00} value\u003d100 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Prediction Deployment under 90", + "event_type": "avprdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 70\n" + }, + "startsAt": "2023-12-10T22:33:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view", + "fingerprint": "43e9cbe8e24811e9", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 70 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000} value\u003d70 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Prediction Doml Element under 90", + "event_type": "avprdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 40\n" + }, + "startsAt": "2023-12-10T22:33:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view", + "fingerprint": "f3822f4fc40bfe30", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 40 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d40 ]" + } + ], + "groupLabels": {}, + "commonLabels": { + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms" + }, + "commonAnnotations": {}, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[FIRING:5] (piacere Piacere Generic Alarms)", + "state": "alerting", + "message": "**Firing**\n\nValue: B0\u003d50, B1\u003d50\nLabels:\n - alertname \u003d Availability Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 50\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 50\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d0, B1\u003d50\nLabels:\n - alertname \u003d Availability Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 0\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 50\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d0, B1\u003d50, B2\u003d100\nLabels:\n - alertname \u003d Availability Doml Element under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 0\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 50\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: B0\u003d70\nLabels:\n - alertname \u003d Availability Prediction Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 70\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: B0\u003d40\nLabels:\n - alertname \u003d Availability Prediction Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 40\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n" +} \ No newline at end of file diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/request-3883069210173856520.json b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-3883069210173856520.json new file mode 100644 index 0000000000000000000000000000000000000000..c2a4885955826a9bfe30291aec3fd243500596c1 --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-3883069210173856520.json @@ -0,0 +1,120 @@ +{ + "receiver": "piacereWebhookDev", + "status": "firing", + "alerts": [ + { + "status": "resolved", + "labels": { + "alertname": "Availability Deployment under 95", + "event_type": "avdu95", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 100\n" + }, + "startsAt": "2023-12-10T23:43:00Z", + "endsAt": "2023-12-10T23:46:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-95/view", + "fingerprint": "a032c4ce778097c4", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 100, + "B1": 100 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000} value\u003d100 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001} value\u003d100 ]" + }, + { + "status": "resolved", + "labels": { + "alertname": "Availability Doml Element under 95", + "event_type": "avdeu95", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 100\n" + }, + "startsAt": "2023-12-10T23:43:00Z", + "endsAt": "2023-12-10T23:46:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view", + "fingerprint": "edfbb61968355179", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 100, + "B1": 100, + "B2": 100 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-00} value\u003d100 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d100 ], [ var\u003d\u0027B2\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d100 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Prediction Deployment under 90", + "event_type": "avprdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 88.33500000000001\n" + }, + "startsAt": "2023-12-10T23:27:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view", + "fingerprint": "43e9cbe8e24811e9", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 88.33500000000001 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000} value\u003d88.33500000000001 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Prediction Doml Element under 90", + "event_type": "avprdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 76.67\n" + }, + "startsAt": "2023-12-10T23:26:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view", + "fingerprint": "f3822f4fc40bfe30", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 76.67 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d76.67 ]" + } + ], + "groupLabels": {}, + "commonLabels": { + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "commonAnnotations": {}, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[FIRING:2, RESOLVED:2] (piacere Piacere Generic Alarms warning)", + "state": "alerting", + "message": "**Firing**\n\nValue: B0\u003d88.33500000000001\nLabels:\n - alertname \u003d Availability Prediction Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 88.33500000000001\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: B0\u003d76.67\nLabels:\n - alertname \u003d Availability Prediction Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 76.67\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\n\n**Resolved**\n\nValue: B0\u003d100, B1\u003d100\nLabels:\n - alertname \u003d Availability Deployment under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 100\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: B0\u003d100, B1\u003d100, B2\u003d100\nLabels:\n - alertname \u003d Availability Doml Element under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 100\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n" +} \ No newline at end of file diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/request-390049279173201538.json b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-390049279173201538.json new file mode 100644 index 0000000000000000000000000000000000000000..a566d74e2fe64bd7e70ed97c81623a397d0fedde --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-390049279173201538.json @@ -0,0 +1,136 @@ +{ + "receiver": "piacereWebhookDev", + "status": "firing", + "alerts": [ + { + "status": "resolved", + "labels": { + "alertname": "Availability Deployment under 90", + "event_type": "avdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-10T23:53:00Z", + "endsAt": "2023-12-10T23:54:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view", + "fingerprint": "0bf7f2b8c29507f3", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "resolved", + "labels": { + "alertname": "Availability Doml Element under 90", + "event_type": "avdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-10T23:53:00Z", + "endsAt": "2023-12-10T23:54:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view", + "fingerprint": "b95789e343cae5cc", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "resolved", + "labels": { + "alertname": "Availability Doml Element under 95", + "event_type": "avdeu95", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 100\n" + }, + "startsAt": "2023-12-10T23:53:00Z", + "endsAt": "2023-12-10T23:54:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view", + "fingerprint": "edfbb61968355179", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 100, + "B1": 100, + "B2": 100 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-00} value\u003d100 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d100 ], [ var\u003d\u0027B2\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d100 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Prediction Deployment under 90", + "event_type": "avprdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 80.83500000000001\n" + }, + "startsAt": "2023-12-10T23:27:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view", + "fingerprint": "43e9cbe8e24811e9", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 80.83500000000001 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000} value\u003d80.83500000000001 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Prediction Doml Element under 90", + "event_type": "avprdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 61.67\n" + }, + "startsAt": "2023-12-10T23:26:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view", + "fingerprint": "f3822f4fc40bfe30", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 61.67 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d61.67 ]" + } + ], + "groupLabels": {}, + "commonLabels": { + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms" + }, + "commonAnnotations": {}, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[FIRING:2, RESOLVED:3] (piacere Piacere Generic Alarms)", + "state": "alerting", + "message": "**Firing**\n\nValue: B0\u003d80.83500000000001\nLabels:\n - alertname \u003d Availability Prediction Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 80.83500000000001\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: B0\u003d61.67\nLabels:\n - alertname \u003d Availability Prediction Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 61.67\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\n\n**Resolved**\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d100, B1\u003d100, B2\u003d100\nLabels:\n - alertname \u003d Availability Doml Element under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 100\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n" +} \ No newline at end of file diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/request-5283684585082692408.json b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-5283684585082692408.json new file mode 100644 index 0000000000000000000000000000000000000000..ac995965a307edce039969518e72b3aa14d03b8e --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-5283684585082692408.json @@ -0,0 +1,113 @@ +{ + "receiver": "piacereWebhookDev", + "status": "resolved", + "alerts": [ + { + "status": "resolved", + "labels": { + "alertname": "Availability Deployment under 90", + "event_type": "avdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-11T00:02:00Z", + "endsAt": "2023-12-11T00:07:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view", + "fingerprint": "0bf7f2b8c29507f3", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "resolved", + "labels": { + "alertname": "Availability Deployment under 95", + "event_type": "avdu95", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 96.875\n" + }, + "startsAt": "2023-12-11T00:02:00Z", + "endsAt": "2023-12-11T00:07:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-95/view", + "fingerprint": "a032c4ce778097c4", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 100, + "B1": 96.875 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000} value\u003d100 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001} value\u003d96.875 ]" + }, + { + "status": "resolved", + "labels": { + "alertname": "Availability Doml Element under 90", + "event_type": "avdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-11T00:02:00Z", + "endsAt": "2023-12-11T00:07:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view", + "fingerprint": "b95789e343cae5cc", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "resolved", + "labels": { + "alertname": "Availability Doml Element under 95", + "event_type": "avdeu95", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 96.875\n" + }, + "startsAt": "2023-12-11T00:02:00Z", + "endsAt": "2023-12-11T00:07:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view", + "fingerprint": "edfbb61968355179", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 100, + "B1": 100, + "B2": 96.875 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-00} value\u003d100 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d100 ], [ var\u003d\u0027B2\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d96.875 ]" + } + ], + "groupLabels": {}, + "commonLabels": { + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms" + }, + "commonAnnotations": {}, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[RESOLVED] (piacere Piacere Generic Alarms)", + "state": "ok", + "message": "**Resolved**\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d100, B1\u003d96.875\nLabels:\n - alertname \u003d Availability Deployment under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 96.875\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d100, B1\u003d100, B2\u003d96.875\nLabels:\n - alertname \u003d Availability Doml Element under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 96.875\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n" +} \ No newline at end of file diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/request-6668737338323360658.json b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-6668737338323360658.json new file mode 100644 index 0000000000000000000000000000000000000000..340c24131b6aacdbd8e750bedd39a40838f5e65e --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-6668737338323360658.json @@ -0,0 +1,242 @@ +{ + "receiver": "piacereWebhookDev", + "status": "firing", + "alerts": [ + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "avprdu90", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Availability Prediction Deployment under 90", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view", + "fingerprint": "51523ecf671e54e9", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Davprdu90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "avprdeu90", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Availability Prediction Doml Element under 90", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view", + "fingerprint": "6396fd2ac13746c1", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Davprdeu90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "cuprdo90", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "CPU Usage Prediction Deployment over 90", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/cpu-usage-prediction-deployment-over-90/view", + "fingerprint": "932e414cbf1ed7e9", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dcuprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DCPU+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "cuprdeo95", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "CPU Usage Prediction Doml Element over 95", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/cpu-usage-prediction-doml-element-over-95/view", + "fingerprint": "5ae8f06204aafeb8", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dcuprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DCPU+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "duprdo90", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Disk Usage Prediction Deployment over 90", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/disk-usage-prediction-deployment-over-90/view", + "fingerprint": "cd95b3f07e9140b2", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dduprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DDisk+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "duprdeo95", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Disk Usage Prediction Doml Element over 95", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/disk-usage-prediction-doml-element-over-95/view", + "fingerprint": "dd940175e442affd", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dduprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DDisk+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "muprdo90", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Memory Usage Prediction Deployment over 90", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/memory-usage-prediction-deployment-over-90/view", + "fingerprint": "5a1c3a6b50853009", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dmuprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DMemory+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "event_type": "muprdeo95", + "grafana_folder": "Piacere Generic Alarms", + "ref_id": "A", + "rulename": "Memory Usage Prediction Doml Element over 95", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T09:42:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/memory-usage-prediction-doml-element-over-95/view", + "fingerprint": "9d77e54a45aa4d94", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dmuprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DMemory+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "firing", + "labels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "deployment_id": "123e4567-e89b-12d3-a456-426614174000", + "doml_element_name": "mysql_vm", + "event_type": "123e4567-e89b-12d3-a456-426614174000-cpu_stress", + "grafana_folder": "piacere-123e4567-e89b-12d3-a456-426614174000", + "ref_id": "A", + "rulename": "test", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-13T15:32:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/ed508646-8663-4338-8f9e-b50236009fbf/view", + "fingerprint": "08c4bd2ef80e4fa3", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003ddeployment_id%3D123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003ddoml_element_name%3Dmysql_vm\u0026matcher\u003devent_type%3D123e4567-e89b-12d3-a456-426614174000-cpu_stress\u0026matcher\u003dgrafana_folder%3Dpiacere-123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3Dtest\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + } + ], + "groupLabels": {}, + "commonLabels": { + "alertname": "DatasourceNoData", + "category": "piacere", + "datasource_uid": "PE8DBAC5E0F530B5C", + "ref_id": "A" + }, + "commonAnnotations": { + "alert_values": "alerts:\n" + }, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[FIRING:9] (DatasourceNoData piacere PE8DBAC5E0F530B5C A)", + "state": "alerting", + "message": "**Firing**\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d avprdu90\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Availability Prediction Deployment under 90\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Davprdu90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d avprdeu90\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Availability Prediction Doml Element under 90\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Davprdeu90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d cuprdo90\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d CPU Usage Prediction Deployment over 90\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/cpu-usage-prediction-deployment-over-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dcuprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DCPU+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d cuprdeo95\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d CPU Usage Prediction Doml Element over 95\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/cpu-usage-prediction-doml-element-over-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dcuprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DCPU+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d duprdo90\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Disk Usage Prediction Deployment over 90\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/disk-usage-prediction-deployment-over-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dduprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DDisk+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d duprdeo95\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Disk Usage Prediction Doml Element over 95\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/disk-usage-prediction-doml-element-over-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dduprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DDisk+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d muprdo90\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Memory Usage Prediction Deployment over 90\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/memory-usage-prediction-deployment-over-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dmuprdo90\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DMemory+Usage+Prediction+Deployment+over+90\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - event_type \u003d muprdeo95\n - grafana_folder \u003d Piacere Generic Alarms\n - ref_id \u003d A\n - rulename \u003d Memory Usage Prediction Doml Element over 95\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/memory-usage-prediction-doml-element-over-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003devent_type%3Dmuprdeo95\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3DMemory+Usage+Prediction+Doml+Element+over+95\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d DatasourceNoData\n - category \u003d piacere\n - datasource_uid \u003d PE8DBAC5E0F530B5C\n - deployment_id \u003d 123e4567-e89b-12d3-a456-426614174000\n - doml_element_name \u003d mysql_vm\n - event_type \u003d 123e4567-e89b-12d3-a456-426614174000-cpu_stress\n - grafana_folder \u003d piacere-123e4567-e89b-12d3-a456-426614174000\n - ref_id \u003d A\n - rulename \u003d test\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/ed508646-8663-4338-8f9e-b50236009fbf/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DDatasourceNoData\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddatasource_uid%3DPE8DBAC5E0F530B5C\u0026matcher\u003ddeployment_id%3D123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003ddoml_element_name%3Dmysql_vm\u0026matcher\u003devent_type%3D123e4567-e89b-12d3-a456-426614174000-cpu_stress\u0026matcher\u003dgrafana_folder%3Dpiacere-123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003dref_id%3DA\u0026matcher\u003drulename%3Dtest\u0026matcher\u003dseverity%3Dcritical\n" +} \ No newline at end of file diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/request-6986708736059925984.json b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-6986708736059925984.json new file mode 100644 index 0000000000000000000000000000000000000000..60354a29942421331aa0a4f90ee0c6afb51c11d8 --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-6986708736059925984.json @@ -0,0 +1,71 @@ +{ + "receiver": "piacereWebhookDev", + "status": "firing", + "alerts": [ + { + "status": "firing", + "labels": { + "alertname": "Availability Doml Element under 90", + "event_type": "avdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 0- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 50" + }, + "startsAt": "2023-12-10T22:22:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view", + "fingerprint": "b95789e343cae5cc", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 0, + "B1": 50 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d0 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d50 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Doml Element under 95", + "event_type": "avdeu95", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 0- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 50- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100" + }, + "startsAt": "2023-12-10T22:22:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view", + "fingerprint": "edfbb61968355179", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 0, + "B1": 50, + "B2": 100 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d0 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d50 ], [ var\u003d\u0027B2\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-00} value\u003d100 ]" + } + ], + "groupLabels": {}, + "commonLabels": { + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms" + }, + "commonAnnotations": {}, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[FIRING:2] (piacere Piacere Generic Alarms)", + "state": "alerting", + "message": "**Firing**\n\nValue: B0\u003d0, B1\u003d50\nLabels:\n - alertname \u003d Availability Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 0- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 50\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d0, B1\u003d50, B2\u003d100\nLabels:\n - alertname \u003d Availability Doml Element under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 0- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 50- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n" +} \ No newline at end of file diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/request-7291601689555291521.json b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-7291601689555291521.json new file mode 100644 index 0000000000000000000000000000000000000000..da65ac70a458d365a534289cfc0c8d52f80e34a7 --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-7291601689555291521.json @@ -0,0 +1,136 @@ +{ + "receiver": "piacereWebhookDev", + "status": "firing", + "alerts": [ + { + "status": "resolved", + "labels": { + "alertname": "Availability Deployment under 90", + "event_type": "avdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-10T22:47:00Z", + "endsAt": "2023-12-10T23:01:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view", + "fingerprint": "0bf7f2b8c29507f3", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "resolved", + "labels": { + "alertname": "Availability Doml Element under 90", + "event_type": "avdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n" + }, + "startsAt": "2023-12-10T22:46:00Z", + "endsAt": "2023-12-10T23:01:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view", + "fingerprint": "b95789e343cae5cc", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "valueString": "" + }, + { + "status": "resolved", + "labels": { + "alertname": "Availability Doml Element under 95", + "event_type": "avdeu95", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 100\n" + }, + "startsAt": "2023-12-10T22:46:00Z", + "endsAt": "2023-12-10T23:02:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view", + "fingerprint": "edfbb61968355179", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 100, + "B1": 100, + "B2": 100 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-00} value\u003d100 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d100 ], [ var\u003d\u0027B2\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d100 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Prediction Deployment under 90", + "event_type": "avprdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 68.33500000000001\n" + }, + "startsAt": "2023-12-10T22:33:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view", + "fingerprint": "43e9cbe8e24811e9", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 68.33500000000001 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000} value\u003d68.33500000000001 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Prediction Doml Element under 90", + "event_type": "avprdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 36.67\n" + }, + "startsAt": "2023-12-10T22:33:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view", + "fingerprint": "f3822f4fc40bfe30", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 36.67 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d36.67 ]" + } + ], + "groupLabels": {}, + "commonLabels": { + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms" + }, + "commonAnnotations": {}, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[FIRING:2, RESOLVED:3] (piacere Piacere Generic Alarms)", + "state": "alerting", + "message": "**Firing**\n\nValue: B0\u003d68.33500000000001\nLabels:\n - alertname \u003d Availability Prediction Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 68.33500000000001\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: B0\u003d36.67\nLabels:\n - alertname \u003d Availability Prediction Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 36.67\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\n\n**Resolved**\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d100, B1\u003d100, B2\u003d100\nLabels:\n - alertname \u003d Availability Doml Element under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 100\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n" +} \ No newline at end of file diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/request-9404154774034371146.json b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-9404154774034371146.json new file mode 100644 index 0000000000000000000000000000000000000000..9133d3691952348146c36307ab12da2eae015412 --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-9404154774034371146.json @@ -0,0 +1,96 @@ +{ + "receiver": "piacereWebhookDev", + "status": "firing", + "alerts": [ + { + "status": "firing", + "labels": { + "alertname": "Availability Deployment under 90", + "event_type": "avdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 50\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 50\n" + }, + "startsAt": "2023-12-10T23:25:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view", + "fingerprint": "0bf7f2b8c29507f3", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 50, + "B1": 50 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000} value\u003d50 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001} value\u003d50 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Doml Element under 90", + "event_type": "avdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 0\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 50\n" + }, + "startsAt": "2023-12-10T23:25:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view", + "fingerprint": "b95789e343cae5cc", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 0, + "B1": 50 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d0 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d50 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Doml Element under 95", + "event_type": "avdeu95", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 0\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 50\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n" + }, + "startsAt": "2023-12-10T23:25:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view", + "fingerprint": "edfbb61968355179", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 0, + "B1": 50, + "B2": 100 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d0 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d50 ], [ var\u003d\u0027B2\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-00} value\u003d100 ]" + } + ], + "groupLabels": {}, + "commonLabels": { + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms" + }, + "commonAnnotations": {}, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[FIRING:3] (piacere Piacere Generic Alarms)", + "state": "alerting", + "message": "**Firing**\n\nValue: B0\u003d50, B1\u003d50\nLabels:\n - alertname \u003d Availability Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 50\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 50\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d0, B1\u003d50\nLabels:\n - alertname \u003d Availability Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 0\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 50\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d0, B1\u003d50, B2\u003d100\nLabels:\n - alertname \u003d Availability Doml Element under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 0\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 50\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n" +} \ No newline at end of file diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/request-9820878575889550052.json b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-9820878575889550052.json new file mode 100644 index 0000000000000000000000000000000000000000..8c05a915413678b99c83eec6d21fa3026ac450be --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-9820878575889550052.json @@ -0,0 +1,144 @@ +{ + "receiver": "piacereWebhookDev", + "status": "firing", + "alerts": [ + { + "status": "firing", + "labels": { + "alertname": "Availability Deployment under 90", + "event_type": "avdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 87.5\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 87.5\n" + }, + "startsAt": "2023-12-10T23:25:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view", + "fingerprint": "0bf7f2b8c29507f3", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 87.5, + "B1": 87.5 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000} value\u003d87.5 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001} value\u003d87.5 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Doml Element under 90", + "event_type": "avdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 75\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 87.5\n" + }, + "startsAt": "2023-12-10T23:25:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view", + "fingerprint": "b95789e343cae5cc", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 75, + "B1": 87.5 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d75 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d87.5 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Doml Element under 95", + "event_type": "avdeu95", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 75\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 87.5\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n" + }, + "startsAt": "2023-12-10T23:25:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view", + "fingerprint": "edfbb61968355179", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 75, + "B1": 87.5, + "B2": 100 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d75 ], [ var\u003d\u0027B1\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d222e4567-e89b-12d3-a456-426614174001, doml_element_name\u003dpm-a-01-00} value\u003d87.5 ], [ var\u003d\u0027B2\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-00} value\u003d100 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Prediction Deployment under 90", + "event_type": "avprdu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 55.835\n" + }, + "startsAt": "2023-12-10T23:27:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view", + "fingerprint": "43e9cbe8e24811e9", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 55.835 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000} value\u003d55.835 ]" + }, + { + "status": "firing", + "labels": { + "alertname": "Availability Prediction Doml Element under 90", + "event_type": "avprdeu90", + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms", + "severity": "warning" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 11.67\n" + }, + "startsAt": "2023-12-10T23:26:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view", + "fingerprint": "f3822f4fc40bfe30", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 11.67 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027mean\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-01} value\u003d11.67 ]" + } + ], + "groupLabels": {}, + "commonLabels": { + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms" + }, + "commonAnnotations": {}, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[FIRING:5] (piacere Piacere Generic Alarms)", + "state": "alerting", + "message": "**Firing**\n\nValue: B0\u003d87.5, B1\u003d87.5\nLabels:\n - alertname \u003d Availability Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 87.5\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 87.5\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d75, B1\u003d87.5\nLabels:\n - alertname \u003d Availability Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 75\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 87.5\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d75, B1\u003d87.5, B2\u003d100\nLabels:\n - alertname \u003d Availability Doml Element under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 75\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 87.5\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: B0\u003d55.835\nLabels:\n - alertname \u003d Availability Prediction Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 55.835\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: B0\u003d11.67\nLabels:\n - alertname \u003d Availability Prediction Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 11.67\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n" +} \ No newline at end of file diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/request-custom.json b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-custom.json new file mode 100644 index 0000000000000000000000000000000000000000..22a506d6be5e1c5f88a57d8b16a5ebca0bdd6dc2 --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/request-custom.json @@ -0,0 +1,46 @@ +{ + "receiver": "piacereWebhookDev", + "status": "firing", + "alerts": [ + { + "status": "firing", + "labels": { + "alertname": "test", + "category": "piacere", + "deployment_id": "123e4567-e89b-12d3-a456-426614174000", + "doml_element_name": "pm-a-00-00", + "event_type": "123e4567-e89b-12d3-a456-426614174000-cpu_stress", + "grafana_folder": "piacere-123e4567-e89b-12d3-a456-426614174000", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n host: 4010ad3e6ef4\n value: 2.4787775891347517\n" + }, + "startsAt": "2023-12-13T15:40:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/ed508646-8663-4338-8f9e-b50236009fbf/view", + "fingerprint": "87404b1bd28f6838", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3Dtest\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddeployment_id%3D123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003ddoml_element_name%3Dpm-a-00-00\u0026matcher\u003devent_type%3D123e4567-e89b-12d3-a456-426614174000-cpu_stress\u0026matcher\u003dgrafana_folder%3Dpiacere-123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 2.4787775891347517 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027usage_user\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-00, host\u003d4010ad3e6ef4} value\u003d2.4787775891347517 ]" + } + ], + "groupLabels": {}, + "commonLabels": { + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms" + }, + "commonAnnotations": {}, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[FIRING:4, RESOLVED:2] (piacere Piacere Generic Alarms)", + "state": "alerting", + "message": "**Firing**\n\nValue: B0\u003d59.375\nLabels:\n - alertname \u003d Availability Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 59.375\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d59.375, B1\u003d100\nLabels:\n - alertname \u003d Availability Deployment under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 59.375\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 100\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: B0\u003d59.375\nLabels:\n - alertname \u003d Availability Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 59.375\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d59.375, B1\u003d100, B2\u003d100\nLabels:\n - alertname \u003d Availability Doml Element under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 59.375\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\n\n**Resolved**\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Prediction Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Prediction Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n" +} \ No newline at end of file diff --git a/git/sh-backend/src/test/resources/grafana-webhook-tests/test.sh b/git/sh-backend/src/test/resources/grafana-webhook-tests/test.sh new file mode 100644 index 0000000000000000000000000000000000000000..41267ba54d1a7c3ff8ec3d3ee18862aaa95502e4 --- /dev/null +++ b/git/sh-backend/src/test/resources/grafana-webhook-tests/test.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# This script is used to test the webhook functionality of Grafana. +# iterate json files in the same folder as this script + +script_folder=$(dirname $(readlink -f $0)) +for json_file in `ls -rt $script_folder/*.json`; do + echo "Testing $json_file" + time(curl -X POST -H "Content-Type: application/json" -d @$json_file http://192.168.56.1:8081/api/self-healing/grafana-webhooks) + sleep 10 # wait for 60 seconds + echo "" +done diff --git a/git/sh-backend/src/test/resources/prc-tests/grafana-webhook.sh b/git/sh-backend/src/test/resources/prc-tests/grafana-webhook.sh new file mode 100644 index 0000000000000000000000000000000000000000..41267ba54d1a7c3ff8ec3d3ee18862aaa95502e4 --- /dev/null +++ b/git/sh-backend/src/test/resources/prc-tests/grafana-webhook.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# This script is used to test the webhook functionality of Grafana. +# iterate json files in the same folder as this script + +script_folder=$(dirname $(readlink -f $0)) +for json_file in `ls -rt $script_folder/*.json`; do + echo "Testing $json_file" + time(curl -X POST -H "Content-Type: application/json" -d @$json_file http://192.168.56.1:8081/api/self-healing/grafana-webhooks) + sleep 10 # wait for 60 seconds + echo "" +done diff --git a/git/sh-backend/src/test/resources/prc-tests/notify-posidonia.ct.sh b/git/sh-backend/src/test/resources/prc-tests/notify-posidonia.ct.sh new file mode 100644 index 0000000000000000000000000000000000000000..b90d625b983d0eba3dcb0fb43a8ff56906bb27e7 --- /dev/null +++ b/git/sh-backend/src/test/resources/prc-tests/notify-posidonia.ct.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# This script is used to test the webhook functionality of Grafana. +# iterate json files in the same folder as this script + +time(curl -X POST -H "Content-Type: application/json" -d "{ \"deploymentId\": \"posidonia.ct\", \"error\": \"{\\\"labels\\\":{\\\"doml_element_name\\\":\\\"mysql_vm\\\",\\\"severity\\\":\\\"critical\\\",\\\"deployment_id\\\":\\\"posidonia.ct\\\",\\\"host\\\":\\\"4010ad3e6ef4\\\",\\\"value\\\":2.4787775891347517}}\", \"eventType\": { \"code\": \"123e4567-e89b-12d3-a456-426614174000-cpu_stress\" }, \"origin\": \"pm-grafana\" }" http://192.168.56.1:8081/api/self-healing/notify) + + + diff --git a/git/sh-backend/src/test/resources/prc-tests/notify-posidonia.os-ci.sh b/git/sh-backend/src/test/resources/prc-tests/notify-posidonia.os-ci.sh new file mode 100644 index 0000000000000000000000000000000000000000..dccefe610b4aa1ded8ee2507153a22ee043e636b --- /dev/null +++ b/git/sh-backend/src/test/resources/prc-tests/notify-posidonia.os-ci.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +# This script is used to test the webhook functionality of Grafana. +# iterate json files in the same folder as this script + +time(curl -X POST -H "Content-Type: application/json" -d "{ \"deploymentId\": \"posidonia.os\", \"error\": \"{\\\"labels\\\":{\\\"deployment_id\\\":\\\"posidonia.os\\\",\\\"doml_element_name\\\":\\\"mysql_vm\\\",\\\"host\\\":\\\"4010ad3e6ef4\\\"}}\", \"eventType\": { \"code\": \"123e4567-e89b-12d3-a456-426614174000-cpu_stress\" }, \"origin\": \"sm-wazuh\" }" https://sh.ci.piacere.digital.tecnalia.dev/services/shbackend/api/self-healing/notify) diff --git a/git/sh-backend/src/test/resources/prc-tests/notify.sh b/git/sh-backend/src/test/resources/prc-tests/notify.sh new file mode 100644 index 0000000000000000000000000000000000000000..5f0991d8a57b251f1d26ca4454107bef1c7e5229 --- /dev/null +++ b/git/sh-backend/src/test/resources/prc-tests/notify.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# This script is used to test the webhook functionality of Grafana. +# iterate json files in the same folder as this script + +time(curl -X POST -H "Content-Type: application/json" -d "{ \"deploymentId\": \"123e4567-e89b-12d3-a456-426614174000\", \"error\": \"{\\\"labels\\\":{\\\"doml_element_name\\\":\\\"pm-a-00-00\\\",\\\"severity\\\":\\\"critical\\\",\\\"deployment_id\\\":\\\"123e4567-e89b-12d3-a456-426614174000\\\",\\\"host\\\":\\\"4010ad3e6ef4\\\",\\\"value\\\":2.4787775891347517}}\", \"eventType\": { \"code\": \"123e4567-e89b-12d3-a456-426614174000-cpu_stress\" }, \"origin\": \"pm-grafana\" }" http://192.168.56.1:8081/api/self-healing/notify) + + + diff --git a/git/sh-backend/src/test/resources/prc-tests/request-custom.json b/git/sh-backend/src/test/resources/prc-tests/request-custom.json new file mode 100644 index 0000000000000000000000000000000000000000..22a506d6be5e1c5f88a57d8b16a5ebca0bdd6dc2 --- /dev/null +++ b/git/sh-backend/src/test/resources/prc-tests/request-custom.json @@ -0,0 +1,46 @@ +{ + "receiver": "piacereWebhookDev", + "status": "firing", + "alerts": [ + { + "status": "firing", + "labels": { + "alertname": "test", + "category": "piacere", + "deployment_id": "123e4567-e89b-12d3-a456-426614174000", + "doml_element_name": "pm-a-00-00", + "event_type": "123e4567-e89b-12d3-a456-426614174000-cpu_stress", + "grafana_folder": "piacere-123e4567-e89b-12d3-a456-426614174000", + "severity": "critical" + }, + "annotations": { + "alert_values": "alerts:\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n host: 4010ad3e6ef4\n value: 2.4787775891347517\n" + }, + "startsAt": "2023-12-13T15:40:00Z", + "endsAt": "0001-01-01T00:00:00Z", + "generatorURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/ed508646-8663-4338-8f9e-b50236009fbf/view", + "fingerprint": "87404b1bd28f6838", + "silenceURL": "https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3Dtest\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003ddeployment_id%3D123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003ddoml_element_name%3Dpm-a-00-00\u0026matcher\u003devent_type%3D123e4567-e89b-12d3-a456-426614174000-cpu_stress\u0026matcher\u003dgrafana_folder%3Dpiacere-123e4567-e89b-12d3-a456-426614174000\u0026matcher\u003dseverity%3Dcritical", + "dashboardURL": "", + "panelURL": "", + "values": { + "B0": 2.4787775891347517 + }, + "valueString": "[ var\u003d\u0027B0\u0027 metric\u003d\u0027usage_user\u0027 labels\u003d{deployment_id\u003d123e4567-e89b-12d3-a456-426614174000, doml_element_name\u003dpm-a-00-00, host\u003d4010ad3e6ef4} value\u003d2.4787775891347517 ]" + } + ], + "groupLabels": {}, + "commonLabels": { + "category": "piacere", + "grafana_folder": "Piacere Generic Alarms" + }, + "commonAnnotations": {}, + "externalURL": "https://grafana.pm.192.168.56.1.nip.io:443/", + "version": "1", + "groupKey": "{category\u003d\"piacere\"}:{}", + "truncatedAlerts": 0, + "orgId": 1, + "title": "[FIRING:4, RESOLVED:2] (piacere Piacere Generic Alarms)", + "state": "alerting", + "message": "**Firing**\n\nValue: B0\u003d59.375\nLabels:\n - alertname \u003d Availability Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 59.375\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d59.375, B1\u003d100\nLabels:\n - alertname \u003d Availability Deployment under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n value: 59.375\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n value: 100\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-deployment-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Deployment+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: B0\u003d59.375\nLabels:\n - alertname \u003d Availability Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d critical\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 59.375\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dcritical\n\nValue: B0\u003d59.375, B1\u003d100, B2\u003d100\nLabels:\n - alertname \u003d Availability Doml Element under 95\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n- deployment_id: 222e4567-e89b-12d3-a456-426614174001\n doml_element_name: pm-a-01-00\n value: 59.375\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-00\n value: 100\n- deployment_id: 123e4567-e89b-12d3-a456-426614174000\n doml_element_name: pm-a-00-01\n value: 100\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-doml-element-under-95/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Doml+Element+under+95\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\n\n**Resolved**\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Prediction Deployment under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-deployment-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Deployment+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n\nValue: [no value]\nLabels:\n - alertname \u003d Availability Prediction Doml Element under 90\n - category \u003d piacere\n - grafana_folder \u003d Piacere Generic Alarms\n - severity \u003d warning\nAnnotations:\n - alert_values \u003d alerts:\n\nSource: https://grafana.pm.192.168.56.1.nip.io:443/alerting/grafana/availability-prediction-doml-element-under-90/view\nSilence: https://grafana.pm.192.168.56.1.nip.io:443/alerting/silence/new?alertmanager\u003dgrafana\u0026matcher\u003dalertname%3DAvailability+Prediction+Doml+Element+under+90\u0026matcher\u003dcategory%3Dpiacere\u0026matcher\u003dgrafana_folder%3DPiacere+Generic+Alarms\u0026matcher\u003dseverity%3Dwarning\n" +} \ No newline at end of file diff --git a/git/sh-gateway/.dockerignore b/git/sh-gateway/.dockerignore deleted file mode 100644 index 47e77621ba12e24f127fbdfe4daf35eecda5f93d..0000000000000000000000000000000000000000 --- a/git/sh-gateway/.dockerignore +++ /dev/null @@ -1,3 +0,0 @@ -target -node_modules -Dockerfile* \ No newline at end of file diff --git a/git/sh-gateway/.jhipster/Deployment.json b/git/sh-gateway/.jhipster/Deployment.json new file mode 100644 index 0000000000000000000000000000000000000000..724d379278c293bef20912af0f3bb2ec7cd271f9 --- /dev/null +++ b/git/sh-gateway/.jhipster/Deployment.json @@ -0,0 +1,33 @@ +{ + "name": "Deployment", + "fields": [ + { + "fieldName": "deploymentId", + "fieldType": "String", + "javadoc": "deployment id", + "fieldValidateRules": ["required", "unique"] + }, + { + "fieldName": "bundle", + "fieldType": "byte[]", + "javadoc": "information about the deployment zip bundle", + "fieldTypeBlobContent": "any", + "fieldValidateRules": ["required"] + } + ], + "relationships": [], + "javadoc": "deployment of self-healing\\n\\n@author Tecnalia", + "entityTableName": "deployment", + "dto": "no", + "pagination": "no", + "service": "no", + "jpaMetamodelFiltering": false, + "fluentMethods": true, + "readOnly": false, + "embedded": false, + "applications": "*", + "microserviceName": "shBackend", + "clientRootFolder": "shBackend", + "databaseType": "sql", + "changelogDate": "20231228013557" +} diff --git a/git/sh-gateway/.jhipster/EventType.json b/git/sh-gateway/.jhipster/EventType.json index c103d07e93de0bae628437627e9fce922ec8e749..de3d7b46ae6e73ec7040af5b94787f98c755f7c0 100644 --- a/git/sh-gateway/.jhipster/EventType.json +++ b/git/sh-gateway/.jhipster/EventType.json @@ -5,7 +5,7 @@ "fieldName": "code", "fieldType": "String", "javadoc": "event type code", - "fieldValidateRules": ["required"] + "fieldValidateRules": ["required", "unique"] }, { "fieldName": "description", @@ -20,6 +20,13 @@ "otherEntityRelationshipName": "eventType", "relationshipName": "strategy", "otherEntityField": "code" + }, + { + "relationshipType": "many-to-one", + "otherEntityName": "deployment", + "otherEntityRelationshipName": "eventType", + "relationshipName": "deployment", + "otherEntityField": "deploymentId" } ], "javadoc": "type of events managed by self-healing\\n\\n@author Tecnalia", @@ -32,9 +39,8 @@ "readOnly": false, "embedded": false, "applications": "*", - "skipServer": true, "microserviceName": "shBackend", "clientRootFolder": "shBackend", "databaseType": "sql", - "changelogDate": "20211028090206" + "changelogDate": "20231228013555" } diff --git a/git/sh-gateway/.jhipster/SelfHealingMessage.json b/git/sh-gateway/.jhipster/SelfHealingMessage.json index 64cd33af5cfa614d8bca4d43c17730ac38ed5eb4..2fa818eeee58b86f5b6b41798ac2668fa7ed4fde 100644 --- a/git/sh-gateway/.jhipster/SelfHealingMessage.json +++ b/git/sh-gateway/.jhipster/SelfHealingMessage.json @@ -1,6 +1,11 @@ { "name": "SelfHealingMessage", "fields": [ + { + "fieldName": "timestamp", + "fieldType": "Instant", + "javadoc": "message timestamp" + }, { "fieldName": "origin", "fieldType": "String", @@ -8,25 +13,21 @@ "fieldValidateRules": ["required"] }, { - "fieldName": "applicationId", + "fieldName": "deploymentId", "fieldType": "String", "javadoc": "id of app related to message" }, - { - "fieldName": "timestamp", - "fieldType": "Instant", - "javadoc": "message timestamp" - }, { "fieldName": "status", "fieldType": "Status", "javadoc": "status of the message", - "fieldValues": "PENDING (Pending),PROCESSED (Processed),ERROR (Error)" + "fieldValues": "PENDING (Pending),PROCESSED (Processed),IGNORED (Ignored),ERROR (Error)" }, { "fieldName": "error", - "fieldType": "String", - "javadoc": "error description if status error" + "fieldType": "byte[]", + "javadoc": "error description if status error", + "fieldTypeBlobContent": "text" } ], "relationships": [ @@ -34,12 +35,11 @@ "relationshipType": "many-to-one", "otherEntityName": "eventType", "otherEntityRelationshipName": "selfHealingMessage", - "relationshipValidateRules": "required", "relationshipName": "eventType", "otherEntityField": "code" } ], - "javadoc": "Messages received definition\\n\\n@author Tecnalia", + "javadoc": "Messages received definition https:\\n\\n@author Tecnalia", "entityTableName": "self_healing_message", "dto": "no", "pagination": "no", @@ -49,9 +49,8 @@ "readOnly": false, "embedded": false, "applications": "*", - "skipServer": true, "microserviceName": "shBackend", "clientRootFolder": "shBackend", "databaseType": "sql", - "changelogDate": "20211028090205" + "changelogDate": "20231228013554" } diff --git a/git/sh-gateway/.jhipster/SelfHealingResponse.json b/git/sh-gateway/.jhipster/SelfHealingResponse.json deleted file mode 100644 index 04618c7835f1e2c324eeaae3557a7a975802e4bc..0000000000000000000000000000000000000000 --- a/git/sh-gateway/.jhipster/SelfHealingResponse.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "SelfHealingResponse", - "fields": [ - { - "fieldName": "processed", - "fieldType": "Boolean", - "javadoc": "message processed ack", - "fieldValidateRules": ["required"] - }, - { - "fieldName": "error", - "fieldType": "String", - "javadoc": "error description in case of processed false" - } - ], - "relationships": [ - { - "relationshipType": "one-to-one", - "otherEntityName": "selfHealingMessage", - "otherEntityRelationshipName": "selfHealingResponse", - "relationshipValidateRules": "required", - "relationshipName": "selfHealingMessage", - "ownerSide": true - } - ], - "javadoc": "Response messages definition\\n\\n@author Tecnalia", - "entityTableName": "self_healing_response", - "dto": "no", - "pagination": "no", - "service": "no", - "jpaMetamodelFiltering": false, - "fluentMethods": true, - "readOnly": false, - "embedded": false, - "applications": "*", - "skipServer": true, - "microserviceName": "shBackend", - "clientRootFolder": "shBackend", - "databaseType": "sql", - "changelogDate": "20211028090208" -} diff --git a/git/sh-gateway/.jhipster/Strategy.json b/git/sh-gateway/.jhipster/Strategy.json index dc3ad9d0b6d2b9b29e1ea2178dad79b3cb4017de..2644928009095dabc471bb0f6c2b4bb22aa4c615 100644 --- a/git/sh-gateway/.jhipster/Strategy.json +++ b/git/sh-gateway/.jhipster/Strategy.json @@ -5,7 +5,7 @@ "fieldName": "code", "fieldType": "String", "javadoc": "strategy code", - "fieldValidateRules": ["required"] + "fieldValidateRules": ["required", "unique"] }, { "fieldName": "description", @@ -13,18 +13,19 @@ "javadoc": "strategy description" }, { - "fieldName": "bpmn", - "fieldType": "String", - "javadoc": "business process modelling annotation to propose" + "fieldName": "configuration", + "fieldType": "byte[]", + "javadoc": "business process modelling annotation to propose", + "fieldTypeBlobContent": "text" } ], "relationships": [ { - "relationshipType": "one-to-many", - "otherEntityName": "eventType", + "relationshipType": "many-to-one", + "otherEntityName": "deployment", "otherEntityRelationshipName": "strategy", - "relationshipName": "eventType", - "otherEntityField": "code" + "relationshipName": "deployment", + "otherEntityField": "deploymentId" } ], "javadoc": "strategys managed by self-healing\\n\\n@author Tecnalia", @@ -37,9 +38,8 @@ "readOnly": false, "embedded": false, "applications": "*", - "skipServer": true, "microserviceName": "shBackend", "clientRootFolder": "shBackend", "databaseType": "sql", - "changelogDate": "20211028090207" + "changelogDate": "20231228013556" } diff --git a/git/sh-gateway/.jhipster/StrategyApplication.json b/git/sh-gateway/.jhipster/StrategyApplication.json new file mode 100644 index 0000000000000000000000000000000000000000..9738248368fc0af2706ee7bffc40137f32871b77 --- /dev/null +++ b/git/sh-gateway/.jhipster/StrategyApplication.json @@ -0,0 +1,52 @@ +{ + "name": "StrategyApplication", + "fields": [ + { + "fieldName": "timestamp", + "fieldType": "Instant", + "javadoc": "strategyApplication timestamp" + }, + { + "fieldName": "summary", + "fieldType": "byte[]", + "javadoc": "json with summary of strategyApplication", + "fieldTypeBlobContent": "text" + }, + { + "fieldName": "bundle", + "fieldType": "byte[]", + "javadoc": "optional bundle with strategyApplication resources", + "fieldTypeBlobContent": "any" + } + ], + "relationships": [ + { + "relationshipType": "many-to-one", + "otherEntityName": "strategy", + "otherEntityRelationshipName": "strategyApplication", + "relationshipName": "strategy", + "otherEntityField": "code" + }, + { + "relationshipType": "many-to-one", + "otherEntityName": "deployment", + "otherEntityRelationshipName": "strategyApplication", + "relationshipName": "deployment", + "otherEntityField": "deploymentId" + } + ], + "javadoc": "strategyApplication of self-healing\\n\\n@author Tecnalia", + "entityTableName": "strategy_application", + "dto": "no", + "pagination": "no", + "service": "no", + "jpaMetamodelFiltering": false, + "fluentMethods": true, + "readOnly": false, + "embedded": false, + "applications": "*", + "microserviceName": "shBackend", + "clientRootFolder": "shBackend", + "databaseType": "sql", + "changelogDate": "20231228013558" +} diff --git a/git/sh-gateway/.yo-rc-global.json b/git/sh-gateway/.yo-rc-global.json deleted file mode 100644 index 8d1259da8f01dc74728711b7827707be2be9a033..0000000000000000000000000000000000000000 --- a/git/sh-gateway/.yo-rc-global.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "generator-jhipster:7.2.0": { - "promptValues": { - "packageName": "com.piacere.selfhealing.gateway", - "nativeLanguage": "en" - } - } -} diff --git a/git/sh-gateway/.yo-rc.json b/git/sh-gateway/.yo-rc.json index 86d336208fb5bbee71c97efcaa3c71087aebe09c..1d0f497d4fd131a0866c8c015bbe70884155ff80 100644 --- a/git/sh-gateway/.yo-rc.json +++ b/git/sh-gateway/.yo-rc.json @@ -1,51 +1,53 @@ { "generator-jhipster": { - "applicationType": "gateway", - "baseName": "selfHealingGateway", - "jhipsterVersion": "7.2.0", - "skipClient": false, - "skipServer": false, - "skipUserManagement": false, - "skipCheckLengthOfIdentifier": false, - "skipFakeData": false, - "jhiPrefix": "jhi", - "entitySuffix": "", - "dtoSuffix": "DTO", - "testFrameworks": [], - "blueprints": [], - "otherModules": [], - "pages": [], - "creationTimestamp": 1634649038567, - "serviceDiscoveryType": "eureka", - "reactive": true, "authenticationType": "jwt", - "packageName": "com.piacere.selfhealing.gateway", + "clientFramework": "angularX", "serverPort": "8080", - "cacheProvider": "no", - "enableHibernateCache": false, + "serviceDiscoveryType": "eureka", + "skipUserManagement": false, + "withAdminUi": true, + "baseName": "shGateway", + "buildTool": "maven", "databaseType": "sql", "devDatabaseType": "mysql", + "cacheProvider": "no", + "enableHibernateCache": false, + "enableSwaggerCodegen": false, + "enableTranslation": true, + "jhiPrefix": "jhi", + "languages": ["en"], + "messageBroker": false, "prodDatabaseType": "mysql", - "buildTool": "maven", - "serverSideOptions": [], - "websocket": false, "searchEngine": false, - "messageBroker": false, - "enableSwaggerCodegen": false, - "clientFramework": "angularX", - "withAdminUi": false, + "skipClient": false, + "testFrameworks": [], + "websocket": false, + "enableGradleEnterprise": false, + "gradleEnterpriseHost": "", + "applicationType": "gateway", + "clientPackageManager": "npm", "clientTheme": "none", - "enableTranslation": false, + "dtoSuffix": "DTO", + "jwtSecretKey": "MDBhMjI4YTczOWZlZjFhOTMzMDMyNmI1OGFiODViZjFkMzlkMzI1ZDJjZmNiOGM1YmVlNDJjNDhkNDQ3Mzk4YjEyZmIxZmYzODRhMWZmMDE0MDZlYjViOTNlNjk1Y2I1M2ZjYWQ3NmJkOGZlOWVhNDRjZTZkODgyZDNlOWRjZDI=", "nativeLanguage": "en", + "packageName": "com.piacere.selfhealing.gateway", + "packageFolder": "com/piacere/selfhealing/gateway", + "reactive": true, + "skipServer": false, + "jhipsterVersion": "7.2.0", + "entitySuffix": "", + "applicationIndex": 0, + "entities": ["SelfHealingMessage", "EventType", "Strategy", "Deployment", "StrategyApplication"], + "skipCheckLengthOfIdentifier": false, + "skipFakeData": false, + "blueprints": [], + "otherModules": [], + "pages": [], + "creationTimestamp": 1703726855488, "monorepository": true, "skipCommitHook": true, - "jwtSecretKey": "MDBhMjI4YTczOWZlZjFhOTMzMDMyNmI1OGFiODViZjFkMzlkMzI1ZDJjZmNiOGM1YmVlNDJjNDhkNDQ3Mzk4YjEyZmIxZmYzODRhMWZmMDE0MDZlYjViOTNlNjk1Y2I1M2ZjYWQ3NmJkOGZlOWVhNDRjZTZkODgyZDNlOWRjZDI=", "devServerPort": 4200, - "clientPackageManager": "npm", "clientThemeVariant": "", - "enableGradleEnterprise": false, - "languages": ["en", "fr"], - "entities": ["SelfHealingMessage", "EventType", "Strategy", "SelfHealingResponse"], - "lastLiquibaseTimestamp": 1635411728000 + "lastLiquibaseTimestamp": 1703727358000 } } diff --git a/git/sh-gateway/Dockerfile b/git/sh-gateway/Dockerfile index e7e19607f6f84edfec9fdced4db506c393dd58a1..600f2c47e23467acf676fbc99e51b089ef9fe46b 100644 --- a/git/sh-gateway/Dockerfile +++ b/git/sh-gateway/Dockerfile @@ -11,7 +11,6 @@ RUN \ COPY package.json /code/package.json COPY package-lock.json /code/package-lock.json - RUN \ mvn -o -DnodeVersion=v14.17.6 -DnpmVersion=7.23.0 -Pprod,api-docs com.github.eirslett:frontend-maven-plugin:install-node-and-npm com.github.eirslett:frontend-maven-plugin:npm -Dmaven.test.skip=true @@ -50,4 +49,3 @@ COPY --from=builder /frontend.jar . CMD echo "The frontend will start in ${JHIPSTER_SLEEP}s..." && \ sleep $JHIPSTER_SLEEP && \ java $JAVA_OPTS -Dspring.profiles.active=$RUN_PROFILE -jar /frontend.jar - \ No newline at end of file diff --git a/git/sh-gateway/README.md b/git/sh-gateway/README.md index 5c55889bf5fdc7ca4eb82ad1484202902d2a9b8e..986fc2d448977d88940472f11897a49c0cb216fb 100644 --- a/git/sh-gateway/README.md +++ b/git/sh-gateway/README.md @@ -1,4 +1,4 @@ -# selfHealingGateway +# shGateway This application was generated using JHipster 7.2.0, you can find documentation and help at [https://www.jhipster.tech/documentation-archive/v7.2.0](https://www.jhipster.tech/documentation-archive/v7.2.0). @@ -106,7 +106,7 @@ docker-compose -f src/main/docker/jhipster-control-center.yml up ### Packaging as jar -To build the final jar and optimize the selfHealingGateway application for production, run: +To build the final jar and optimize the shGateway application for production, run: ``` ./mvnw -Pprod clean verify diff --git a/git/sh-gateway/angular.json b/git/sh-gateway/angular.json index 3b54ec47be1be56144bfe28bff4367bfc4c712dd..51e7c9901bf903e5c489270f6faba387e1f0c456 100644 --- a/git/sh-gateway/angular.json +++ b/git/sh-gateway/angular.json @@ -3,7 +3,7 @@ "version": 1, "newProjectRoot": "projects", "projects": { - "self-healing-gateway": { + "sh-gateway": { "projectType": "application", "schematics": { "@schematics/angular:component": { @@ -84,15 +84,15 @@ "serve": { "builder": "@angular-builders/custom-webpack:dev-server", "options": { - "browserTarget": "self-healing-gateway:build:development", + "browserTarget": "sh-gateway:build:development", "port": 4200 }, "configurations": { "production": { - "browserTarget": "self-healing-gateway:build:production" + "browserTarget": "sh-gateway:build:production" }, "development": { - "browserTarget": "self-healing-gateway:build:development" + "browserTarget": "sh-gateway:build:development" } }, "defaultConfiguration": "development" @@ -106,7 +106,7 @@ } } }, - "defaultProject": "self-healing-gateway", + "defaultProject": "sh-gateway", "cli": { "packageManager": "npm" } diff --git a/git/sh-gateway/package-lock.json b/git/sh-gateway/package-lock.json index 5670b305e758da1a4e5f9f2774ba19c1aa7097e1..bcba3d14377a66a744942a9ebb5bdc8fbabb829a 100644 --- a/git/sh-gateway/package-lock.json +++ b/git/sh-gateway/package-lock.json @@ -1,11 +1,11 @@ { - "name": "self-healing-gateway", + "name": "sh-gateway", "version": "0.0.1-SNAPSHOT", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "self-healing-gateway", + "name": "sh-gateway", "version": "0.0.1-SNAPSHOT", "license": "UNLICENSED", "dependencies": { @@ -21,6 +21,8 @@ "@fortawesome/fontawesome-svg-core": "1.2.36", "@fortawesome/free-solid-svg-icons": "5.15.4", "@ng-bootstrap/ng-bootstrap": "10.0.0", + "@ngx-translate/core": "13.0.0", + "@ngx-translate/http-loader": "6.0.0", "bootstrap": "4.6.0", "dayjs": "1.10.7", "ngx-infinite-scroll": "10.0.1", @@ -49,12 +51,14 @@ "eslint": "7.32.0", "eslint-config-prettier": "8.3.0", "eslint-webpack-plugin": "3.0.1", + "folder-hash": "4.0.1", "generator-jhipster": "7.2.0", "jest": "27.2.0", "jest-date-mock": "1.0.8", "jest-junit": "12.2.0", "jest-preset-angular": "9.0.7", "jest-sonar-reporter": "2.0.0", + "merge-jsons-webpack-plugin": "1.0.21", "prettier": "2.4.0", "prettier-plugin-java": "1.4.0", "prettier-plugin-packagejson": "2.2.11", @@ -71,9 +75,18 @@ "node": ">=14.17.6" } }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@ampproject/remapping": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@ampproject/remapping/-/remapping-1.0.1.tgz", "integrity": "sha512-Ta9bMA3EtUHDaZJXqUoT5cn/EecwOp+SXpKJqxDbDuMbLvEMu6YTyDDuvTWeStODfdmXyfMo7LymQyPkN3BicA==", "dev": true, "dependencies": { @@ -86,7 +99,7 @@ }, "node_modules/@angular-builders/custom-webpack": { "version": "12.1.2", - "resolved": "https://registry.npmjs.org/@angular-builders/custom-webpack/-/custom-webpack-12.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-builders/custom-webpack/-/custom-webpack-12.1.2.tgz", "integrity": "sha512-rvHFiZkHCnVAh3nd/mGpJxjbs5LKXvhTRhec7ozkGMyqt0wZK44BsLKcH5VOiIwHQnjrkjtMc0Blaq5JhccwWw==", "dev": true, "dependencies": { @@ -103,9 +116,9 @@ } }, "node_modules/@angular-builders/custom-webpack/node_modules/acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "version": "8.11.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -115,9 +128,9 @@ } }, "node_modules/@angular-builders/custom-webpack/node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn-walk/-/acorn-walk-8.3.1.tgz", + "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", "dev": true, "engines": { "node": ">=0.4.0" @@ -125,7 +138,7 @@ }, "node_modules/@angular-builders/custom-webpack/node_modules/diff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "engines": { @@ -133,12 +146,12 @@ } }, "node_modules/@angular-builders/custom-webpack/node_modules/ts-node": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.3.0.tgz", - "integrity": "sha512-RYIy3i8IgpFH45AX4fQHExrT8BxDeKTdC83QFJkNzkvt8uFB6QJ8XMyhynYiKMLxt9a7yuXaDBZNOYS3XjDcYw==", + "version": "10.9.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "dependencies": { - "@cspotcode/source-map-support": "0.7.0", + "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", @@ -149,11 +162,13 @@ "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" }, "bin": { "ts-node": "dist/bin.js", "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", "ts-node-script": "dist/bin-script.js", "ts-node-transpile-only": "dist/bin-transpile.js", "ts-script": "dist/bin-script-deprecated.js" @@ -175,7 +190,7 @@ }, "node_modules/@angular-builders/jest": { "version": "12.1.2", - "resolved": "https://registry.npmjs.org/@angular-builders/jest/-/jest-12.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-builders/jest/-/jest-12.1.2.tgz", "integrity": "sha512-BWL0/rTMqRi33qpb2mrUsJD3crWKEuFmg0Jg4EjsHNeVrdSEWYkSMAHQLz9WrOqmArDGATf+ieYeeliQDhxfEQ==", "dev": true, "dependencies": { @@ -192,23 +207,23 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1202.10", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.10.tgz", - "integrity": "sha512-/sLgtXaFsNouxub5M/bQ2sBkiMIlPubuz6QMh+pA2jia82vJ3hcRMt4AnJTXuXpVY+aew4FiG0i9nt/8HETQsw==", + "version": "0.1202.18", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/architect/-/architect-0.1202.18.tgz", + "integrity": "sha512-C4ASKe+xBjl91MJyHDLt3z7ICPF9FU6B0CeJ1phwrlSHK9lmFG99WGxEj/Tc82+vHyPhajqS5XJ38KyVAPBGzA==", "dev": true, "dependencies": { - "@angular-devkit/core": "12.2.10", + "@angular-devkit/core": "12.2.18", "rxjs": "6.6.7" }, "engines": { "node": "^12.14.1 || >=14.0.0", - "npm": "^6.11.0 || ^7.5.6", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular-devkit/build-angular": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/build-angular/-/build-angular-12.2.5.tgz", "integrity": "sha512-v44FAFMGSXJLKx25REXdoTdW/WzNXV3BDJam9ZKHFOrdtwJek4D/tEdtNHiQP4HberOHzmVjvKffa5VYXzZ40g==", "dev": true, "dependencies": { @@ -324,7 +339,7 @@ }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { "version": "0.1202.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/architect/-/architect-0.1202.5.tgz", "integrity": "sha512-HiF8RceDrvP7m8Qm53KWVpekESX0UIK4/tOg9mgFMcS/2utRnPzuu4WbfrcY9DRrsoMWLXQs6j/UVXqf8PzXJw==", "dev": true, "dependencies": { @@ -339,7 +354,7 @@ }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/core/-/core-12.2.5.tgz", "integrity": "sha512-UBo0Q9nVGPxC+C1PONSzaczPLv5++5Q7PC2orZepDbWmY0jUDwe9VVJrmp8EhLZbzVKFpyCIs1ZE8h0s0LP1zA==", "dev": true, "dependencies": { @@ -358,7 +373,7 @@ }, "node_modules/@angular-devkit/build-angular/node_modules/@ngtools/webpack": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@ngtools/webpack/-/webpack-12.2.5.tgz", "integrity": "sha512-wc+ovfJucCxAjoP3ExnJll8K3nAoNCiFyDEO8dgHkriY/IWhGdwOu1eduHgfT/mWS40Awj/inJJir9oTi4YBVg==", "dev": true, "engines": { @@ -374,13 +389,13 @@ }, "node_modules/@angular-devkit/build-angular/node_modules/tslib": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-2.3.0.tgz", "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", "dev": true }, "node_modules/@angular-devkit/build-optimizer": { "version": "0.1202.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1202.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/build-optimizer/-/build-optimizer-0.1202.5.tgz", "integrity": "sha512-ni3OyBQq7y1Jk9U7CtwWMRoI+1TWjQYVdGRWt5JgqvLk0hZcaLoapGwUypBV+CdKvC0/0V+k84RiO5wvs5XpFQ==", "dev": true, "dependencies": { @@ -407,13 +422,13 @@ }, "node_modules/@angular-devkit/build-optimizer/node_modules/tslib": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-2.3.0.tgz", "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", "dev": true }, "node_modules/@angular-devkit/build-webpack": { "version": "0.1202.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1202.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/build-webpack/-/build-webpack-0.1202.5.tgz", "integrity": "sha512-wqU2t2zUCZi+fjhuZzFko3eTyqXP6vjdqA3BZQwr3pEhL7IEOvlN4EUYqWAi+h+4SrTtAhk6vZ7m41Hr0y2Ykw==", "dev": true, "dependencies": { @@ -432,7 +447,7 @@ }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { "version": "0.1202.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/architect/-/architect-0.1202.5.tgz", "integrity": "sha512-HiF8RceDrvP7m8Qm53KWVpekESX0UIK4/tOg9mgFMcS/2utRnPzuu4WbfrcY9DRrsoMWLXQs6j/UVXqf8PzXJw==", "dev": true, "dependencies": { @@ -447,7 +462,7 @@ }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/core": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/core/-/core-12.2.5.tgz", "integrity": "sha512-UBo0Q9nVGPxC+C1PONSzaczPLv5++5Q7PC2orZepDbWmY0jUDwe9VVJrmp8EhLZbzVKFpyCIs1ZE8h0s0LP1zA==", "dev": true, "dependencies": { @@ -465,9 +480,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "12.2.10", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.10.tgz", - "integrity": "sha512-0qhmS7Qvl0hiRVTHxEC/ipFAfzYofPstw0ZITDpEMw+pgHlOZolOlnFrv8LyOXWNqlSIH5fS9D3WF7Hpm7ApYA==", + "version": "12.2.18", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/core/-/core-12.2.18.tgz", + "integrity": "sha512-GDLHGe9HEY5SRS+NrKr14C8aHsRCiBFkBFSSbeohgLgcgSXzZHFoU84nDWrl3KZNP8oqcUSv5lHu6dLcf2fnww==", "dev": true, "dependencies": { "ajv": "8.6.2", @@ -479,13 +494,13 @@ }, "engines": { "node": "^12.14.1 || >=14.0.0", - "npm": "^6.11.0 || ^7.5.6", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular-devkit/schematics": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/schematics/-/schematics-12.2.5.tgz", "integrity": "sha512-8WAdZ39FZqbU1/ZQQrK+7PeRuj6QUGlxFUgoVXk5nzRbpZo/OSaKhPoC7sC1A0EU+7udLp5vT7R12sDz7Mr9vQ==", "dev": true, "dependencies": { @@ -501,7 +516,7 @@ }, "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/core/-/core-12.2.5.tgz", "integrity": "sha512-UBo0Q9nVGPxC+C1PONSzaczPLv5++5Q7PC2orZepDbWmY0jUDwe9VVJrmp8EhLZbzVKFpyCIs1ZE8h0s0LP1zA==", "dev": true, "dependencies": { @@ -520,7 +535,7 @@ }, "node_modules/@angular-eslint/eslint-plugin": { "version": "12.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-12.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-eslint/eslint-plugin/-/eslint-plugin-12.4.1.tgz", "integrity": "sha512-C4ZINz1KBvhz8xWogqU5BHwcPBtgTj6RghgZ18DqXVME5jzIHgWALwl+C1BidNeFQvASlOTHfI4KjIT2VJPoDQ==", "dev": true, "dependencies": { @@ -534,7 +549,7 @@ }, "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/experimental-utils": { "version": "4.28.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.2.tgz", "integrity": "sha512-MwHPsL6qo98RC55IoWWP8/opTykjTp4JzfPu1VfO2Z0MshNP0UZ1GEV5rYSSnZSUI8VD7iHvtIPVGW5Nfh7klQ==", "dev": true, "dependencies": { @@ -558,7 +573,7 @@ }, "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "dependencies": { @@ -576,7 +591,7 @@ }, "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { "version": "4.28.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/scope-manager/-/scope-manager-4.28.2.tgz", "integrity": "sha512-MqbypNjIkJFEFuOwPWNDjq0nqXAKZvDNNs9yNseoGBB1wYfz1G0WHC2AVOy4XD7di3KCcW3+nhZyN6zruqmp2A==", "dev": true, "dependencies": { @@ -593,7 +608,7 @@ }, "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { "version": "4.28.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/types/-/types-4.28.2.tgz", "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==", "dev": true, "engines": { @@ -606,7 +621,7 @@ }, "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { "version": "4.28.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.2.tgz", "integrity": "sha512-86lLstLvK6QjNZjMoYUBMMsULFw0hPHJlk1fzhAVoNjDBuPVxiwvGuPQq3fsBMCxuDJwmX87tM/AXoadhHRljg==", "dev": true, "dependencies": { @@ -633,7 +648,7 @@ }, "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "dependencies": { @@ -648,7 +663,7 @@ }, "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { "version": "4.28.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.2.tgz", "integrity": "sha512-aT2B4PLyyRDUVUafXzpZFoc0C9t0za4BJAKP5sgWIhG+jHECQZUEjuQSCIwZdiJJ4w4cgu5r3Kh20SOdtEBl0w==", "dev": true, "dependencies": { @@ -665,13 +680,13 @@ }, "node_modules/@angular-eslint/eslint-plugin/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/@angular/cli": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/cli/-/cli-12.2.5.tgz", "integrity": "sha512-O/NqRaFGx2jns03oWwhWBpilV4s7B8Zie6rgo2hJty1T3douGkK5kTO38N4Lebeayw8LTiPhT/JOrQTfFgXSjw==", "dev": true, "hasInstallScript": true, @@ -707,7 +722,7 @@ }, "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { "version": "0.1202.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/architect/-/architect-0.1202.5.tgz", "integrity": "sha512-HiF8RceDrvP7m8Qm53KWVpekESX0UIK4/tOg9mgFMcS/2utRnPzuu4WbfrcY9DRrsoMWLXQs6j/UVXqf8PzXJw==", "dev": true, "dependencies": { @@ -722,7 +737,7 @@ }, "node_modules/@angular/cli/node_modules/@angular-devkit/core": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/core/-/core-12.2.5.tgz", "integrity": "sha512-UBo0Q9nVGPxC+C1PONSzaczPLv5++5Q7PC2orZepDbWmY0jUDwe9VVJrmp8EhLZbzVKFpyCIs1ZE8h0s0LP1zA==", "dev": true, "dependencies": { @@ -741,7 +756,7 @@ }, "node_modules/@angular/common": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/common/-/common-12.2.5.tgz", "integrity": "sha512-iwyaGPx7ILTJn91ed7VtYkvVRRezaZ0EE2V5DzVXwCsBQyzCrBYz/Uo2udVDsJ2FXXhpxa2VjnkW55Uxl9wM0g==", "dependencies": { "tslib": "^2.2.0" @@ -756,7 +771,7 @@ }, "node_modules/@angular/compiler": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/compiler/-/compiler-12.2.5.tgz", "integrity": "sha512-J73E3hao95T8+/+hWuCqGyXs9QCPoSsCTXmSPayFlYJW3QF5SG2vhjnf4SAgtNbUBHQWAIwGKxQTqD3VbtvP1A==", "dependencies": { "tslib": "^2.2.0" @@ -767,7 +782,7 @@ }, "node_modules/@angular/compiler-cli": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/compiler-cli/-/compiler-cli-12.2.5.tgz", "integrity": "sha512-KVpgkWUGZYRPvmJOqY1CZwjvc7VE0DYDPxmvXH/S1C6rzpl/UOTxYtDynxiNzuvLeV0oOnlcOGd4/BmMZJPh/A==", "dependencies": { "@babel/core": "^7.8.6", @@ -801,7 +816,7 @@ }, "node_modules/@angular/compiler-cli/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "engines": { "node": ">=0.10.0" @@ -809,7 +824,7 @@ }, "node_modules/@angular/core": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/core/-/core-12.2.5.tgz", "integrity": "sha512-bwxxEy1UrV+hWzjT6ow/Ge8upebglJwlWuKadPdd3ZVrWKPI0saoUUBv4S8EGiIxyW821GfEbzWzmBYUSUCiGQ==", "dependencies": { "tslib": "^2.2.0" @@ -824,7 +839,7 @@ }, "node_modules/@angular/forms": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/forms/-/forms-12.2.5.tgz", "integrity": "sha512-Sty4MMrmUrm7KYbYYAkA6egwIMFJ8D8G6ds5W79fN7K3B3LGYtMTRuMIBYQeSvdk8AN5+Evt6BUwlL8PMYq9Rg==", "dependencies": { "tslib": "^2.2.0" @@ -841,7 +856,7 @@ }, "node_modules/@angular/localize": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/localize/-/localize-12.2.5.tgz", "integrity": "sha512-1VKwvwO+QYlGblRICREjndVzKKEFhcCw+yvq5uCa6Xcvq+XjlGYYQyeSjefAiGcNB4Srcjx46s9vPdefUw/ETg==", "dependencies": { "@babel/core": "7.8.3", @@ -863,7 +878,7 @@ }, "node_modules/@angular/localize/node_modules/@babel/core": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/core/-/core-7.8.3.tgz", "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==", "dependencies": { "@babel/code-frame": "^7.8.3", @@ -891,24 +906,24 @@ } }, "node_modules/@angular/localize/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "bin": { "semver": "bin/semver" } }, "node_modules/@angular/localize/node_modules/source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/@angular/platform-browser": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/platform-browser/-/platform-browser-12.2.5.tgz", "integrity": "sha512-2Vs+0Zx87lGYvC3Bkzy9eT0yXXvMd0e8vrEJ1oIdxfkRhbE/wTL1+LA8JlT5rROqcZwY4joOPiHC9jVFw6dDCQ==", "dependencies": { "tslib": "^2.2.0" @@ -929,7 +944,7 @@ }, "node_modules/@angular/platform-browser-dynamic": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.5.tgz", "integrity": "sha512-GIAMw+KFYVFFtyvC3Z6znxLCJdZx/IvpfHQVekpQumiv291cng2jSamU3FZjV3xZKXfccS4I4hIXFX85EBMRWA==", "dependencies": { "tslib": "^2.2.0" @@ -946,7 +961,7 @@ }, "node_modules/@angular/router": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/router/-/router-12.2.5.tgz", "integrity": "sha512-rfaHzi6ZrLFqdebEQTMPxVEwLuA8MBGOUzyekhLjGTvKwc7L2/m303LPIDECRFyCSik3EIxGLvzPET0l+DVgAw==", "dependencies": { "tslib": "^2.2.0" @@ -963,7 +978,7 @@ }, "node_modules/@angular/service-worker": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/service-worker/-/service-worker-12.2.5.tgz", "integrity": "sha512-7tzteIgXpAffP0XWfb8lYGbTUdnP36mTxYgxYjG2ebAvCaTfwD5ENvfo3USOGDCun4Vwo64Rg7O5RyeVegyP/g==", "dev": true, "dependencies": { @@ -982,32 +997,33 @@ }, "node_modules/@assemblyscript/loader": { "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@assemblyscript/loader/-/loader-0.10.1.tgz", "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", "dev": true }, "node_modules/@babel/code-frame": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", - "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", + "version": "7.23.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dependencies": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "version": "7.23.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/core/-/core-7.14.8.tgz", "integrity": "sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q==", "dependencies": { "@babel/code-frame": "^7.14.5", @@ -1035,24 +1051,24 @@ } }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/core/node_modules/source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/@babel/generator": { "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/generator/-/generator-7.14.8.tgz", "integrity": "sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==", "dependencies": { "@babel/types": "^7.14.8", @@ -1065,15 +1081,15 @@ }, "node_modules/@babel/generator/node_modules/source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", "dev": true, "dependencies": { @@ -1084,55 +1100,55 @@ } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz", - "integrity": "sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==", + "version": "7.22.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz", - "integrity": "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==", + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz", + "integrity": "sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1142,25 +1158,35 @@ } }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", - "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", - "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", + "version": "7.22.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "regexpu-core": "^4.7.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1169,10 +1195,31 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", - "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", + "version": "0.2.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.4.tgz", + "integrity": "sha512-OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.13.0", @@ -1189,299 +1236,285 @@ } }, "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz", - "integrity": "sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", + "version": "7.23.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dependencies": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name/node_modules/@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", + "version": "7.22.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "dependencies": { - "@babel/types": "^7.15.4" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", + "version": "7.23.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", + "version": "7.22.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", - "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dependencies": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz", - "integrity": "sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==", + "version": "7.22.20", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-wrap-function": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", - "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", + "version": "7.22.20", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz", - "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", + "version": "7.22.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "version": "7.22.20", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "version": "7.23.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz", - "integrity": "sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==", + "version": "7.22.20", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function/node_modules/@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", + "version": "7.22.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helpers/-/helpers-7.23.6.tgz", + "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", "dependencies": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers/node_modules/@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", + "version": "7.22.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "version": "7.23.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -1489,9 +1522,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", - "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==", + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1500,14 +1533,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz", - "integrity": "sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4", - "@babel/plugin-proposal-optional-chaining": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -1518,8 +1551,9 @@ }, "node_modules/@babel/plugin-proposal-async-generator-functions": { "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz", "integrity": "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5", @@ -1534,13 +1568,14 @@ } }, "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", - "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1550,13 +1585,14 @@ } }, "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz", - "integrity": "sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA==", + "version": "7.21.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead.", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -1567,12 +1603,13 @@ } }, "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", - "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead.", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -1583,12 +1620,13 @@ } }, "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", - "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", + "version": "7.18.9", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -1599,12 +1637,13 @@ } }, "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz", - "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead.", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -1615,12 +1654,13 @@ } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", - "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", + "version": "7.20.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1631,12 +1671,13 @@ } }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", - "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -1647,12 +1688,13 @@ } }, "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", - "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -1663,16 +1705,17 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz", - "integrity": "sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==", + "version": "7.20.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", "dev": true, "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.15.4" + "@babel/plugin-transform-parameters": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -1682,12 +1725,13 @@ } }, "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", - "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -1698,13 +1742,14 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", - "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", + "version": "7.21.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -1715,13 +1760,14 @@ } }, "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", - "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1731,14 +1777,15 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz", - "integrity": "sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==", + "version": "7.21.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1749,25 +1796,26 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", - "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz", - "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=4" @@ -1778,7 +1826,7 @@ }, "node_modules/@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "dependencies": { @@ -1790,7 +1838,7 @@ }, "node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "dependencies": { @@ -1802,7 +1850,7 @@ }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "dependencies": { @@ -1814,7 +1862,7 @@ }, "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "dependencies": { @@ -1829,7 +1877,7 @@ }, "node_modules/@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "dependencies": { @@ -1841,7 +1889,7 @@ }, "node_modules/@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, "dependencies": { @@ -1853,7 +1901,7 @@ }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "dependencies": { @@ -1865,7 +1913,7 @@ }, "node_modules/@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "dependencies": { @@ -1877,7 +1925,7 @@ }, "node_modules/@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "dependencies": { @@ -1889,7 +1937,7 @@ }, "node_modules/@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "dependencies": { @@ -1901,7 +1949,7 @@ }, "node_modules/@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "dependencies": { @@ -1913,7 +1961,7 @@ }, "node_modules/@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "dependencies": { @@ -1925,7 +1973,7 @@ }, "node_modules/@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "dependencies": { @@ -1937,7 +1985,7 @@ }, "node_modules/@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "dependencies": { @@ -1949,7 +1997,7 @@ }, "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "dependencies": { @@ -1964,7 +2012,7 @@ }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "dependencies": { @@ -1978,12 +2026,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", - "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1993,12 +2041,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", - "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2009,7 +2057,7 @@ }, "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", "dev": true, "dependencies": { @@ -2025,12 +2073,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", - "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2040,12 +2088,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz", - "integrity": "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==", + "version": "7.23.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2055,17 +2103,19 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz", - "integrity": "sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", + "version": "7.23.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, "engines": { @@ -2076,24 +2126,25 @@ } }, "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", - "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", - "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -2102,13 +2153,27 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-computed-properties/node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", - "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2118,13 +2183,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz", - "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2134,12 +2199,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz", - "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2149,13 +2214,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", - "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2165,12 +2230,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz", - "integrity": "sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==", + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2180,13 +2246,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", - "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2196,12 +2263,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", - "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2211,12 +2278,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", - "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2226,14 +2293,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz", - "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2243,15 +2309,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz", - "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.15.4", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2261,16 +2326,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz", - "integrity": "sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.9", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -2280,13 +2344,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz", - "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2296,12 +2360,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz", - "integrity": "sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2311,12 +2376,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz", - "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2326,13 +2391,30 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", - "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -2342,12 +2424,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz", - "integrity": "sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2357,12 +2439,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", - "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2372,12 +2454,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", - "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dev": true, "dependencies": { - "regenerator-transform": "^0.14.2" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -2387,12 +2470,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz", - "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2403,7 +2486,7 @@ }, "node_modules/@babel/plugin-transform-runtime": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz", "integrity": "sha512-fPMBhh1AV8ZyneiCIA+wYYUH1arzlXR1UMcApjvchDhfKxhy2r2lReJv8uHEyihi4IFIGlr1Pdx7S5fkESDQsg==", "dev": true, "dependencies": { @@ -2422,21 +2505,21 @@ } }, "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", - "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2446,13 +2529,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.15.8.tgz", - "integrity": "sha512-/daZ8s2tNaRekl9YJa9X4bzjpeRZLt122cpgFnQPLGUe61PH8zMEBmYqKkW5xF5JUEh5buEGXJoQpqBmIbpmEQ==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2462,12 +2545,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", - "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2477,12 +2560,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", - "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2492,12 +2575,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", - "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2507,12 +2590,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", - "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2522,13 +2605,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", - "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2539,7 +2622,7 @@ }, "node_modules/@babel/preset-env": { "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/preset-env/-/preset-env-7.14.8.tgz", "integrity": "sha512-a9aOppDU93oArQ51H+B8M1vH+tayZbuBqzjOhntGetZVa+4tTu5jp+XTwqHGG2lxslqomPYVSjIxQkFwXzgnxg==", "dev": true, "dependencies": { @@ -2625,18 +2708,18 @@ } }, "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/@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==", + "version": "0.1.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/preset-modules/-/preset-modules-0.1.6.tgz", + "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", @@ -2646,12 +2729,18 @@ "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "node_modules/@babel/runtime": { "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/runtime/-/runtime-7.14.8.tgz", "integrity": "sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==", "dev": true, "dependencies": { @@ -2663,7 +2752,7 @@ }, "node_modules/@babel/template": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/template/-/template-7.14.5.tgz", "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", "dependencies": { "@babel/code-frame": "^7.14.5", @@ -2675,18 +2764,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/traverse/-/traverse-7.23.6.tgz", + "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -2694,32 +2784,43 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", - "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dependencies": { - "@babel/types": "^7.15.6", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/@babel/traverse/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" + } + }, + "node_modules/@babel/traverse/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2728,38 +2829,38 @@ }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, "node_modules/@chevrotain/types": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-9.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@chevrotain/types/-/types-9.1.0.tgz", "integrity": "sha512-3hbCD1CThkv9gnaSIPq0GUXwKni68e0ph6jIHwCvcWiQ4JB2xi8bFxBain0RF04qHUWuDjgnZLj4rLgimuGO+g==", "dev": true }, "node_modules/@chevrotain/utils": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-9.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@chevrotain/utils/-/utils-9.1.0.tgz", "integrity": "sha512-llLJZ8OAlZrjGlBvamm6Zdo/HmGAcCLq5gx7cSwUX8No+n/8ip+oaC4x33IdZIif8+Rh5dQUIZXmfbSghiOmNQ==", "dev": true }, - "node_modules/@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", "dev": true, "engines": { - "node": ">= 12" + "node": ">=0.1.90" } }, "node_modules/@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "version": "0.8.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "dependencies": { - "@cspotcode/source-map-consumer": "0.8.0" + "@jridgewell/trace-mapping": "0.3.9" }, "engines": { "node": ">=12" @@ -2767,7 +2868,7 @@ }, "node_modules/@csstools/convert-colors": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", "dev": true, "engines": { @@ -2775,9 +2876,9 @@ } }, "node_modules/@dabh/diagnostics": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", - "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", + "version": "2.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", "dev": true, "dependencies": { "colorspace": "1.1.x", @@ -2787,7 +2888,7 @@ }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==", "dev": true, "engines": { @@ -2796,7 +2897,7 @@ }, "node_modules/@eslint/eslintrc": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, "dependencies": { @@ -2816,7 +2917,7 @@ }, "node_modules/@eslint/eslintrc/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { @@ -2831,9 +2932,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "version": "13.24.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2847,13 +2948,13 @@ }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { @@ -2865,7 +2966,7 @@ }, "node_modules/@fortawesome/angular-fontawesome": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.9.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.9.0.tgz", "integrity": "sha512-pJNJqxRTJChkUtywbqRuJRpmK/WNwqFqeN/GMmJmy3gHeCnWQ4SG0BwPJqaWqhi4gqII5dADijGts6wqeusxeQ==", "dependencies": { "tslib": "^2.2.0" @@ -2877,7 +2978,7 @@ }, "node_modules/@fortawesome/fontawesome-common-types": { "version": "0.2.36", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz", "integrity": "sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==", "hasInstallScript": true, "engines": { @@ -2886,7 +2987,7 @@ }, "node_modules/@fortawesome/fontawesome-svg-core": { "version": "1.2.36", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.36.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.36.tgz", "integrity": "sha512-YUcsLQKYb6DmaJjIHdDWpBIGCcyE/W+p/LMGvjQem55Mm2XWVAP5kWTMKWLv9lwpCVjpLxPyOMOyUocP1GxrtA==", "hasInstallScript": true, "dependencies": { @@ -2898,7 +2999,7 @@ }, "node_modules/@fortawesome/free-solid-svg-icons": { "version": "5.15.4", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz", "integrity": "sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==", "hasInstallScript": true, "dependencies": { @@ -2909,14 +3010,14 @@ } }, "node_modules/@hapi/hoek": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==", + "version": "9.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", "dev": true }, "node_modules/@hapi/topo": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@hapi/topo/-/topo-5.1.0.tgz", "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "dev": true, "dependencies": { @@ -2925,7 +3026,7 @@ }, "node_modules/@humanwhocodes/config-array": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dev": true, "dependencies": { @@ -2938,20 +3039,20 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "version": "1.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, "node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "dependencies": { @@ -2967,7 +3068,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "engines": { @@ -2976,7 +3077,7 @@ }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, "engines": { @@ -2984,16 +3085,16 @@ } }, "node_modules/@jest/console": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.3.1.tgz", - "integrity": "sha512-RkFNWmv0iui+qsOr/29q9dyfKTTT5DCuP31kUwg7rmOKPT/ozLeGLKJKVIiOfbiKyleUZKIrHwhmiZWVe8IMdw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^27.3.1", - "jest-util": "^27.3.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", "slash": "^3.0.0" }, "engines": { @@ -3002,7 +3103,7 @@ }, "node_modules/@jest/console/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -3017,7 +3118,7 @@ }, "node_modules/@jest/console/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -3033,7 +3134,7 @@ }, "node_modules/@jest/console/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -3045,13 +3146,13 @@ }, "node_modules/@jest/console/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/@jest/console/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -3060,7 +3161,7 @@ }, "node_modules/@jest/console/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -3071,35 +3172,35 @@ } }, "node_modules/@jest/core": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.3.1.tgz", - "integrity": "sha512-DMNE90RR5QKx0EA+wqe3/TNEwiRpOkhshKNxtLxd4rt3IZpCt+RSL+FoJsGeblRZmqdK4upHA/mKKGPPRAifhg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", "dev": true, "dependencies": { - "@jest/console": "^27.3.1", - "@jest/reporters": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.8.1", "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.3.0", - "jest-config": "^27.3.1", - "jest-haste-map": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.3.1", - "jest-resolve-dependencies": "^27.3.1", - "jest-runner": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", - "jest-watcher": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", "micromatch": "^4.0.4", "rimraf": "^3.0.0", "slash": "^3.0.0", @@ -3119,7 +3220,7 @@ }, "node_modules/@jest/core/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -3134,7 +3235,7 @@ }, "node_modules/@jest/core/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -3150,7 +3251,7 @@ }, "node_modules/@jest/core/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -3162,13 +3263,13 @@ }, "node_modules/@jest/core/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/@jest/core/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -3176,32 +3277,35 @@ } }, "node_modules/@jest/core/node_modules/jest-config": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.3.1.tgz", - "integrity": "sha512-KY8xOIbIACZ/vdYCKSopL44I0xboxC751IX+DXL2+Wx6DKNycyEfV3rryC3BPm5Uq/BBqDoMrKuqLEUNJmMKKg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", "dev": true, "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.3.1", - "@jest/types": "^27.2.5", - "babel-jest": "^27.3.1", + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-circus": "^27.3.1", - "jest-environment-jsdom": "^27.3.1", - "jest-environment-node": "^27.3.1", - "jest-get-type": "^27.3.1", - "jest-jasmine2": "^27.3.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.3.1", - "jest-runner": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", "micromatch": "^4.0.4", - "pretty-format": "^27.3.1" + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -3217,7 +3321,7 @@ }, "node_modules/@jest/core/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -3228,77 +3332,77 @@ } }, "node_modules/@jest/environment": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.3.1.tgz", - "integrity": "sha512-BCKCj4mOVLme6Tanoyc9k0ultp3pnmuyHw73UHRPeeZxirsU/7E3HC4le/VDb/SMzE1JcPnto+XBKFOcoiJzVw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", "dev": true, "dependencies": { - "@jest/fake-timers": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", - "jest-mock": "^27.3.0" + "jest-mock": "^27.5.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.3.1.tgz", - "integrity": "sha512-M3ZFgwwlqJtWZ+QkBG5NmC23A9w+A6ZxNsO5nJxJsKYt4yguBd3i8TpjQz5NfCX91nEve1KqD9RA2Q+Q1uWqoA==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "@sinonjs/fake-timers": "^8.0.1", "@types/node": "*", - "jest-message-util": "^27.3.1", - "jest-mock": "^27.3.0", - "jest-util": "^27.3.1" + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/globals": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.3.1.tgz", - "integrity": "sha512-Q651FWiWQAIFiN+zS51xqhdZ8g9b88nGCobC87argAxA7nMfNQq0Q0i9zTfQYgLa6qFXk2cGANEqfK051CZ8Pg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", "dev": true, "dependencies": { - "@jest/environment": "^27.3.1", - "@jest/types": "^27.2.5", - "expect": "^27.3.1" + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/reporters": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.3.1.tgz", - "integrity": "sha512-m2YxPmL9Qn1emFVgZGEiMwDntDxRRQ2D58tiDQlwYTg5GvbFOKseYCcHtn0WsI8CG4vzPglo3nqbOiT8ySBT/w==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.2", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-instrument": "^5.1.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.3.1", - "jest-resolve": "^27.3.1", - "jest-util": "^27.3.1", - "jest-worker": "^27.3.1", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", "slash": "^3.0.0", "source-map": "^0.6.0", "string-length": "^4.0.1", @@ -3319,7 +3423,7 @@ }, "node_modules/@jest/reporters/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -3334,7 +3438,7 @@ }, "node_modules/@jest/reporters/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -3350,7 +3454,7 @@ }, "node_modules/@jest/reporters/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -3362,22 +3466,47 @@ }, "node_modules/@jest/reporters/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/@jest/reporters/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@jest/reporters/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -3386,7 +3515,7 @@ }, "node_modules/@jest/reporters/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -3397,13 +3526,13 @@ } }, "node_modules/@jest/source-map": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", - "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", "dev": true, "dependencies": { "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "source-map": "^0.6.0" }, "engines": { @@ -3412,7 +3541,7 @@ }, "node_modules/@jest/source-map/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -3420,13 +3549,13 @@ } }, "node_modules/@jest/test-result": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.3.1.tgz", - "integrity": "sha512-mLn6Thm+w2yl0opM8J/QnPTqrfS4FoXsXF2WIWJb2O/GBSyResL71BRuMYbYRsGt7ELwS5JGcEcGb52BNrumgg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", "dev": true, "dependencies": { - "@jest/console": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, @@ -3435,38 +3564,38 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.3.1.tgz", - "integrity": "sha512-siySLo07IMEdSjA4fqEnxfIX8lB/lWYsBPwNFtkOvsFQvmBrL3yj3k3uFNZv/JDyApTakRpxbKLJ3CT8UGVCrA==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", "dev": true, "dependencies": { - "@jest/test-result": "^27.3.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.3.1", - "jest-runtime": "^27.3.1" + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/transform": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.3.1.tgz", - "integrity": "sha512-3fSvQ02kuvjOI1C1ssqMVBKJpZf6nwoCiSu00zAKh5nrp3SptNtZy/8s5deayHnqxhjD9CWDJ+yqQwuQ0ZafXQ==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", "dev": true, "dependencies": { "@babel/core": "^7.1.0", - "@jest/types": "^27.2.5", - "babel-plugin-istanbul": "^6.0.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", "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": "^27.3.1", - "jest-regex-util": "^27.0.6", - "jest-util": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", "micromatch": "^4.0.4", - "pirates": "^4.0.1", + "pirates": "^4.0.4", "slash": "^3.0.0", "source-map": "^0.6.1", "write-file-atomic": "^3.0.0" @@ -3477,7 +3606,7 @@ }, "node_modules/@jest/transform/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -3492,7 +3621,7 @@ }, "node_modules/@jest/transform/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -3508,7 +3637,7 @@ }, "node_modules/@jest/transform/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -3520,13 +3649,13 @@ }, "node_modules/@jest/transform/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/@jest/transform/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -3535,7 +3664,7 @@ }, "node_modules/@jest/transform/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -3544,7 +3673,7 @@ }, "node_modules/@jest/transform/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -3555,9 +3684,9 @@ } }, "node_modules/@jest/types": { - "version": "27.2.5", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz", - "integrity": "sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -3572,7 +3701,7 @@ }, "node_modules/@jest/types/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -3587,7 +3716,7 @@ }, "node_modules/@jest/types/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -3603,7 +3732,7 @@ }, "node_modules/@jest/types/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -3615,13 +3744,13 @@ }, "node_modules/@jest/types/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/@jest/types/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -3630,7 +3759,7 @@ }, "node_modules/@jest/types/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -3640,18 +3769,61 @@ "node": ">=8" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/resolve-uri": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/resolve-uri/-/resolve-uri-1.0.0.tgz", "integrity": "sha512-9oLAnygRMi8Q5QkYEU4XWK04B+nuoXoxjRvRxgjuChkLZFBja0YPSgdZ7dZtwhncLBcQe/I/E+fLuk5qxcYVJA==", "dev": true, "engines": { "node": ">=6.0.0" } }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jsdevtools/coverage-istanbul-loader": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", "dev": true, "dependencies": { @@ -3664,7 +3836,7 @@ }, "node_modules/@kwsites/file-exists": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@kwsites/file-exists/-/file-exists-1.1.1.tgz", "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", "dev": true, "dependencies": { @@ -3673,13 +3845,13 @@ }, "node_modules/@kwsites/promise-deferred": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", "dev": true }, "node_modules/@ng-bootstrap/ng-bootstrap": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-10.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-10.0.0.tgz", "integrity": "sha512-Sz+QaxjuyJYJ+zyUbf0TevgcgVesCPQiiFiggEzxKjzY5R+Hvq3YgryLdXf2r/ryePL+C3FXCcmmKpTM5bfczQ==", "dependencies": { "tslib": "^2.1.0" @@ -3692,9 +3864,34 @@ "rxjs": "^6.5.5" } }, + "node_modules/@ngx-translate/core": { + "version": "13.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@ngx-translate/core/-/core-13.0.0.tgz", + "integrity": "sha512-+tzEp8wlqEnw0Gc7jtVRAJ6RteUjXw6JJR4O65KlnxOmJrCGPI0xjV/lKRnQeU0w4i96PQs/jtpL921Wrb7PWg==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": ">=10.0.0", + "rxjs": ">=6.5.3" + } + }, + "node_modules/@ngx-translate/http-loader": { + "version": "6.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@ngx-translate/http-loader/-/http-loader-6.0.0.tgz", + "integrity": "sha512-LCekn6qCbeXWlhESCxU1rAbZz33WzDG0lI7Ig0pYC1o5YxJWrkU9y3Y4tNi+jakQ7R6YhTR2D3ox6APxDtA0wA==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": ">=10.0.0", + "@ngx-translate/core": ">=13.0.0", + "rxjs": ">=6.5.3" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { @@ -3707,7 +3904,7 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "engines": { @@ -3716,7 +3913,7 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { @@ -3729,7 +3926,7 @@ }, "node_modules/@npmcli/arborist": { "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-2.10.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/arborist/-/arborist-2.10.0.tgz", "integrity": "sha512-CLnD+zXG9oijEEzViimz8fbOoFVb7hoypiaf7p6giJhvYtrxLAyY3cZAMPIFQvsG731+02eMDp3LqVBNo7BaZA==", "dev": true, "dependencies": { @@ -3775,7 +3972,7 @@ }, "node_modules/@npmcli/git": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/git/-/git-2.1.0.tgz", "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", "dev": true, "dependencies": { @@ -3789,9 +3986,27 @@ "which": "^2.0.2" } }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/git/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@npmcli/installed-package-contents": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", "dev": true, "dependencies": { @@ -3807,7 +4022,7 @@ }, "node_modules/@npmcli/map-workspaces": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/map-workspaces/-/map-workspaces-1.0.4.tgz", "integrity": "sha512-wVR8QxhyXsFcD/cORtJwGQodeeaDf0OxcHie8ema4VgFeqwYkFsDPnSrIRSytX8xR6nKPAH89WnwTcaU608b/Q==", "dev": true, "dependencies": { @@ -3822,7 +4037,7 @@ }, "node_modules/@npmcli/metavuln-calculator": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/metavuln-calculator/-/metavuln-calculator-1.1.1.tgz", "integrity": "sha512-9xe+ZZ1iGVaUovBVFI9h3qW+UuECUzhvZPxK9RaEA2mjU26o5D0JloGYWwLYvQELJNmBdQB6rrpuN8jni6LwzQ==", "dev": true, "dependencies": { @@ -3833,8 +4048,9 @@ }, "node_modules/@npmcli/move-file": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, "dependencies": { "mkdirp": "^1.0.4", @@ -3846,19 +4062,19 @@ }, "node_modules/@npmcli/name-from-folder": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz", "integrity": "sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==", "dev": true }, "node_modules/@npmcli/node-gyp": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", "dev": true }, "node_modules/@npmcli/package-json": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/package-json/-/package-json-1.0.1.tgz", "integrity": "sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==", "dev": true, "dependencies": { @@ -3867,7 +4083,7 @@ }, "node_modules/@npmcli/promise-spawn": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", "dev": true, "dependencies": { @@ -3876,7 +4092,7 @@ }, "node_modules/@npmcli/run-script": { "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/run-script/-/run-script-1.8.6.tgz", "integrity": "sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g==", "dev": true, "dependencies": { @@ -3888,7 +4104,7 @@ }, "node_modules/@octokit/auth-token": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/auth-token/-/auth-token-2.5.0.tgz", "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", "dev": true, "dependencies": { @@ -3896,14 +4112,14 @@ } }, "node_modules/@octokit/core": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", - "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", + "version": "3.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/core/-/core-3.6.0.tgz", + "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", "dev": true, "dependencies": { "@octokit/auth-token": "^2.4.4", "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.0", + "@octokit/request": "^5.6.3", "@octokit/request-error": "^2.0.5", "@octokit/types": "^6.0.3", "before-after-hook": "^2.2.0", @@ -3912,7 +4128,7 @@ }, "node_modules/@octokit/endpoint": { "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/endpoint/-/endpoint-6.0.12.tgz", "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", "dev": true, "dependencies": { @@ -3923,7 +4139,7 @@ }, "node_modules/@octokit/endpoint/node_modules/is-plain-object": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, "engines": { @@ -3932,7 +4148,7 @@ }, "node_modules/@octokit/graphql": { "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/graphql/-/graphql-4.8.0.tgz", "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", "dev": true, "dependencies": { @@ -3942,18 +4158,18 @@ } }, "node_modules/@octokit/openapi-types": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz", - "integrity": "sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==", + "version": "12.11.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==", "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz", - "integrity": "sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==", + "version": "2.21.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", + "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", "dev": true, "dependencies": { - "@octokit/types": "^6.34.0" + "@octokit/types": "^6.40.0" }, "peerDependencies": { "@octokit/core": ">=2" @@ -3961,7 +4177,7 @@ }, "node_modules/@octokit/plugin-request-log": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", "dev": true, "peerDependencies": { @@ -3969,12 +4185,12 @@ } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz", - "integrity": "sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==", + "version": "5.16.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", + "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", "dev": true, "dependencies": { - "@octokit/types": "^6.34.0", + "@octokit/types": "^6.39.0", "deprecation": "^2.3.1" }, "peerDependencies": { @@ -3982,22 +4198,22 @@ } }, "node_modules/@octokit/request": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.2.tgz", - "integrity": "sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA==", + "version": "5.6.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", "dev": true, "dependencies": { "@octokit/endpoint": "^6.0.1", "@octokit/request-error": "^2.1.0", "@octokit/types": "^6.16.1", "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.1", + "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" } }, "node_modules/@octokit/request-error": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/request-error/-/request-error-2.1.0.tgz", "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", "dev": true, "dependencies": { @@ -4008,7 +4224,7 @@ }, "node_modules/@octokit/request/node_modules/is-plain-object": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, "engines": { @@ -4017,7 +4233,7 @@ }, "node_modules/@octokit/rest": { "version": "18.12.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/rest/-/rest-18.12.0.tgz", "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", "dev": true, "dependencies": { @@ -4028,29 +4244,29 @@ } }, "node_modules/@octokit/types": { - "version": "6.34.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz", - "integrity": "sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==", + "version": "6.41.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^11.2.0" + "@octokit/openapi-types": "^12.11.0" } }, "node_modules/@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "version": "1.0.0-next.24", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@polka/url/-/url-1.0.0-next.24.tgz", + "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==", "dev": true }, "node_modules/@scarf/scarf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.1.1.tgz", - "integrity": "sha512-VGbKDbk1RFIaSmdVb0cNjjWJoRWRI/Weo23AjRCC2nryO0iAS8pzsToJfPVPtVs74WHw4L1UTADNdIYRLkirZQ==", + "version": "1.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@scarf/scarf/-/scarf-1.3.0.tgz", + "integrity": "sha512-lHKK8M5CTcpFj2hZDB3wIjb0KAbEOgDmiJGDv1WBRfQgRm/a8/XMEkG/N1iM01xgbUDsPQwi42D+dFo1XPAKew==", "hasInstallScript": true }, "node_modules/@schematics/angular": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@schematics/angular/-/angular-12.2.5.tgz", "integrity": "sha512-Ln2GyO7Y00PrQKjqCONCDb4dwGzGboH3zIJvicWzFO+ZgkNLr/dsitGKm8b8OfR/UEiBcnK72xwPj9FWfXA4EQ==", "dev": true, "dependencies": { @@ -4066,7 +4282,7 @@ }, "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/core/-/core-12.2.5.tgz", "integrity": "sha512-UBo0Q9nVGPxC+C1PONSzaczPLv5++5Q7PC2orZepDbWmY0jUDwe9VVJrmp8EhLZbzVKFpyCIs1ZE8h0s0LP1zA==", "dev": true, "dependencies": { @@ -4084,47 +4300,53 @@ } }, "node_modules/@sideway/address": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.2.tgz", - "integrity": "sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA==", + "version": "4.1.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", "dev": true, "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==", + "version": "3.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", "dev": true }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", "dev": true }, "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz", - "integrity": "sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew==", + "version": "8.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.7.0" } }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, "node_modules/@tootallnate/once": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true, "engines": { @@ -4133,7 +4355,7 @@ }, "node_modules/@trysound/sax": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "dev": true, "engines": { @@ -4141,55 +4363,55 @@ } }, "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "version": "1.0.9", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", "dev": true }, "node_modules/@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "version": "1.0.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true }, "node_modules/@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "version": "1.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "dev": true }, "node_modules/@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "version": "1.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, "node_modules/@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", + "version": "7.20.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "node_modules/@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", + "version": "7.6.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "version": "7.4.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -4197,17 +4419,17 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "version": "7.20.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", "dev": true, "dependencies": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.20.7" } }, "node_modules/@types/concat-stream": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/concat-stream/-/concat-stream-1.6.1.tgz", "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", "dev": true, "dependencies": { @@ -4215,9 +4437,9 @@ } }, "node_modules/@types/eslint": { - "version": "7.28.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.1.tgz", - "integrity": "sha512-XhZKznR3i/W5dXqUhgU9fFdJekufbeBd5DALmkuXoeFcjbQcPk+2cL+WLHf6Q81HWAnM2vrslIHpGVyCAviRwg==", + "version": "7.29.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", "dev": true, "dependencies": { "@types/estree": "*", @@ -4225,9 +4447,9 @@ } }, "node_modules/@types/eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "version": "3.7.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, "dependencies": { "@types/eslint": "*", @@ -4235,30 +4457,30 @@ } }, "node_modules/@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "version": "1.0.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, "node_modules/@types/expect": { "version": "1.20.4", - "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/expect/-/expect-1.20.4.tgz", "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", "dev": true }, "node_modules/@types/form-data": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", + "version": "7.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, "dependencies": { "@types/minimatch": "*", @@ -4266,33 +4488,33 @@ } }, "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "version": "4.1.9", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "version": "2.0.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "version": "3.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "version": "3.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, "dependencies": { "@types/istanbul-lib-report": "*" @@ -4300,7 +4522,7 @@ }, "node_modules/@types/jest": { "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/jest/-/jest-27.0.1.tgz", "integrity": "sha512-HTLpVXHrY69556ozYkcq47TtQJXpcWAWfkoqz+ZGz2JnmZhzlRjprCIyFnetSy8gpDWwTTGBcRVv1J1I1vBrHw==", "dev": true, "dependencies": { @@ -4309,69 +4531,75 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "version": "7.0.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "node_modules/@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "node_modules/@types/minimatch": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/minimatch/-/minimatch-3.0.5.tgz", "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", "dev": true }, "node_modules/@types/node": { "version": "16.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/node/-/node-16.9.1.tgz", "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==", "dev": true }, "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "version": "2.4.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true }, "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "version": "4.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "dev": true }, "node_modules/@types/prettier": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.1.tgz", - "integrity": "sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw==", + "version": "2.7.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", "dev": true }, "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "version": "6.9.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==", "dev": true }, "node_modules/@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==", + "version": "0.1.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/source-list-map/-/source-list-map-0.1.6.tgz", + "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==", "dev": true }, "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "version": "2.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", "dev": true }, "node_modules/@types/vinyl": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.6.tgz", - "integrity": "sha512-ayJ0iOCDNHnKpKTgBG6Q6JOnHTj9zFta+3j2b8Ejza0e4cvRyMn0ZoLEmbPrTHe5YYRlDYPvPWVdV4cTaRyH7g==", + "version": "2.0.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/vinyl/-/vinyl-2.0.11.tgz", + "integrity": "sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==", "dev": true, "dependencies": { "@types/expect": "^1.20.4", @@ -4379,9 +4607,9 @@ } }, "node_modules/@types/webpack-sources": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.9.tgz", - "integrity": "sha512-bvzMnzqoK16PQIC8AYHNdW45eREJQMd6WG/msQWX5V2+vZmODCOPb4TJcbgRljTZZTwTM4wUMcsI8FftNA7new==", + "version": "0.1.12", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/webpack-sources/-/webpack-sources-0.1.12.tgz", + "integrity": "sha512-+vRVqE3LzMLLVPgZHUeI8k1YmvgEky+MOir5fQhKvFxpB8uZ0CFnGqxkRAmf8jvNhUBQzhuGZpIMNWZDeEyDIA==", "dev": true, "dependencies": { "@types/node": "*", @@ -4391,7 +4619,7 @@ }, "node_modules/@types/webpack-sources/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -4399,23 +4627,23 @@ } }, "node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "version": "16.0.9", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", "dev": true, "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", + "version": "21.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz", "integrity": "sha512-UDqhWmd5i0TvPLmbK5xY3UZB0zEGseF+DHPghZ37Sb83Qd3p8ujhvAtkU4OF46Ka5Pm5kWvFIx0cCTBFKo0alA==", "dev": true, "dependencies": { @@ -4446,13 +4674,13 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "dependencies": { @@ -4467,7 +4695,7 @@ }, "node_modules/@typescript-eslint/experimental-utils": { "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz", "integrity": "sha512-NtoPsqmcSsWty0mcL5nTZXMf7Ei0Xr2MT8jWjXMVgRK0/1qeQ2jZzLFUh4QtyJ4+/lPUyMw5cSfeeME+Zrtp9Q==", "dev": true, "dependencies": { @@ -4491,7 +4719,7 @@ }, "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "dependencies": { @@ -4509,7 +4737,7 @@ }, "node_modules/@typescript-eslint/parser": { "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.31.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/parser/-/parser-4.31.1.tgz", "integrity": "sha512-dnVZDB6FhpIby6yVbHkwTKkn2ypjVIfAR9nh+kYsA/ZL0JlTsd22BiDjouotisY3Irmd3OW1qlk9EI5R8GrvRQ==", "dev": true, "dependencies": { @@ -4536,7 +4764,7 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz", "integrity": "sha512-N1Uhn6SqNtU2XpFSkD4oA+F0PfKdWHyr4bTX0xTj8NRx1314gBDRL1LUuZd5+L3oP+wo6hCbZpaa1in6SwMcVQ==", "dev": true, "dependencies": { @@ -4553,7 +4781,7 @@ }, "node_modules/@typescript-eslint/types": { "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/types/-/types-4.31.1.tgz", "integrity": "sha512-kixltt51ZJGKENNW88IY5MYqTBA8FR0Md8QdGbJD2pKZ+D5IvxjTYDNtJPDxFBiXmka2aJsITdB1BtO1fsgmsQ==", "dev": true, "engines": { @@ -4566,7 +4794,7 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz", "integrity": "sha512-EGHkbsUvjFrvRnusk6yFGqrqMBTue5E5ROnS5puj3laGQPasVUgwhrxfcgkdHNFECHAewpvELE1Gjv0XO3mdWg==", "dev": true, "dependencies": { @@ -4593,13 +4821,13 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "dependencies": { @@ -4614,7 +4842,7 @@ }, "node_modules/@typescript-eslint/visitor-keys": { "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz", "integrity": "sha512-PCncP8hEqKw6SOJY+3St4LVtoZpPPn+Zlpm7KW5xnviMhdqcsBty4Lsg4J/VECpJjw1CkROaZhH4B8M1OfnXTQ==", "dev": true, "dependencies": { @@ -4631,7 +4859,7 @@ }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/ast/-/ast-1.11.1.tgz", "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", "dev": true, "dependencies": { @@ -4641,25 +4869,25 @@ }, "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", "dev": true, "dependencies": { @@ -4670,13 +4898,13 @@ }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", "dev": true, "dependencies": { @@ -4688,7 +4916,7 @@ }, "node_modules/@webassemblyjs/ieee754": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", "dev": true, "dependencies": { @@ -4697,7 +4925,7 @@ }, "node_modules/@webassemblyjs/leb128": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", "dev": true, "dependencies": { @@ -4706,13 +4934,13 @@ }, "node_modules/@webassemblyjs/utf8": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", "dev": true, "dependencies": { @@ -4728,7 +4956,7 @@ }, "node_modules/@webassemblyjs/wasm-gen": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "dev": true, "dependencies": { @@ -4741,7 +4969,7 @@ }, "node_modules/@webassemblyjs/wasm-opt": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", "dev": true, "dependencies": { @@ -4753,7 +4981,7 @@ }, "node_modules/@webassemblyjs/wasm-parser": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", "dev": true, "dependencies": { @@ -4767,7 +4995,7 @@ }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "dev": true, "dependencies": { @@ -4777,42 +5005,43 @@ }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, "node_modules/@xtuc/long": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "version": "2.0.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", "dev": true }, "node_modules/abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { "node": ">= 0.6" @@ -4820,7 +5049,7 @@ }, "node_modules/acorn": { "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, "bin": { @@ -4832,7 +5061,7 @@ }, "node_modules/acorn-globals": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn-globals/-/acorn-globals-6.0.0.tgz", "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", "dev": true, "dependencies": { @@ -4842,7 +5071,7 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "peerDependencies": { @@ -4851,7 +5080,7 @@ }, "node_modules/acorn-walk": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn-walk/-/acorn-walk-7.2.0.tgz", "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true, "engines": { @@ -4860,7 +5089,7 @@ }, "node_modules/adjust-sourcemap-loader": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", "dev": true, "dependencies": { @@ -4873,13 +5102,13 @@ }, "node_modules/after": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/after/-/after-0.8.2.tgz", + "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==", "dev": true }, "node_modules/agent-base": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "dependencies": { @@ -4890,13 +5119,11 @@ } }, "node_modules/agentkeepalive": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", - "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", + "version": "4.5.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", "dev": true, "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", "humanize-ms": "^1.2.1" }, "engines": { @@ -4905,7 +5132,7 @@ }, "node_modules/aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "dependencies": { @@ -4918,7 +5145,7 @@ }, "node_modules/ajv": { "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-8.6.2.tgz", "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", "dev": true, "dependencies": { @@ -4934,7 +5161,7 @@ }, "node_modules/ajv-errors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", "dev": true, "peerDependencies": { @@ -4943,7 +5170,7 @@ }, "node_modules/ajv-formats": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-formats/-/ajv-formats-2.1.0.tgz", "integrity": "sha512-USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q==", "dev": true, "dependencies": { @@ -4958,15 +5185,9 @@ } } }, - "node_modules/alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, "node_modules/ansi-colors": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, "engines": { @@ -4975,7 +5196,7 @@ }, "node_modules/ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "dependencies": { @@ -4990,8 +5211,8 @@ }, "node_modules/ansi-html": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==", "dev": true, "engines": [ "node >= 0.8.0" @@ -5002,7 +5223,7 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" @@ -5010,7 +5231,7 @@ }, "node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dependencies": { "color-convert": "^1.9.0" @@ -5021,17 +5242,17 @@ }, "node_modules/ansi-wrap": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -5042,13 +5263,13 @@ }, "node_modules/aproba": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, "node_modules/are-we-there-yet": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", "dev": true, "dependencies": { @@ -5057,9 +5278,9 @@ } }, "node_modules/are-we-there-yet/node_modules/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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -5071,9 +5292,15 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/are-we-there-yet/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/are-we-there-yet/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { @@ -5082,13 +5309,13 @@ }, "node_modules/arg": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, "node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "dependencies": { @@ -5097,8 +5324,8 @@ }, "node_modules/arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5106,7 +5333,7 @@ }, "node_modules/arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true, "engines": { @@ -5115,8 +5342,8 @@ }, "node_modules/arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5124,7 +5351,7 @@ }, "node_modules/array-differ": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-differ/-/array-differ-3.0.0.tgz", "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", "dev": true, "engines": { @@ -5133,13 +5360,13 @@ }, "node_modules/array-flatten": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, "engines": { @@ -5148,8 +5375,8 @@ }, "node_modules/array-uniq": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5157,8 +5384,8 @@ }, "node_modules/array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5166,13 +5393,13 @@ }, "node_modules/arraybuffer.slice": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", "dev": true }, "node_modules/arrify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arrify/-/arrify-2.0.1.tgz", "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true, "engines": { @@ -5181,14 +5408,14 @@ }, "node_modules/asap": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true }, "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "version": "0.2.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, "dependencies": { "safer-buffer": "~2.1.0" @@ -5196,8 +5423,8 @@ }, "node_modules/assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "dev": true, "engines": { "node": ">=0.8" @@ -5205,8 +5432,8 @@ }, "node_modules/assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5214,7 +5441,7 @@ }, "node_modules/astral-regex": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, "engines": { @@ -5222,24 +5449,30 @@ } }, "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, "dependencies": { "lodash": "^4.17.14" } }, "node_modules/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 + "version": "1.0.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] }, "node_modules/async-each-series": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", - "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", "dev": true, "engines": { "node": ">=0.8.0" @@ -5247,19 +5480,19 @@ }, "node_modules/async-limiter": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", "dev": true }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, "node_modules/atob": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true, "bin": { @@ -5271,7 +5504,7 @@ }, "node_modules/atomically": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/atomically/-/atomically-1.7.0.tgz", "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", "dev": true, "engines": { @@ -5280,7 +5513,7 @@ }, "node_modules/autoprefixer": { "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/autoprefixer/-/autoprefixer-9.8.8.tgz", "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", "dev": true, "dependencies": { @@ -5300,15 +5533,9 @@ "url": "https://tidelift.com/funding/github/npm/autoprefixer" } }, - "node_modules/autoprefixer/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/autoprefixer/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -5325,7 +5552,7 @@ }, "node_modules/autoprefixer/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -5334,7 +5561,7 @@ }, "node_modules/aws-sdk": { "version": "2.987.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.987.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aws-sdk/-/aws-sdk-2.987.0.tgz", "integrity": "sha512-XgMrHWHE3aKg11D4QSlpyLvsGw6mHHiUQuowbswd11k89Q6wEfA+jMbYMC7/jsx3LrH9EKti70qhfZyw/wQIfg==", "dev": true, "hasInstallScript": true, @@ -5355,7 +5582,7 @@ }, "node_modules/aws-sdk/node_modules/uuid": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, @@ -5365,22 +5592,22 @@ }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "dev": true, "engines": { "node": "*" } }, "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "version": "1.12.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", "dev": true }, "node_modules/axios": { "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/axios/-/axios-0.21.4.tgz", "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "dev": true, "dependencies": { @@ -5388,18 +5615,18 @@ } }, "node_modules/babel-jest": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.3.1.tgz", - "integrity": "sha512-SjIF8hh/ir0peae2D6S6ZKRhUy7q/DnpH7k/V6fT4Bgs/LXXUztOpX4G2tCgq8mLo5HA9mN6NmlFMeYtKmIsTQ==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", "dev": true, "dependencies": { - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.2.0", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "slash": "^3.0.0" }, "engines": { @@ -5411,7 +5638,7 @@ }, "node_modules/babel-jest/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -5426,7 +5653,7 @@ }, "node_modules/babel-jest/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -5442,7 +5669,7 @@ }, "node_modules/babel-jest/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -5454,13 +5681,13 @@ }, "node_modules/babel-jest/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/babel-jest/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -5469,7 +5696,7 @@ }, "node_modules/babel-jest/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -5481,7 +5708,7 @@ }, "node_modules/babel-loader": { "version": "8.2.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-loader/-/babel-loader-8.2.2.tgz", "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", "dev": true, "dependencies": { @@ -5499,9 +5726,9 @@ } }, "node_modules/babel-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "dependencies": { "minimist": "^1.2.0" @@ -5511,9 +5738,9 @@ } }, "node_modules/babel-loader/node_modules/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==", + "version": "1.4.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", "dev": true, "dependencies": { "big.js": "^5.2.2", @@ -5524,18 +5751,9 @@ "node": ">=4.0.0" } }, - "node_modules/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, - "dependencies": { - "object.assign": "^4.1.0" - } - }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "dependencies": { @@ -5550,15 +5768,15 @@ } }, "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.0.4.tgz", - "integrity": "sha512-W6jJF9rLGEISGoCyXRqa/JCGQGmmxPO10TMu7izaUTynxvBvTjqzAIIGCK9USBmIbQAaSWD6XJPrM9Pv5INknw==", + "version": "5.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" }, "engines": { @@ -5566,18 +5784,18 @@ } }, "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/babel-plugin-jest-hoist": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.2.0.tgz", - "integrity": "sha512-TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", "dev": true, "dependencies": { "@babel/template": "^7.3.3", @@ -5590,13 +5808,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", - "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", + "version": "0.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.3.tgz", + "integrity": "sha512-NDZ0auNRzmAfE1oDDPW2JhzIMXUk+FFe2ICejmt5T4ocKgiQx3e0VCRx9NCAidcMtL2RUZaWtXnmjTCkx0tcbA==", "dev": true, "dependencies": { "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.2", + "@babel/helper-define-polyfill-provider": "^0.2.4", "semver": "^6.1.1" }, "peerDependencies": { @@ -5604,9 +5822,9 @@ } }, "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -5614,7 +5832,7 @@ }, "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", "dev": true, "dependencies": { @@ -5626,12 +5844,12 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", - "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", + "version": "0.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.3.tgz", + "integrity": "sha512-JVE78oRZPKFIeUqFGrSORNzQnrDwZR16oiWeGM8ZyjBn2XAT5OjP+wXx5ESuo33nUsFUEJYjtklnsKbxW5L+7g==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.2.2" + "@babel/helper-define-polyfill-provider": "^0.2.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -5639,7 +5857,7 @@ }, "node_modules/babel-preset-current-node-syntax": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", "dev": true, "dependencies": { @@ -5661,12 +5879,12 @@ } }, "node_modules/babel-preset-jest": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.2.0.tgz", - "integrity": "sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^27.2.0", + "babel-plugin-jest-hoist": "^27.5.1", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { @@ -5678,18 +5896,18 @@ }, "node_modules/backo2": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==", "dev": true }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "dependencies": { @@ -5707,8 +5925,8 @@ }, "node_modules/base/node_modules/define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, "dependencies": { "is-descriptor": "^1.0.0" @@ -5719,8 +5937,8 @@ }, "node_modules/base64-arraybuffer": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg==", "dev": true, "engines": { "node": ">= 0.6.0" @@ -5728,7 +5946,7 @@ }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true, "funding": [ @@ -5748,7 +5966,7 @@ }, "node_modules/base64id": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/base64id/-/base64id-2.0.0.tgz", "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true, "engines": { @@ -5757,28 +5975,28 @@ }, "node_modules/batch": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, "dependencies": { "tweetnacl": "^0.14.3" } }, "node_modules/before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", + "version": "2.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", "dev": true }, "node_modules/big.js": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, "engines": { @@ -5787,7 +6005,7 @@ }, "node_modules/bin-links": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bin-links/-/bin-links-2.3.0.tgz", "integrity": "sha512-JzrOLHLwX2zMqKdyYZjkDgQGT+kHDkIhv2/IK2lJ00qLxV4TmFoHi8drDBb6H5Zrz1YfgHkai4e2MGPqnoUhqA==", "dev": true, "dependencies": { @@ -5804,16 +6022,16 @@ }, "node_modules/binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "engines": { "node": ">=8" } }, "node_modules/binaryextensions": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.18.0.tgz", - "integrity": "sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==", + "version": "4.19.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/binaryextensions/-/binaryextensions-4.19.0.tgz", + "integrity": "sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==", "dev": true, "engines": { "node": ">=0.8" @@ -5824,7 +6042,7 @@ }, "node_modules/bindings": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, "optional": true, @@ -5834,7 +6052,7 @@ }, "node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "dependencies": { @@ -5845,7 +6063,7 @@ }, "node_modules/bl/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ @@ -5869,85 +6087,94 @@ }, "node_modules/blob": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/blob/-/blob-0.0.5.tgz", "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", "dev": true }, "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "version": "1.20.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, "dependencies": { - "bytes": "3.1.0", + "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/body-parser/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, - "node_modules/body-parser/node_modules/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==", + "node_modules/body-parser/node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, "engines": { - "node": ">= 0.6" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/body-parser/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/body-parser/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/body-parser/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "version": "6.11.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/body-parser/node_modules/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==", + "version": "2.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -5955,19 +6182,10 @@ "node": ">= 0.8" } }, - "node_modules/body-parser/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/bonjour": { "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", "dev": true, "dependencies": { "array-flatten": "^2.1.0", @@ -5980,13 +6198,13 @@ }, "node_modules/boolbase": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, "node_modules/bootstrap": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bootstrap/-/bootstrap-4.6.0.tgz", "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==", "funding": { "type": "opencollective", @@ -5999,7 +6217,7 @@ }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { "balanced-match": "^1.0.0", @@ -6008,7 +6226,7 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dependencies": { "fill-range": "^7.0.1" @@ -6019,13 +6237,13 @@ }, "node_modules/browser-process-hrtime": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, "node_modules/browser-sync": { "version": "2.27.5", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/browser-sync/-/browser-sync-2.27.5.tgz", "integrity": "sha512-0GMEPDqccbTxwYOUGCk5AZloDj9I/1eDZCLXUKXu7iBJPznGGOnMHs88mrhaFL0fTA0R23EmsXX9nLZP+k5YzA==", "dev": true, "dependencies": { @@ -6068,58 +6286,107 @@ } }, "node_modules/browser-sync-client": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.5.tgz", - "integrity": "sha512-l2jtf60/exv0fQiZkhi3z8RgexYYLGS7DVDnyepkrp+oFAPlKW69daL6NrVSgrwu6lzSTCCTAiPXnUSrQ57e/Q==", + "version": "2.29.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/browser-sync-client/-/browser-sync-client-2.29.3.tgz", + "integrity": "sha512-4tK5JKCl7v/3aLbmCBMzpufiYLsB1+UI+7tUXCCp5qF0AllHy/jAqYu6k7hUF3hYtlClKpxExWaR+rH+ny07wQ==", "dev": true, "dependencies": { "etag": "1.8.1", "fresh": "0.5.2", - "mitt": "^1.1.3", - "rxjs": "^5.5.6" + "mitt": "^1.1.3" }, "engines": { "node": ">=8.0.0" } }, - "node_modules/browser-sync-client/node_modules/rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "node_modules/browser-sync-ui": { + "version": "2.29.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz", + "integrity": "sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg==", + "dev": true, + "dependencies": { + "async-each-series": "0.1.1", + "chalk": "4.1.2", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^4.4.1", + "stream-throttle": "^0.1.3" + } + }, + "node_modules/browser-sync-ui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "symbol-observable": "1.0.1" + "color-convert": "^2.0.1" }, "engines": { - "npm": ">=2.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/browser-sync-client/node_modules/symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "node_modules/browser-sync-ui/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/browser-sync-ui": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.5.tgz", - "integrity": "sha512-KxBJhQ6XNbQ8w8UlkPa9/J5R0nBHgHuJUtDpEXQx1jBapDy32WGzD0NENDozP4zGNvJUgZk3N80hqB7YCieC3g==", + "node_modules/browser-sync-ui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "async-each-series": "0.1.1", - "connect-history-api-fallback": "^1", - "immutable": "^3", - "server-destroy": "1.0.1", - "socket.io-client": "^2.4.0", - "stream-throttle": "^0.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/browser-sync-ui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/browser-sync-ui/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync-ui/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/browser-sync-webpack-plugin": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/browser-sync-webpack-plugin/-/browser-sync-webpack-plugin-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/browser-sync-webpack-plugin/-/browser-sync-webpack-plugin-2.3.0.tgz", "integrity": "sha512-MDvuRrTCtoL11dTdwMymo9CNJvYxJoW67gOO61cThfzHNX40S5WcBU+0bVQ86ll7r7aNpNgyzxF7RtnXMTDbyA==", "dev": true, "dependencies": { @@ -6132,7 +6399,7 @@ }, "node_modules/browser-sync/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -6147,7 +6414,7 @@ }, "node_modules/browser-sync/node_modules/cliui": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "dependencies": { @@ -6158,7 +6425,7 @@ }, "node_modules/browser-sync/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -6170,13 +6437,13 @@ }, "node_modules/browser-sync/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/browser-sync/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "dependencies": { @@ -6190,13 +6457,13 @@ }, "node_modules/browser-sync/node_modules/y18n": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "node_modules/browser-sync/node_modules/yargs": { "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "dependencies": { @@ -6218,7 +6485,7 @@ }, "node_modules/browser-sync/node_modules/yargs-parser": { "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "dependencies": { @@ -6230,30 +6497,39 @@ } }, "node_modules/browserslist": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.4.tgz", - "integrity": "sha512-Zg7RpbZpIJRW3am9Lyckue7PLytvVxxhJj1CaJVlCWENsGEAOlnlt8X0ZxGRPp7Bt9o8tIRM5SEXy4BCPMJjLQ==", + "version": "4.22.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "caniuse-lite": "^1.0.30001265", - "electron-to-chromium": "^1.3.867", - "escalade": "^3.1.1", - "node-releases": "^2.0.0", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" } }, "node_modules/bs-logger": { "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bs-logger/-/bs-logger-0.2.6.tgz", "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, "dependencies": { @@ -6265,19 +6541,19 @@ }, "node_modules/bs-recipes": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", - "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", "dev": true }, "node_modules/bs-snippet-injector": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", - "integrity": "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", + "integrity": "sha512-4u8IgB+L9L+S5hknOj3ddNSb42436gsnGm1AuM15B7CdbkpQTyVWgIM5/JUBiKiRwGOR86uo0Lu/OsX+SAlJmw==", "dev": true }, "node_modules/bser": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "dependencies": { @@ -6286,7 +6562,7 @@ }, "node_modules/buffer": { "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/buffer/-/buffer-4.9.2.tgz", "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, "dependencies": { @@ -6297,26 +6573,26 @@ }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "node_modules/buffer-indexof": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/buffer-indexof/-/buffer-indexof-1.1.1.tgz", "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", "dev": true }, "node_modules/builtins": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", "dev": true }, "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "version": "3.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, "engines": { "node": ">= 0.8" @@ -6324,7 +6600,7 @@ }, "node_modules/cacache": { "version": "15.2.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cacache/-/cacache-15.2.0.tgz", "integrity": "sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw==", "dev": true, "dependencies": { @@ -6350,9 +6626,27 @@ "node": ">= 10" } }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "dependencies": { @@ -6371,13 +6665,14 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6385,7 +6680,7 @@ }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "engines": { @@ -6394,7 +6689,7 @@ }, "node_modules/camelcase": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, "engines": { @@ -6403,7 +6698,7 @@ }, "node_modules/caniuse-api": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "dev": true, "dependencies": { @@ -6414,28 +6709,38 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001269", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001269.tgz", - "integrity": "sha512-UOy8okEVs48MyHYgV+RdW1Oiudl1H6KolybD6ZquD0VcrPSgj25omXO1S7rDydjpqaISCwA8Pyx+jUQKZwWO5w==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } + "version": "1.0.30001572", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", + "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] }, "node_modules/canonical-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/canonical-path/-/canonical-path-1.0.0.tgz", "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==" }, "node_modules/caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", "dev": true }, "node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dependencies": { "ansi-styles": "^3.2.1", @@ -6448,7 +6753,7 @@ }, "node_modules/char-regex": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, "engines": { @@ -6457,13 +6762,13 @@ }, "node_modules/chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, "node_modules/chevrotain": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-9.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chevrotain/-/chevrotain-9.0.2.tgz", "integrity": "sha512-6ZjgUdGvU4j1n1b2hTjb79Vr2V+qNtmP7f8FVt79+kdAYcUj2QfYNwI8ycCVsgHD/dIeO5Vr1hckkkfliVQTfg==", "dev": true, "dependencies": { @@ -6473,9 +6778,15 @@ } }, "node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "version": "3.5.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -6494,7 +6805,7 @@ }, "node_modules/chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, "engines": { @@ -6503,7 +6814,7 @@ }, "node_modules/chrome-trace-event": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, "engines": { @@ -6511,14 +6822,23 @@ } }, "node_modules/ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true + "version": "3.9.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } }, "node_modules/circular-dependency-plugin": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", "dev": true, "engines": { @@ -6529,14 +6849,14 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "version": "1.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", "dev": true }, "node_modules/class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "dependencies": { @@ -6551,8 +6871,8 @@ }, "node_modules/class-utils/node_modules/define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" @@ -6561,80 +6881,22 @@ "node": ">=0.10.0" } }, - "node_modules/class-utils/node_modules/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, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/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, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/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, - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, "engines": { @@ -6643,7 +6905,7 @@ }, "node_modules/cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "dependencies": { @@ -6654,9 +6916,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "version": "2.9.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, "engines": { "node": ">=6" @@ -6666,9 +6928,9 @@ } }, "node_modules/cli-table": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz", - "integrity": "sha512-ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ==", + "version": "0.3.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-table/-/cli-table-0.3.11.tgz", + "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", "dev": true, "dependencies": { "colors": "1.0.3" @@ -6677,18 +6939,9 @@ "node": ">= 0.2.0" } }, - "node_modules/cli-table/node_modules/colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/cli-width": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-width/-/cli-width-3.0.0.tgz", "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true, "engines": { @@ -6696,19 +6949,22 @@ } }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, "engines": { "node": ">=0.8" @@ -6716,8 +6972,8 @@ }, "node_modules/clone-buffer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", "dev": true, "engines": { "node": ">= 0.10" @@ -6725,7 +6981,7 @@ }, "node_modules/clone-deep": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "dependencies": { @@ -6739,13 +6995,13 @@ }, "node_modules/clone-stats": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", "dev": true }, "node_modules/cloneable-readable": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cloneable-readable/-/cloneable-readable-1.1.3.tgz", "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", "dev": true, "dependencies": { @@ -6755,9 +7011,9 @@ } }, "node_modules/cloneable-readable/node_modules/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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -6769,9 +7025,15 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/cloneable-readable/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/cloneable-readable/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { @@ -6780,7 +7042,7 @@ }, "node_modules/cmd-shim": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cmd-shim/-/cmd-shim-4.1.0.tgz", "integrity": "sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==", "dev": true, "dependencies": { @@ -6792,8 +7054,8 @@ }, "node_modules/co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "engines": { "iojs": ">= 1.0.0", @@ -6802,23 +7064,23 @@ }, "node_modules/code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "version": "1.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, "node_modules/collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", "dev": true, "dependencies": { "map-visit": "^1.0.0", @@ -6829,18 +7091,18 @@ } }, "node_modules/color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", - "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", + "version": "3.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", "dev": true, "dependencies": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" + "color-convert": "^1.9.3", + "color-string": "^1.6.0" } }, "node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dependencies": { "color-name": "1.1.3" @@ -6848,13 +7110,13 @@ }, "node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/color-string": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz", - "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", + "version": "1.9.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", "dev": true, "dependencies": { "color-name": "^1.0.0", @@ -6862,39 +7124,39 @@ } }, "node_modules/colord": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.0.tgz", - "integrity": "sha512-D8guC3WXLzW892WdoQD+RhIRlfeQSZnTEOq+KxX6fak9ijrHt30oKF9L7jQovCA13pSIJJVFVEYzp4Y4f4k+Yg==", + "version": "2.9.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true }, "node_modules/colorette": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/colorette/-/colorette-1.4.0.tgz", "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", "dev": true }, "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "version": "1.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", "dev": true, "engines": { "node": ">=0.1.90" } }, "node_modules/colorspace": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", - "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", + "version": "1.1.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", "dev": true, "dependencies": { - "color": "3.0.x", + "color": "^3.1.3", "text-hex": "1.0.x" } }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "dependencies": { @@ -6906,7 +7168,7 @@ }, "node_modules/commander": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-8.2.0.tgz", "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==", "dev": true, "engines": { @@ -6915,37 +7177,37 @@ }, "node_modules/common-ancestor-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", "dev": true }, "node_modules/commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, "node_modules/component-bind": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==", "dev": true }, "node_modules/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==", + "version": "1.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==", "dev": true }, "node_modules/component-inherit": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==", "dev": true }, "node_modules/compressible": { "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, "dependencies": { @@ -6957,7 +7219,7 @@ }, "node_modules/compression": { "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, "dependencies": { @@ -6975,8 +7237,8 @@ }, "node_modules/compression/node_modules/bytes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true, "engines": { "node": ">= 0.8" @@ -6984,7 +7246,7 @@ }, "node_modules/compression/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { @@ -6993,18 +7255,24 @@ }, "node_modules/compression/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/concat-stream": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "engines": [ @@ -7018,9 +7286,9 @@ } }, "node_modules/concat-stream/node_modules/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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -7032,9 +7300,15 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/concat-stream/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { @@ -7043,7 +7317,7 @@ }, "node_modules/concurrently": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/concurrently/-/concurrently-6.2.1.tgz", "integrity": "sha512-emgwhH+ezkuYKSHZQ+AkgEpoUZZlbpPVYCVv7YZx0r+T7fny1H03r2nYRebpi2DudHR4n1Rgbo2YTxKOxVJ4+g==", "dev": true, "dependencies": { @@ -7066,7 +7340,7 @@ }, "node_modules/concurrently/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -7081,7 +7355,7 @@ }, "node_modules/concurrently/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -7097,7 +7371,7 @@ }, "node_modules/concurrently/node_modules/chalk/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -7107,9 +7381,20 @@ "node": ">=8" } }, + "node_modules/concurrently/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "node_modules/concurrently/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -7121,13 +7406,13 @@ }, "node_modules/concurrently/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/concurrently/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -7136,7 +7421,7 @@ }, "node_modules/concurrently/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { @@ -7151,7 +7436,7 @@ }, "node_modules/concurrently/node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { @@ -7169,7 +7454,7 @@ }, "node_modules/conf": { "version": "10.0.2", - "resolved": "https://registry.npmjs.org/conf/-/conf-10.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/conf/-/conf-10.0.2.tgz", "integrity": "sha512-iyy4ArqyQ/yrzNASNBN+jaylu53JRuq0ztvL6KAWYHj4iN56BVuhy2SrzEEHBodNbacZr2Pd/4nWhoAwc66T1g==", "dev": true, "dependencies": { @@ -7193,8 +7478,8 @@ }, "node_modules/connect": { "version": "3.6.6", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", - "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/connect/-/connect-3.6.6.tgz", + "integrity": "sha512-OO7axMmPpu/2XuX1+2Yrg0ddju31B6xLZMWkJ5rYBu4YRmRVlOjvlY6kw2FJKiAzyxGwnrDUAG4s1Pf0sbBMCQ==", "dev": true, "dependencies": { "debug": "2.6.9", @@ -7208,7 +7493,7 @@ }, "node_modules/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true, "engines": { @@ -7217,7 +7502,7 @@ }, "node_modules/connect/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { @@ -7226,49 +7511,46 @@ }, "node_modules/connect/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true }, "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "version": "0.5.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, "dependencies": { - "safe-buffer": "5.1.2" + "safe-buffer": "5.2.1" }, "engines": { "node": ">= 0.6" } }, "node_modules/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==", + "version": "1.0.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dependencies": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "version": "0.4.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true, "engines": { "node": ">= 0.6" @@ -7276,23 +7558,26 @@ }, "node_modules/cookie-signature": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true }, "node_modules/copy-anything": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", - "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", + "version": "2.0.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, "dependencies": { - "is-what": "^3.12.0" + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" } }, "node_modules/copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7300,7 +7585,7 @@ }, "node_modules/copy-webpack-plugin": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/copy-webpack-plugin/-/copy-webpack-plugin-9.0.1.tgz", "integrity": "sha512-14gHKKdYIxF84jCEgPgYXCPpldbwpxxLbCmA7LReY7gvbaT555DgeBWBgBZM116tv/fO6RRJrsivBqRyRlukhw==", "dev": true, "dependencies": { @@ -7325,7 +7610,7 @@ }, "node_modules/copy-webpack-plugin/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { @@ -7341,7 +7626,7 @@ }, "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "peerDependencies": { @@ -7350,7 +7635,7 @@ }, "node_modules/copy-webpack-plugin/node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { @@ -7362,14 +7647,14 @@ }, "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -7386,8 +7671,9 @@ }, "node_modules/core-js": { "version": "3.16.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.16.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/core-js/-/core-js-3.16.0.tgz", "integrity": "sha512-5+5VxRFmSf97nM8Jr2wzOwLqRo6zphH2aX+7KsAUONObyzakDNq2G/bgbhinxB4PoV9L3aXQYhiDKyIKWd2c8g==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", "dev": true, "hasInstallScript": true, "funding": { @@ -7396,38 +7682,28 @@ } }, "node_modules/core-js-compat": { - "version": "3.18.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz", - "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==", + "version": "3.34.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/core-js-compat/-/core-js-compat-3.34.0.tgz", + "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", "dev": true, "dependencies": { - "browserslist": "^4.17.3", - "semver": "7.0.0" + "browserslist": "^4.22.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true }, "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "7.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", @@ -7442,13 +7718,13 @@ }, "node_modules/create-require": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, "node_modules/critters": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.10.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/critters/-/critters-0.0.10.tgz", "integrity": "sha512-p5VKhP1803+f+0Jq5P03w1SbiHtpAKm+1EpJHkiPxQPq0Vu9QLZHviJ02GRrWi0dlcJqrmzMWInbwp4d22RsGw==", "dev": true, "dependencies": { @@ -7461,7 +7737,7 @@ }, "node_modules/critters/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -7476,7 +7752,7 @@ }, "node_modules/critters/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -7492,7 +7768,7 @@ }, "node_modules/critters/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -7504,13 +7780,13 @@ }, "node_modules/critters/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/critters/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -7519,7 +7795,7 @@ }, "node_modules/critters/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -7531,7 +7807,7 @@ }, "node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { @@ -7545,7 +7821,7 @@ }, "node_modules/css": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css/-/css-3.0.0.tgz", "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", "dev": true, "dependencies": { @@ -7556,7 +7832,7 @@ }, "node_modules/css-blank-pseudo": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", "dev": true, "dependencies": { @@ -7569,15 +7845,9 @@ "node": ">=6.0.0" } }, - "node_modules/css-blank-pseudo/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/css-blank-pseudo/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -7594,32 +7864,20 @@ }, "node_modules/css-blank-pseudo/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/css-color-names": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-1.0.1.tgz", - "integrity": "sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/css-declaration-sorter": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz", - "integrity": "sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA==", + "version": "6.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", "dev": true, - "dependencies": { - "timsort": "^0.3.0" - }, "engines": { - "node": ">= 10" + "node": "^10 || ^12 || >=14" }, "peerDependencies": { "postcss": "^8.0.9" @@ -7627,7 +7885,7 @@ }, "node_modules/css-has-pseudo": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", "dev": true, "dependencies": { @@ -7643,7 +7901,7 @@ }, "node_modules/css-has-pseudo/node_modules/cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true, "bin": { @@ -7653,15 +7911,9 @@ "node": ">=4" } }, - "node_modules/css-has-pseudo/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/css-has-pseudo/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -7678,7 +7930,7 @@ }, "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "dependencies": { @@ -7692,7 +7944,7 @@ }, "node_modules/css-has-pseudo/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -7701,7 +7953,7 @@ }, "node_modules/css-loader": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-loader/-/css-loader-6.2.0.tgz", "integrity": "sha512-/rvHfYRjIpymZblf49w8jYcRo2y9gj6rV8UroHGmBxKrIyGLokpycyKzp9OkitvqT29ZSpzJ0Ic7SpnJX3sC8g==", "dev": true, "dependencies": { @@ -7727,7 +7979,7 @@ }, "node_modules/css-minimizer-webpack-plugin": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.0.2.tgz", "integrity": "sha512-B3I5e17RwvKPJwsxjjWcdgpU/zqylzK1bPVghcmpFHRL48DXiBgrtqz1BJsn68+t/zzaLp9kYAaEDvQ7GyanFQ==", "dev": true, "dependencies": { @@ -7760,7 +8012,7 @@ }, "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { @@ -7776,7 +8028,7 @@ }, "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "peerDependencies": { @@ -7785,14 +8037,14 @@ }, "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -7809,7 +8061,7 @@ }, "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -7818,8 +8070,8 @@ }, "node_modules/css-parse": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", - "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha512-UNIFik2RgSbiTwIW1IsFwXWn6vs+bYdq83LKTSOsx7NJR7WII9dxewkHLltfTLVppoUApHV0118a4RZRI9FLwA==", "dev": true, "dependencies": { "css": "^2.0.0" @@ -7827,7 +8079,7 @@ }, "node_modules/css-parse/node_modules/css": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css/-/css-2.2.4.tgz", "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", "dev": true, "dependencies": { @@ -7839,7 +8091,7 @@ }, "node_modules/css-parse/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -7848,8 +8100,9 @@ }, "node_modules/css-parse/node_modules/source-map-resolve": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, "dependencies": { "atob": "^2.1.2", @@ -7861,7 +8114,7 @@ }, "node_modules/css-prefers-color-scheme": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", "dev": true, "dependencies": { @@ -7874,15 +8127,9 @@ "node": ">=6.0.0" } }, - "node_modules/css-prefers-color-scheme/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/css-prefers-color-scheme/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -7899,7 +8146,7 @@ }, "node_modules/css-prefers-color-scheme/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -7907,16 +8154,16 @@ } }, "node_modules/css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "version": "4.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, "dependencies": { "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" }, "funding": { "url": "https://github.com/sponsors/fb55" @@ -7924,7 +8171,7 @@ }, "node_modules/css-tree": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-tree/-/css-tree-1.1.3.tgz", "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "dev": true, "dependencies": { @@ -7937,7 +8184,7 @@ }, "node_modules/css-tree/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -7945,9 +8192,9 @@ } }, "node_modules/css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "version": "6.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, "engines": { "node": ">= 6" @@ -7958,7 +8205,7 @@ }, "node_modules/css/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -7967,13 +8214,13 @@ }, "node_modules/cssdb": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssdb/-/cssdb-4.4.0.tgz", "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==", "dev": true }, "node_modules/cssesc": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, "bin": { @@ -7984,13 +8231,12 @@ } }, "node_modules/cssnano": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.8.tgz", - "integrity": "sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg==", + "version": "5.1.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", "dev": true, "dependencies": { - "cssnano-preset-default": "^5.1.4", - "is-resolvable": "^1.1.0", + "cssnano-preset-default": "^5.2.14", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, @@ -8006,40 +8252,40 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.4.tgz", - "integrity": "sha512-sPpQNDQBI3R/QsYxQvfB4mXeEcWuw0wGtKtmS5eg8wudyStYMgKOQT39G07EbW1LB56AOYrinRS9f0ig4Y3MhQ==", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^2.0.1", - "postcss-calc": "^8.0.0", - "postcss-colormin": "^5.2.0", - "postcss-convert-values": "^5.0.1", - "postcss-discard-comments": "^5.0.1", - "postcss-discard-duplicates": "^5.0.1", - "postcss-discard-empty": "^5.0.1", - "postcss-discard-overridden": "^5.0.1", - "postcss-merge-longhand": "^5.0.2", - "postcss-merge-rules": "^5.0.2", - "postcss-minify-font-values": "^5.0.1", - "postcss-minify-gradients": "^5.0.2", - "postcss-minify-params": "^5.0.1", - "postcss-minify-selectors": "^5.1.0", - "postcss-normalize-charset": "^5.0.1", - "postcss-normalize-display-values": "^5.0.1", - "postcss-normalize-positions": "^5.0.1", - "postcss-normalize-repeat-style": "^5.0.1", - "postcss-normalize-string": "^5.0.1", - "postcss-normalize-timing-functions": "^5.0.1", - "postcss-normalize-unicode": "^5.0.1", - "postcss-normalize-url": "^5.0.2", - "postcss-normalize-whitespace": "^5.0.1", - "postcss-ordered-values": "^5.0.2", - "postcss-reduce-initial": "^5.0.1", - "postcss-reduce-transforms": "^5.0.1", - "postcss-svgo": "^5.0.2", - "postcss-unique-selectors": "^5.0.1" + "version": "5.2.14", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -8049,9 +8295,9 @@ } }, "node_modules/cssnano-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", - "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", + "version": "3.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -8062,7 +8308,7 @@ }, "node_modules/csso": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/csso/-/csso-4.2.0.tgz", "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "dev": true, "dependencies": { @@ -8074,13 +8320,13 @@ }, "node_modules/cssom": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssom/-/cssom-0.4.4.tgz", "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", "dev": true }, "node_modules/cssstyle": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, "dependencies": { @@ -8092,13 +8338,13 @@ }, "node_modules/cssstyle/node_modules/cssom": { "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true }, "node_modules/dargs": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dargs/-/dargs-7.0.0.tgz", "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true, "engines": { @@ -8107,8 +8353,8 @@ }, "node_modules/dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, "dependencies": { "assert-plus": "^1.0.0" @@ -8119,7 +8365,7 @@ }, "node_modules/data-urls": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/data-urls/-/data-urls-2.0.0.tgz", "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", "dev": true, "dependencies": { @@ -8132,10 +8378,13 @@ } }, "node_modules/date-fns": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz", - "integrity": "sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w==", + "version": "2.30.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", "dev": true, + "dependencies": { + "@babel/runtime": "^7.21.0" + }, "engines": { "node": ">=0.11" }, @@ -8144,9 +8393,27 @@ "url": "https://opencollective.com/date-fns" } }, + "node_modules/date-fns/node_modules/@babel/runtime": { + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/runtime/-/runtime-7.23.6.tgz", + "integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/date-fns/node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, "node_modules/dateformat": { "version": "4.6.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dateformat/-/dateformat-4.6.3.tgz", "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", "dev": true, "engines": { @@ -8155,12 +8422,12 @@ }, "node_modules/dayjs": { "version": "1.10.7", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dayjs/-/dayjs-1.10.7.tgz", "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==" }, "node_modules/debounce-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debounce-fn/-/debounce-fn-4.0.0.tgz", "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", "dev": true, "dependencies": { @@ -8175,7 +8442,7 @@ }, "node_modules/debug": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dependencies": { "ms": "2.1.2" @@ -8191,8 +8458,9 @@ }, "node_modules/debuglog": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, "engines": { "node": "*" @@ -8200,23 +8468,23 @@ }, "node_modules/decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "version": "10.4.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", "dev": true }, "node_modules/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=", + "version": "0.2.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true, "engines": { "node": ">=0.10" @@ -8224,22 +8492,25 @@ }, "node_modules/dedent": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", "dev": true }, "node_modules/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==", + "version": "1.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/deep-equal/-/deep-equal-1.1.2.tgz", + "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", "dev": true, "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" + "regexp.prototype.flags": "^1.5.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8247,7 +8518,7 @@ }, "node_modules/deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, "engines": { @@ -8256,14 +8527,14 @@ }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "version": "4.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "engines": { "node": ">=0.10.0" @@ -8271,7 +8542,7 @@ }, "node_modules/default-gateway": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/default-gateway/-/default-gateway-4.2.0.tgz", "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", "dev": true, "dependencies": { @@ -8284,7 +8555,7 @@ }, "node_modules/default-gateway/node_modules/cross-spawn": { "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "dependencies": { @@ -8300,7 +8571,7 @@ }, "node_modules/default-gateway/node_modules/execa": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "dependencies": { @@ -8318,7 +8589,7 @@ }, "node_modules/default-gateway/node_modules/get-stream": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "dependencies": { @@ -8330,8 +8601,8 @@ }, "node_modules/default-gateway/node_modules/is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -8339,8 +8610,8 @@ }, "node_modules/default-gateway/node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "dev": true, "dependencies": { "path-key": "^2.0.0" @@ -8351,17 +8622,17 @@ }, "node_modules/default-gateway/node_modules/path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/default-gateway/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -8369,8 +8640,8 @@ }, "node_modules/default-gateway/node_modules/shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, "dependencies": { "shebang-regex": "^1.0.0" @@ -8381,8 +8652,8 @@ }, "node_modules/default-gateway/node_modules/shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -8390,7 +8661,7 @@ }, "node_modules/default-gateway/node_modules/which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "dependencies": { @@ -8401,17 +8672,34 @@ } }, "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "version": "1.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, "dependencies": { "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/define-lazy-prop": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, "engines": { @@ -8419,20 +8707,25 @@ } }, "node_modules/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==", + "version": "1.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { - "object-keys": "^1.0.12" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "dependencies": { @@ -8445,7 +8738,7 @@ }, "node_modules/del": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/del/-/del-4.1.1.tgz", "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", "dev": true, "dependencies": { @@ -8463,8 +8756,8 @@ }, "node_modules/del/node_modules/array-union": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", "dev": true, "dependencies": { "array-uniq": "^1.0.1" @@ -8475,8 +8768,8 @@ }, "node_modules/del/node_modules/globby": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", "dev": true, "dependencies": { "array-union": "^1.0.1", @@ -8491,8 +8784,8 @@ }, "node_modules/del/node_modules/globby/node_modules/pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, "engines": { "node": ">=0.10.0" @@ -8500,7 +8793,7 @@ }, "node_modules/del/node_modules/p-map": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-map/-/p-map-2.1.0.tgz", "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true, "engines": { @@ -8509,7 +8802,7 @@ }, "node_modules/del/node_modules/pify": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "engines": { @@ -8518,7 +8811,7 @@ }, "node_modules/del/node_modules/rimraf": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "dependencies": { @@ -8530,8 +8823,8 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, "engines": { "node": ">=0.4.0" @@ -8539,22 +8832,22 @@ }, "node_modules/delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "dev": true }, "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/dependency-graph": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dependency-graph/-/dependency-graph-0.11.0.tgz", "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", "engines": { "node": ">= 0.6.0" @@ -8562,19 +8855,19 @@ }, "node_modules/deprecation": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/deprecation/-/deprecation-2.3.1.tgz", "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "dev": true }, "node_modules/destroy": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", "dev": true }, "node_modules/detect-indent": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/detect-indent/-/detect-indent-6.1.0.tgz", "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true, "engines": { @@ -8583,7 +8876,7 @@ }, "node_modules/detect-newline": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, "engines": { @@ -8592,14 +8885,14 @@ }, "node_modules/detect-node": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, "node_modules/dev-ip": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", - "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", "dev": true, "bin": { "dev-ip": "lib/dev-ip.js" @@ -8609,9 +8902,9 @@ } }, "node_modules/dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "version": "1.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", "dev": true, "dependencies": { "asap": "^2.0.0", @@ -8620,23 +8913,23 @@ }, "node_modules/didyoumean": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "dev": true }, "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true, "engines": { "node": ">=0.3.1" } }, "node_modules/diff-sequences": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", - "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", "dev": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -8644,7 +8937,7 @@ }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "dependencies": { @@ -8656,19 +8949,19 @@ }, "node_modules/dlv": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "dev": true }, "node_modules/dns-equal": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", "dev": true }, "node_modules/dns-packet": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dns-packet/-/dns-packet-1.3.4.tgz", "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, "dependencies": { @@ -8676,10 +8969,16 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/dns-packet/node_modules/ip": { + "version": "1.1.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, "node_modules/dns-txt": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", "dev": true, "dependencies": { "buffer-indexof": "^1.0.0" @@ -8687,7 +8986,7 @@ }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "dependencies": { @@ -8698,9 +8997,9 @@ } }, "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "1.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, "dependencies": { "domelementtype": "^2.0.1", @@ -8712,9 +9011,9 @@ } }, "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, "funding": [ { @@ -8725,8 +9024,9 @@ }, "node_modules/domexception": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/domexception/-/domexception-2.0.1.tgz", "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", "dev": true, "dependencies": { "webidl-conversions": "^5.0.0" @@ -8737,7 +9037,7 @@ }, "node_modules/domexception/node_modules/webidl-conversions": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webidl-conversions/-/webidl-conversions-5.0.0.tgz", "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", "dev": true, "engines": { @@ -8745,9 +9045,9 @@ } }, "node_modules/domhandler": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", - "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", + "version": "4.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, "dependencies": { "domelementtype": "^2.2.0" @@ -8761,7 +9061,7 @@ }, "node_modules/domutils": { "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, "dependencies": { @@ -8775,7 +9075,7 @@ }, "node_modules/dot-prop": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dot-prop/-/dot-prop-6.0.1.tgz", "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dev": true, "dependencies": { @@ -8790,7 +9090,7 @@ }, "node_modules/drange": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/drange/-/drange-1.1.1.tgz", "integrity": "sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==", "dev": true, "engines": { @@ -8799,13 +9099,13 @@ }, "node_modules/duplexer": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, "node_modules/easy-extender": { "version": "2.3.4", - "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/easy-extender/-/easy-extender-2.3.4.tgz", "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", "dev": true, "dependencies": { @@ -8817,7 +9117,7 @@ }, "node_modules/eazy-logger": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eazy-logger/-/eazy-logger-3.1.0.tgz", "integrity": "sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ==", "dev": true, "dependencies": { @@ -8829,8 +9129,8 @@ }, "node_modules/ecc-jsbn": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, "dependencies": { "jsbn": "~0.1.0", @@ -8839,13 +9139,13 @@ }, "node_modules/ee-first": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, "node_modules/ejs": { "version": "3.1.6", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ejs/-/ejs-3.1.6.tgz", "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", "dev": true, "dependencies": { @@ -8859,13 +9159,13 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.872", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.872.tgz", - "integrity": "sha512-qG96atLFY0agKyEETiBFNhpRLSXGSXOBuhXWpbkYqrLKKASpRyRBUtfkn0ZjIf/yXfA7FA4nScVOMpXSHFlUCQ==" + "version": "1.4.616", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", + "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==" }, "node_modules/emittery": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/emittery/-/emittery-0.8.1.tgz", "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", "dev": true, "engines": { @@ -8877,12 +9177,12 @@ }, "node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/emojis-list": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true, "engines": { @@ -8891,14 +9191,14 @@ }, "node_modules/enabled": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/enabled/-/enabled-2.0.0.tgz", "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", "dev": true }, "node_modules/encodeurl": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, "engines": { "node": ">= 0.8" @@ -8906,7 +9206,7 @@ }, "node_modules/encoding": { "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "optional": true, @@ -8916,7 +9216,7 @@ }, "node_modules/encoding/node_modules/iconv-lite": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "optional": true, @@ -8929,7 +9229,7 @@ }, "node_modules/end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "dependencies": { @@ -8938,7 +9238,7 @@ }, "node_modules/engine.io": { "version": "3.5.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/engine.io/-/engine.io-3.5.0.tgz", "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==", "dev": true, "dependencies": { @@ -8954,46 +9254,34 @@ } }, "node_modules/engine.io-client": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.2.tgz", - "integrity": "sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA==", + "version": "6.5.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/engine.io-client/-/engine.io-client-6.5.3.tgz", + "integrity": "sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==", "dev": true, "dependencies": { - "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": "~7.4.2", - "xmlhttprequest-ssl": "~1.6.2", - "yeast": "0.1.2" + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" } }, - "node_modules/engine.io-client/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "node_modules/engine.io-client/node_modules/engine.io-parser": { + "version": "5.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", "dev": true, - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">=10.0.0" } }, - "node_modules/engine.io-client/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "node_modules/engine.io-client/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "8.11.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, "engines": { - "node": ">=8.3.0" + "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", @@ -9010,7 +9298,7 @@ }, "node_modules/engine.io-parser": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/engine.io-parser/-/engine.io-parser-2.2.1.tgz", "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", "dev": true, "dependencies": { @@ -9023,7 +9311,7 @@ }, "node_modules/engine.io/node_modules/debug": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", "dev": true, @@ -9033,7 +9321,7 @@ }, "node_modules/engine.io/node_modules/ws": { "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ws/-/ws-7.4.6.tgz", "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true, "engines": { @@ -9053,9 +9341,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", - "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", + "version": "5.15.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -9066,12 +9354,13 @@ } }, "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "version": "2.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dev": true, "dependencies": { - "ansi-colors": "^4.1.1" + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8.6" @@ -9079,7 +9368,7 @@ }, "node_modules/entities": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, "funding": { @@ -9088,7 +9377,7 @@ }, "node_modules/env-paths": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, "engines": { @@ -9097,13 +9386,13 @@ }, "node_modules/err-code": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true }, "node_modules/errno": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, "dependencies": { @@ -9115,13 +9404,13 @@ }, "node_modules/error": { "version": "10.4.0", - "resolved": "https://registry.npmjs.org/error/-/error-10.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/error/-/error-10.4.0.tgz", "integrity": "sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==", "dev": true }, "node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "dependencies": { @@ -9130,13 +9419,19 @@ }, "node_modules/es-module-lexer": { "version": "0.7.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/es-module-lexer/-/es-module-lexer-0.7.1.tgz", "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==", "dev": true }, + "node_modules/es6-promise": { + "version": "4.0.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/es6-promise/-/es6-promise-4.0.5.tgz", + "integrity": "sha512-4QUVu8ljexIQebW0h+5EhEqVKvh8p7Wu3zi3AqPmX3tFL2bf6MnZ2ytC/3xuUt1mo6kE2GSYNmjWyDo2SjkAsg==", + "dev": true + }, "node_modules/esbuild": { "version": "0.12.24", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.24.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/esbuild/-/esbuild-0.12.24.tgz", "integrity": "sha512-C0ibY+HsXzYB6L/pLWEiWjMpghKsIc58Q5yumARwBQsHl9DXPakW+5NI/Y9w4YXiz0PEP6XTGTT/OV4Nnsmb4A==", "dev": true, "hasInstallScript": true, @@ -9146,7 +9441,7 @@ }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "engines": { "node": ">=6" @@ -9154,28 +9449,27 @@ }, "node_modules/escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "engines": { "node": ">=0.8.0" } }, "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "version": "2.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" + "esutils": "^2.0.2" }, "bin": { "escodegen": "bin/escodegen.js", @@ -9189,56 +9483,17 @@ } }, "node_modules/escodegen/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" } }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/escodegen/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "optional": true, @@ -9246,21 +9501,9 @@ "node": ">=0.10.0" } }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/eslint": { "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint/-/eslint-7.32.0.tgz", "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "dependencies": { @@ -9317,7 +9560,7 @@ }, "node_modules/eslint-config-prettier": { "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", "dev": true, "bin": { @@ -9329,7 +9572,7 @@ }, "node_modules/eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "dependencies": { @@ -9342,7 +9585,7 @@ }, "node_modules/eslint-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "dependencies": { @@ -9357,7 +9600,7 @@ }, "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "engines": { @@ -9366,7 +9609,7 @@ }, "node_modules/eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, "engines": { @@ -9375,7 +9618,7 @@ }, "node_modules/eslint-webpack-plugin": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-webpack-plugin/-/eslint-webpack-plugin-3.0.1.tgz", "integrity": "sha512-PAHHDjCg2yWBNoiBPYLZWcv+M83urkslQKER7XvK84lo5YLcihJK6qwnCH2Fkt3eVdX+G1iyGZRlKsIhTiczHw==", "dev": true, "dependencies": { @@ -9399,7 +9642,7 @@ }, "node_modules/eslint-webpack-plugin/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { @@ -9415,7 +9658,7 @@ }, "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "peerDependencies": { @@ -9424,14 +9667,14 @@ }, "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -9448,7 +9691,7 @@ }, "node_modules/eslint/node_modules/@babel/code-frame": { "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "dependencies": { @@ -9457,7 +9700,7 @@ }, "node_modules/eslint/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { @@ -9473,7 +9716,7 @@ }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -9488,7 +9731,7 @@ }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -9504,7 +9747,7 @@ }, "node_modules/eslint/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -9516,13 +9759,13 @@ }, "node_modules/eslint/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "engines": { @@ -9533,9 +9776,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "version": "13.24.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -9549,7 +9792,7 @@ }, "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -9558,13 +9801,13 @@ }, "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -9576,7 +9819,7 @@ }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { @@ -9588,7 +9831,7 @@ }, "node_modules/espree": { "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "dependencies": { @@ -9602,7 +9845,7 @@ }, "node_modules/espree/node_modules/eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "engines": { @@ -9611,7 +9854,7 @@ }, "node_modules/esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "bin": { @@ -9623,9 +9866,9 @@ } }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -9635,9 +9878,9 @@ } }, "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" @@ -9645,7 +9888,7 @@ }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { @@ -9656,9 +9899,9 @@ } }, "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" @@ -9666,7 +9909,7 @@ }, "node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, "engines": { @@ -9675,7 +9918,7 @@ }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "engines": { @@ -9684,8 +9927,8 @@ }, "node_modules/etag": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, "engines": { "node": ">= 0.6" @@ -9693,40 +9936,37 @@ }, "node_modules/eventemitter-asyncresource": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", "dev": true }, "node_modules/eventemitter3": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, "node_modules/events": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/events/-/events-1.1.1.tgz", + "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==", "dev": true, "engines": { "node": ">=0.4.x" } }, "node_modules/eventsource": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", - "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", + "version": "2.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", "dev": true, - "dependencies": { - "original": "^1.0.0" - }, "engines": { - "node": ">=0.12.0" + "node": ">=12.0.0" } }, "node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { @@ -9749,8 +9989,8 @@ }, "node_modules/exit": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -9758,8 +9998,8 @@ }, "node_modules/expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", "dev": true, "dependencies": { "debug": "^2.3.3", @@ -9776,7 +10016,7 @@ }, "node_modules/expand-brackets/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { @@ -9785,8 +10025,8 @@ }, "node_modules/expand-brackets/node_modules/define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" @@ -9797,8 +10037,8 @@ }, "node_modules/expand-brackets/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -9807,81 +10047,23 @@ "node": ">=0.10.0" } }, - "node_modules/expand-brackets/node_modules/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, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/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, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/expand-brackets/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/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==", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -9889,72 +10071,59 @@ }, "node_modules/expand-brackets/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/expect": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.3.1.tgz", - "integrity": "sha512-MrNXV2sL9iDRebWPGOGFdPQRl2eDQNu/uhxIMShjjx74T6kC6jFIkmQ6OqXDtevjGUkyB2IT56RzDBqXf/QPCg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-regex-util": "^27.0.6" + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/expect/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "version": "4.18.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, "dependencies": { - "accepts": "~1.3.7", + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.0", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", + "proxy-addr": "~2.0.7", + "qs": "6.11.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", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -9965,14 +10134,14 @@ }, "node_modules/express/node_modules/array-flatten": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, "node_modules/express/node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "version": "0.5.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true, "engines": { "node": ">= 0.6" @@ -9980,25 +10149,35 @@ }, "node_modules/express/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, + "node_modules/express/node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, "node_modules/express/node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "engines": { @@ -10007,83 +10186,101 @@ }, "node_modules/express/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/express/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "version": "6.11.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/express/node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "version": "0.18.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "~1.7.2", + "http-errors": "2.0.0", "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", + "ms": "2.1.3", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/express/node_modules/send/node_modules/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==", + "version": "2.1.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "node_modules/express/node_modules/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==", + "version": "1.15.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.1" + "send": "0.18.0" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/express/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, "node_modules/extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "dev": true, "dependencies": { "assign-symbols": "^1.0.0", @@ -10095,7 +10292,7 @@ }, "node_modules/external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "dependencies": { @@ -10109,7 +10306,7 @@ }, "node_modules/extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "dependencies": { @@ -10128,8 +10325,8 @@ }, "node_modules/extglob/node_modules/define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, "dependencies": { "is-descriptor": "^1.0.0" @@ -10140,8 +10337,8 @@ }, "node_modules/extglob/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -10152,8 +10349,8 @@ }, "node_modules/extglob/node_modules/is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -10161,8 +10358,8 @@ }, "node_modules/extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "dev": true, "engines": [ "node >=0.6.0" @@ -10170,20 +10367,20 @@ }, "node_modules/faker": { "version": "5.5.3", - "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/faker/-/faker-5.5.3.tgz", "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==", "dev": true }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.3.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -10193,25 +10390,25 @@ "micromatch": "^4.0.4" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" } }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.16.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -10219,7 +10416,7 @@ }, "node_modules/faye-websocket": { "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, "dependencies": { @@ -10230,23 +10427,23 @@ } }, "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "dependencies": { "bser": "2.1.1" } }, "node_modules/fecha": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", - "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==", + "version": "4.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", "dev": true }, "node_modules/figures": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "dependencies": { @@ -10261,7 +10458,7 @@ }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "dependencies": { @@ -10273,23 +10470,44 @@ }, "node_modules/file-uri-to-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true, "optional": true }, "node_modules/filelist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", - "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", + "version": "1.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, "dependencies": { - "minimatch": "^3.0.4" + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dependencies": { "to-regex-range": "^5.0.1" @@ -10300,8 +10518,8 @@ }, "node_modules/finalhandler": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha512-ejnvM9ZXYzp6PUPUyQBMBf0Co5VX2gr5H2VQe2Ui2jWXNlxv+PYZo8wpAymJNJdLsG1R4p+M4aynF8KuoUEwRw==", "dev": true, "dependencies": { "debug": "2.6.9", @@ -10318,7 +10536,7 @@ }, "node_modules/finalhandler/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { @@ -10327,13 +10545,13 @@ }, "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/find-cache-dir": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-cache-dir/-/find-cache-dir-3.3.1.tgz", "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "dev": true, "dependencies": { @@ -10350,7 +10568,7 @@ }, "node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { @@ -10363,7 +10581,7 @@ }, "node_modules/find-yarn-workspace-root2": { "version": "1.2.16", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", "dev": true, "dependencies": { @@ -10373,8 +10591,8 @@ }, "node_modules/first-chunk-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", - "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "integrity": "sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==", "dev": true, "dependencies": { "readable-stream": "^2.0.2" @@ -10384,9 +10602,9 @@ } }, "node_modules/first-chunk-stream/node_modules/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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -10398,9 +10616,15 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/first-chunk-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/first-chunk-stream/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { @@ -10408,12 +10632,13 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { @@ -10421,28 +10646,45 @@ } }, "node_modules/flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "version": "3.2.9", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, "node_modules/flatten": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/flatten/-/flatten-1.0.3.tgz", "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", "dev": true }, "node_modules/fn.name": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fn.name/-/fn.name-1.1.0.tgz", "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", "dev": true }, + "node_modules/folder-hash": { + "version": "4.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/folder-hash/-/folder-hash-4.0.1.tgz", + "integrity": "sha512-oF1MGtGAPezYJJRMRPzTwtDYwZdQ16UTnthsVAxjVZnlrQ36WuF6YxSgyZxnoUEK6JNPX+04FCFAkw5CzE5OMw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "graceful-fs": "~4.2.0", + "minimatch": "~3.0.4" + }, + "bin": { + "folder-hash": "bin/folder-hash" + }, + "engines": { + "node": ">=10.10.0" + } + }, "node_modules/follow-redirects": { - "version": "1.14.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz", - "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==", + "version": "1.15.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "dev": true, "funding": [ { @@ -10461,8 +10703,8 @@ }, "node_modules/for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -10470,8 +10712,8 @@ }, "node_modules/forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true, "engines": { "node": "*" @@ -10479,7 +10721,7 @@ }, "node_modules/form-data": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/form-data/-/form-data-3.0.1.tgz", "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "dev": true, "dependencies": { @@ -10493,7 +10735,7 @@ }, "node_modules/forwarded": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, "engines": { @@ -10502,8 +10744,8 @@ }, "node_modules/fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", "dev": true, "dependencies": { "map-cache": "^0.2.2" @@ -10514,8 +10756,8 @@ }, "node_modules/fresh": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, "engines": { "node": ">= 0.6" @@ -10523,8 +10765,8 @@ }, "node_modules/fs-extra": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -10534,7 +10776,7 @@ }, "node_modules/fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "dependencies": { @@ -10545,20 +10787,20 @@ } }, "node_modules/fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "version": "1.0.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, "optional": true, "os": [ @@ -10569,20 +10811,32 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/functional-red-black-tree": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", "dev": true, "dependencies": { "aproba": "^1.0.3", @@ -10597,8 +10851,8 @@ }, "node_modules/gauge/node_modules/ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -10606,8 +10860,8 @@ }, "node_modules/gauge/node_modules/is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", "dev": true, "dependencies": { "number-is-nan": "^1.0.0" @@ -10618,8 +10872,8 @@ }, "node_modules/gauge/node_modules/string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", "dev": true, "dependencies": { "code-point-at": "^1.0.0", @@ -10632,8 +10886,8 @@ }, "node_modules/gauge/node_modules/strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" @@ -10644,7 +10898,7 @@ }, "node_modules/generator-jhipster": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/generator-jhipster/-/generator-jhipster-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/generator-jhipster/-/generator-jhipster-7.2.0.tgz", "integrity": "sha512-ys3y8M70NfueQaTYPglYwOF5rqkZyguQPwTrMvGLE5DpDxG41m2XcuJA9OZjLk/E9G5vFljceYHOcyodfFFnMg==", "dev": true, "dependencies": { @@ -10698,7 +10952,7 @@ }, "node_modules/generator-jhipster/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -10713,13 +10967,13 @@ }, "node_modules/generator-jhipster/node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "node_modules/generator-jhipster/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -10735,7 +10989,7 @@ }, "node_modules/generator-jhipster/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -10747,13 +11001,13 @@ }, "node_modules/generator-jhipster/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/generator-jhipster/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -10762,7 +11016,7 @@ }, "node_modules/generator-jhipster/node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { @@ -10774,7 +11028,7 @@ }, "node_modules/generator-jhipster/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -10786,7 +11040,7 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "engines": { "node": ">=6.9.0" @@ -10794,21 +11048,22 @@ }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.2.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10816,7 +11071,7 @@ }, "node_modules/get-package-type": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, "engines": { @@ -10825,7 +11080,7 @@ }, "node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "engines": { @@ -10837,8 +11092,8 @@ }, "node_modules/get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -10846,8 +11101,8 @@ }, "node_modules/getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, "dependencies": { "assert-plus": "^1.0.0" @@ -10855,7 +11110,7 @@ }, "node_modules/git-hooks-list": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/git-hooks-list/-/git-hooks-list-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/git-hooks-list/-/git-hooks-list-1.0.3.tgz", "integrity": "sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==", "dev": true, "funding": { @@ -10864,7 +11119,7 @@ }, "node_modules/github-username": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/github-username/-/github-username-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/github-username/-/github-username-6.0.0.tgz", "integrity": "sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==", "dev": true, "dependencies": { @@ -10879,7 +11134,7 @@ }, "node_modules/glob": { "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob/-/glob-7.1.7.tgz", "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dependencies": { "fs.realpath": "^1.0.0", @@ -10898,7 +11153,7 @@ }, "node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dependencies": { "is-glob": "^4.0.1" @@ -10909,29 +11164,29 @@ }, "node_modules/glob-to-regexp": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, "node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "engines": { "node": ">=4" } }, "node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" }, "engines": { @@ -10942,23 +11197,35 @@ } }, "node_modules/globby/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, "engines": { "node": ">= 4" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "version": "4.2.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "node_modules/grouped-queue": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/grouped-queue/-/grouped-queue-2.0.0.tgz", "integrity": "sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==", "dev": true, "engines": { @@ -10967,13 +11234,13 @@ }, "node_modules/growly": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/growly/-/growly-1.3.0.tgz", + "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", "dev": true }, "node_modules/gulp-filter": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/gulp-filter/-/gulp-filter-7.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/gulp-filter/-/gulp-filter-7.0.0.tgz", "integrity": "sha512-ZGWtJo0j1mHfP77tVuhyqem4MRA5NfNRjoVe6VAkLGeQQ/QGo2VsFwp7zfPTGDsd1rwzBmoDHhxpE6f5B3Zuaw==", "dev": true, "dependencies": { @@ -10999,7 +11266,7 @@ }, "node_modules/gzip-size": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, "dependencies": { @@ -11014,14 +11281,14 @@ }, "node_modules/handle-thing": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, "node_modules/har-schema": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "dev": true, "engines": { "node": ">=4" @@ -11029,7 +11296,7 @@ }, "node_modules/har-validator": { "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "deprecated": "this library is no longer supported", "dev": true, @@ -11043,7 +11310,7 @@ }, "node_modules/har-validator/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { @@ -11059,25 +11326,14 @@ }, "node_modules/har-validator/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" @@ -11088,8 +11344,8 @@ }, "node_modules/has-ansi/node_modules/ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -11097,7 +11353,7 @@ }, "node_modules/has-binary2": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-binary2/-/has-binary2-1.0.3.tgz", "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", "dev": true, "dependencies": { @@ -11106,28 +11362,52 @@ }, "node_modules/has-binary2/node_modules/isarray": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==", "dev": true }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==", "dev": true }, "node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { "node": ">=4" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "version": "1.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, "engines": { "node": ">= 0.4" @@ -11138,7 +11418,7 @@ }, "node_modules/has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, "dependencies": { @@ -11153,14 +11433,14 @@ }, "node_modules/has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true }, "node_modules/has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", "dev": true, "dependencies": { "get-value": "^2.0.6", @@ -11173,8 +11453,8 @@ }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", "dev": true, "dependencies": { "is-number": "^3.0.0", @@ -11186,8 +11466,8 @@ }, "node_modules/has-values/node_modules/is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -11198,8 +11478,8 @@ }, "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -11210,8 +11490,8 @@ }, "node_modules/has-values/node_modules/kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -11220,10 +11500,21 @@ "node": ">=0.10.0" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hdr-histogram-js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.1.tgz", - "integrity": "sha512-uPZxl1dAFnjUFHWLZmt93vUUvtHeaBay9nVNHu38SdOjMSF/4KqJUqa1Seuj08ptU1rEb6AHvB41X8n/zFZ74Q==", + "version": "2.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", "dev": true, "dependencies": { "@assemblyscript/loader": "^0.10.1", @@ -11233,14 +11524,14 @@ }, "node_modules/hdr-histogram-percentiles-obj": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", "dev": true }, "node_modules/hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "version": "4.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -11249,10 +11540,28 @@ "node": ">=10" } }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/hpack.js": { "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, "dependencies": { "inherits": "^2.0.1", @@ -11262,9 +11571,9 @@ } }, "node_modules/hpack.js/node_modules/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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -11276,9 +11585,15 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { @@ -11287,7 +11602,7 @@ }, "node_modules/html-encoding-sniffer": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", "dev": true, "dependencies": { @@ -11299,19 +11614,19 @@ }, "node_modules/html-entities": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/html-entities/-/html-entities-1.4.0.tgz", "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", "dev": true }, "node_modules/html-escaper": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, "node_modules/http-basic": { "version": "8.1.3", - "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-basic/-/http-basic-8.1.3.tgz", "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", "dev": true, "dependencies": { @@ -11325,51 +11640,51 @@ } }, "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true }, "node_modules/http-deceiver": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", "dev": true }, "node_modules/http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, "dependencies": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/http-errors/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "version": "0.5.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", "dev": true }, "node_modules/http-proxy": { "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "dependencies": { @@ -11383,7 +11698,7 @@ }, "node_modules/http-proxy-agent": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, "dependencies": { @@ -11397,7 +11712,7 @@ }, "node_modules/http-proxy-middleware": { "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", "dev": true, "dependencies": { @@ -11412,7 +11727,7 @@ }, "node_modules/http-proxy-middleware/node_modules/braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "dependencies": { @@ -11433,8 +11748,8 @@ }, "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -11445,8 +11760,8 @@ }, "node_modules/http-proxy-middleware/node_modules/fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, "dependencies": { "extend-shallow": "^2.0.1", @@ -11460,8 +11775,8 @@ }, "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -11472,8 +11787,8 @@ }, "node_modules/http-proxy-middleware/node_modules/is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -11481,8 +11796,8 @@ }, "node_modules/http-proxy-middleware/node_modules/is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -11493,8 +11808,8 @@ }, "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -11505,7 +11820,7 @@ }, "node_modules/http-proxy-middleware/node_modules/micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "dependencies": { @@ -11529,8 +11844,8 @@ }, "node_modules/http-proxy-middleware/node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, "dependencies": { "is-number": "^3.0.0", @@ -11542,7 +11857,7 @@ }, "node_modules/http-response-object": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-response-object/-/http-response-object-3.0.2.tgz", "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", "dev": true, "dependencies": { @@ -11551,14 +11866,14 @@ }, "node_modules/http-response-object/node_modules/@types/node": { "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/node/-/node-10.17.60.tgz", "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", "dev": true }, "node_modules/http-signature": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "dev": true, "dependencies": { "assert-plus": "^1.0.0", @@ -11572,7 +11887,7 @@ }, "node_modules/https-proxy-agent": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "dependencies": { @@ -11585,7 +11900,7 @@ }, "node_modules/human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "engines": { @@ -11594,8 +11909,8 @@ }, "node_modules/humanize-ms": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dev": true, "dependencies": { "ms": "^2.0.0" @@ -11603,7 +11918,7 @@ }, "node_modules/iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "dependencies": { @@ -11615,7 +11930,7 @@ }, "node_modules/icss-utils": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, "engines": { @@ -11627,13 +11942,13 @@ }, "node_modules/ieee754": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ieee754/-/ieee754-1.1.13.tgz", "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, "node_modules/ignore": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, "engines": { @@ -11642,7 +11957,7 @@ }, "node_modules/ignore-walk": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ignore-walk/-/ignore-walk-3.0.4.tgz", "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", "dev": true, "dependencies": { @@ -11651,8 +11966,8 @@ }, "node_modules/image-size": { "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "dev": true, "optional": true, "bin": { @@ -11664,8 +11979,8 @@ }, "node_modules/immutable": { "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -11673,7 +11988,7 @@ }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { @@ -11688,9 +12003,9 @@ } }, "node_modules/import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", + "version": "3.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "dependencies": { "pkg-dir": "^4.2.0", @@ -11701,12 +12016,15 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { "node": ">=0.8.19" @@ -11714,7 +12032,7 @@ }, "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "engines": { @@ -11723,26 +12041,26 @@ }, "node_modules/indexes-of": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", "dev": true }, "node_modules/indexof": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", "dev": true }, "node_modules/infer-owner": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", "dev": true }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -11750,12 +12068,12 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true, "engines": { @@ -11764,7 +12082,7 @@ }, "node_modules/inquirer": { "version": "8.1.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inquirer/-/inquirer-8.1.2.tgz", "integrity": "sha512-DHLKJwLPNgkfwNmsuEUKSejJFbkv0FMO9SMiQbjI3n5NQuCrSIBqP66ggqyz2a6t2qEolKrMjhQ3+W/xXgUQ+Q==", "dev": true, "dependencies": { @@ -11789,7 +12107,7 @@ }, "node_modules/inquirer/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -11804,7 +12122,7 @@ }, "node_modules/inquirer/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -11820,7 +12138,7 @@ }, "node_modules/inquirer/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -11832,13 +12150,13 @@ }, "node_modules/inquirer/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/inquirer/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -11846,17 +12164,17 @@ } }, "node_modules/inquirer/node_modules/rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "version": "7.8.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "dependencies": { - "tslib": "~2.1.0" + "tslib": "^2.1.0" } }, "node_modules/inquirer/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -11866,15 +12184,9 @@ "node": ">=8" } }, - "node_modules/inquirer/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - }, "node_modules/insight": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/insight/-/insight-0.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/insight/-/insight-0.11.1.tgz", "integrity": "sha512-TBcZ0qC9dgdmcxL93OoqkY/RZXJtIi0i07phX/QyYk2ysmJtZex59dgTj4Doq50N9CG9dLRe/RIudc/5CCoFNw==", "dev": true, "dependencies": { @@ -11894,7 +12206,7 @@ }, "node_modules/insight/node_modules/ansi-escapes": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-escapes/-/ansi-escapes-3.2.0.tgz", "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true, "engines": { @@ -11902,9 +12214,9 @@ } }, "node_modules/insight/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, "engines": { "node": ">=6" @@ -11912,7 +12224,7 @@ }, "node_modules/insight/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -11927,7 +12239,7 @@ }, "node_modules/insight/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -11943,8 +12255,8 @@ }, "node_modules/insight/node_modules/cli-cursor": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", "dev": true, "dependencies": { "restore-cursor": "^2.0.0" @@ -11955,13 +12267,13 @@ }, "node_modules/insight/node_modules/cli-width": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-width/-/cli-width-2.2.1.tgz", "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, "node_modules/insight/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -11973,14 +12285,14 @@ }, "node_modules/insight/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/insight/node_modules/figures": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", "dev": true, "dependencies": { "escape-string-regexp": "^1.0.5" @@ -11991,7 +12303,7 @@ }, "node_modules/insight/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -12000,7 +12312,7 @@ }, "node_modules/insight/node_modules/inquirer": { "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inquirer/-/inquirer-6.5.2.tgz", "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "dev": true, "dependencies": { @@ -12024,7 +12336,7 @@ }, "node_modules/insight/node_modules/inquirer/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { @@ -12036,7 +12348,7 @@ }, "node_modules/insight/node_modules/inquirer/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { @@ -12050,7 +12362,7 @@ }, "node_modules/insight/node_modules/inquirer/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { @@ -12059,14 +12371,14 @@ }, "node_modules/insight/node_modules/inquirer/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/insight/node_modules/inquirer/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" @@ -12074,7 +12386,7 @@ }, "node_modules/insight/node_modules/inquirer/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { @@ -12086,8 +12398,8 @@ }, "node_modules/insight/node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true, "engines": { "node": ">=4" @@ -12095,7 +12407,7 @@ }, "node_modules/insight/node_modules/mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true, "engines": { @@ -12104,14 +12416,14 @@ }, "node_modules/insight/node_modules/mute-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", "dev": true }, "node_modules/insight/node_modules/onetime": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", "dev": true, "dependencies": { "mimic-fn": "^1.0.0" @@ -12122,8 +12434,8 @@ }, "node_modules/insight/node_modules/restore-cursor": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", "dev": true, "dependencies": { "onetime": "^2.0.0", @@ -12135,7 +12447,7 @@ }, "node_modules/insight/node_modules/string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "dependencies": { @@ -12147,9 +12459,9 @@ } }, "node_modules/insight/node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "3.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true, "engines": { "node": ">=4" @@ -12157,8 +12469,8 @@ }, "node_modules/insight/node_modules/string-width/node_modules/strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, "dependencies": { "ansi-regex": "^3.0.0" @@ -12169,7 +12481,7 @@ }, "node_modules/insight/node_modules/strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { @@ -12181,7 +12493,7 @@ }, "node_modules/insight/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -12193,7 +12505,7 @@ }, "node_modules/internal-ip": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/internal-ip/-/internal-ip-4.3.0.tgz", "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", "dev": true, "dependencies": { @@ -12206,7 +12518,7 @@ }, "node_modules/interpret": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, "engines": { @@ -12215,7 +12527,7 @@ }, "node_modules/invert-kv": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/invert-kv/-/invert-kv-3.0.1.tgz", "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==", "dev": true, "engines": { @@ -12226,15 +12538,15 @@ } }, "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", "dev": true }, "node_modules/ip-regex": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", "dev": true, "engines": { "node": ">=4" @@ -12242,7 +12554,7 @@ }, "node_modules/ipaddr.js": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, "engines": { @@ -12251,7 +12563,7 @@ }, "node_modules/is-absolute": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-absolute/-/is-absolute-1.0.0.tgz", "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "dev": true, "dependencies": { @@ -12264,7 +12576,7 @@ }, "node_modules/is-absolute-url": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-absolute-url/-/is-absolute-url-3.0.3.tgz", "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", "dev": true, "engines": { @@ -12272,20 +12584,20 @@ } }, "node_modules/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==", + "version": "1.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", "dev": true, "dependencies": { - "kind-of": "^6.0.0" + "hasown": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, "node_modules/is-arguments": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, "dependencies": { @@ -12301,13 +12613,13 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, "node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dependencies": { "binary-extensions": "^2.0.0" @@ -12318,36 +12630,36 @@ }, "node_modules/is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "node_modules/is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "version": "2.13.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/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==", + "version": "1.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", "dev": true, "dependencies": { - "kind-of": "^6.0.0" + "hasown": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, "dependencies": { @@ -12361,22 +12673,21 @@ } }, "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "1.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, "bin": { @@ -12391,7 +12702,7 @@ }, "node_modules/is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "dependencies": { @@ -12403,15 +12714,15 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { "node": ">=8" @@ -12419,7 +12730,7 @@ }, "node_modules/is-generator-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "engines": { @@ -12428,7 +12739,7 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dependencies": { "is-extglob": "^2.1.1" @@ -12439,7 +12750,7 @@ }, "node_modules/is-interactive": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, "engines": { @@ -12448,14 +12759,14 @@ }, "node_modules/is-lambda": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, "node_modules/is-negated-glob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", "dev": true, "engines": { "node": ">=0.10.0" @@ -12463,7 +12774,7 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "engines": { "node": ">=0.12.0" @@ -12471,7 +12782,7 @@ }, "node_modules/is-number-like": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-number-like/-/is-number-like-1.0.8.tgz", "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", "dev": true, "dependencies": { @@ -12480,7 +12791,7 @@ }, "node_modules/is-obj": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, "engines": { @@ -12489,7 +12800,7 @@ }, "node_modules/is-path-cwd": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-path-cwd/-/is-path-cwd-2.2.0.tgz", "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true, "engines": { @@ -12498,7 +12809,7 @@ }, "node_modules/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", "dev": true, "dependencies": { @@ -12510,7 +12821,7 @@ }, "node_modules/is-path-inside": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-path-inside/-/is-path-inside-2.1.0.tgz", "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", "dev": true, "dependencies": { @@ -12522,7 +12833,7 @@ }, "node_modules/is-plain-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, "engines": { @@ -12531,7 +12842,7 @@ }, "node_modules/is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "dependencies": { @@ -12543,13 +12854,13 @@ }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, "node_modules/is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "dependencies": { @@ -12565,7 +12876,7 @@ }, "node_modules/is-relative": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-relative/-/is-relative-1.0.0.tgz", "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, "dependencies": { @@ -12575,15 +12886,9 @@ "node": ">=0.10.0" } }, - "node_modules/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 - }, "node_modules/is-scoped": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-scoped/-/is-scoped-2.1.0.tgz", "integrity": "sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==", "dev": true, "dependencies": { @@ -12595,7 +12900,7 @@ }, "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "engines": { @@ -12607,13 +12912,13 @@ }, "node_modules/is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, "node_modules/is-unc-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-unc-path/-/is-unc-path-1.0.0.tgz", "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, "dependencies": { @@ -12625,7 +12930,7 @@ }, "node_modules/is-unicode-supported": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, "engines": { @@ -12637,19 +12942,19 @@ }, "node_modules/is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", "dev": true }, "node_modules/is-what": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", "dev": true }, "node_modules/is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, "engines": { @@ -12658,7 +12963,7 @@ }, "node_modules/is-wsl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "dependencies": { @@ -12670,14 +12975,14 @@ }, "node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "node_modules/isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "version": "4.0.10", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true, "engines": { "node": ">= 8.0.0" @@ -12688,14 +12993,14 @@ }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "node_modules/isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -12703,14 +13008,14 @@ }, "node_modules/isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", "dev": true }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "version": "3.2.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "engines": { "node": ">=8" @@ -12718,7 +13023,7 @@ }, "node_modules/istanbul-lib-instrument": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, "dependencies": { @@ -12732,40 +13037,82 @@ } }, "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/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==", + "version": "3.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/istanbul-lib-report/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, + "node_modules/istanbul-lib-report/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/istanbul-lib-report/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -12775,9 +13122,15 @@ "node": ">=8" } }, + "node_modules/istanbul-lib-report/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "dependencies": { @@ -12791,7 +13144,7 @@ }, "node_modules/istanbul-lib-source-maps/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -12799,9 +13152,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", - "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", + "version": "3.1.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -12812,32 +13165,114 @@ } }, "node_modules/jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "version": "10.8.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", "dev": true, "dependencies": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" }, "bin": { "jake": "bin/cli.js" }, "engines": { - "node": "*" + "node": ">=10" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jake/node_modules/async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "version": "3.2.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/java-parser": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/java-parser/-/java-parser-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/java-parser/-/java-parser-1.4.0.tgz", "integrity": "sha512-5r1Ez6D8SRprarqwXTYzu6Am//jw37USu8ie8a5166KfgTc2yKa0wlz08xKX1HXYRo/jbnODUfGMgd7gPhHLog==", "dev": true, "dependencies": { @@ -12847,7 +13282,7 @@ }, "node_modules/java-parser/node_modules/chevrotain": { "version": "6.5.0", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-6.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chevrotain/-/chevrotain-6.5.0.tgz", "integrity": "sha512-BwqQ/AgmKJ8jcMEjaSnfMybnKMgGTrtDKowfTP3pX4jwVy0kNjRsT/AP6h+wC3+3NC+X8X15VWBnTCQlX+wQFg==", "dev": true, "dependencies": { @@ -12856,13 +13291,13 @@ }, "node_modules/java-parser/node_modules/regexp-to-ast": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regexp-to-ast/-/regexp-to-ast-0.4.0.tgz", "integrity": "sha512-4qf/7IsIKfSNHQXSwial1IFmfM1Cc/whNBQqRwe0V2stPe7KmN1U0tWQiIx6JiirgSrisjE0eECdNf7Tav1Ntw==", "dev": true }, "node_modules/jest": { "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest/-/jest-27.2.0.tgz", "integrity": "sha512-oUqVXyvh5YwEWl263KWdPUAqEzBFzGHdFLQ05hUnITr1tH+9SscEI9A/GH9eBClA+Nw1ct+KNuuOV6wlnmBPcg==", "dev": true, "dependencies": { @@ -12886,12 +13321,12 @@ } }, "node_modules/jest-changed-files": { - "version": "27.3.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.3.0.tgz", - "integrity": "sha512-9DJs9garMHv4RhylUMZgbdCJ3+jHSkpL9aaVKp13xtXAD80qLTLrqcDZL1PHA9dYA0bCI86Nv2BhkLpLhrBcPg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "execa": "^5.0.0", "throat": "^6.0.1" }, @@ -12900,27 +13335,27 @@ } }, "node_modules/jest-circus": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.3.1.tgz", - "integrity": "sha512-v1dsM9II6gvXokgqq6Yh2jHCpfg7ZqV4jWY66u7npz24JnhP3NHxI0sKT7+ZMQ7IrOWHYAaeEllOySbDbWsiXw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", "dev": true, "dependencies": { - "@jest/environment": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^0.7.0", - "expect": "^27.3.1", + "expect": "^27.5.1", "is-generator-fn": "^2.0.0", - "jest-each": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "pretty-format": "^27.3.1", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", "slash": "^3.0.0", "stack-utils": "^2.0.3", "throat": "^6.0.1" @@ -12931,7 +13366,7 @@ }, "node_modules/jest-circus/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -12946,7 +13381,7 @@ }, "node_modules/jest-circus/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -12962,7 +13397,7 @@ }, "node_modules/jest-circus/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -12974,13 +13409,13 @@ }, "node_modules/jest-circus/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/jest-circus/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -12989,7 +13424,7 @@ }, "node_modules/jest-circus/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -13000,21 +13435,21 @@ } }, "node_modules/jest-cli": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.3.1.tgz", - "integrity": "sha512-WHnCqpfK+6EvT62me6WVs8NhtbjAS4/6vZJnk7/2+oOr50cwAzG4Wxt6RXX0hu6m1169ZGMlhYYUNeKBXCph/Q==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", "dev": true, "dependencies": { - "@jest/core": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", "chalk": "^4.0.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", "prompts": "^2.0.1", "yargs": "^16.2.0" }, @@ -13035,7 +13470,7 @@ }, "node_modules/jest-cli/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -13050,7 +13485,7 @@ }, "node_modules/jest-cli/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -13064,9 +13499,20 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-cli/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "node_modules/jest-cli/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -13078,13 +13524,13 @@ }, "node_modules/jest-cli/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/jest-cli/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -13092,32 +13538,35 @@ } }, "node_modules/jest-cli/node_modules/jest-config": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.3.1.tgz", - "integrity": "sha512-KY8xOIbIACZ/vdYCKSopL44I0xboxC751IX+DXL2+Wx6DKNycyEfV3rryC3BPm5Uq/BBqDoMrKuqLEUNJmMKKg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", "dev": true, "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.3.1", - "@jest/types": "^27.2.5", - "babel-jest": "^27.3.1", + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-circus": "^27.3.1", - "jest-environment-jsdom": "^27.3.1", - "jest-environment-node": "^27.3.1", - "jest-get-type": "^27.3.1", - "jest-jasmine2": "^27.3.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.3.1", - "jest-runner": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", "micromatch": "^4.0.4", - "pretty-format": "^27.3.1" + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -13133,7 +13582,7 @@ }, "node_modules/jest-cli/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -13145,7 +13594,7 @@ }, "node_modules/jest-cli/node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { @@ -13163,20 +13612,20 @@ }, "node_modules/jest-date-mock": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/jest-date-mock/-/jest-date-mock-1.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-date-mock/-/jest-date-mock-1.0.8.tgz", "integrity": "sha512-0Lyp+z9xvuNmLbK+5N6FOhSiBeux05Lp5bbveFBmYo40Aggl2wwxFoIrZ+rOWC8nDNcLeBoDd2miQdEDSf3iQw==", "dev": true }, "node_modules/jest-diff": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.3.1.tgz", - "integrity": "sha512-PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -13184,7 +13633,7 @@ }, "node_modules/jest-diff/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -13199,7 +13648,7 @@ }, "node_modules/jest-diff/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -13215,7 +13664,7 @@ }, "node_modules/jest-diff/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -13227,13 +13676,13 @@ }, "node_modules/jest-diff/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/jest-diff/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -13242,7 +13691,7 @@ }, "node_modules/jest-diff/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -13253,9 +13702,9 @@ } }, "node_modules/jest-docblock": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", - "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", "dev": true, "dependencies": { "detect-newline": "^3.0.0" @@ -13265,16 +13714,16 @@ } }, "node_modules/jest-each": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.3.1.tgz", - "integrity": "sha512-E4SwfzKJWYcvOYCjOxhZcxwL+AY0uFMvdCOwvzgutJiaiodFjkxQQDxHm8FQBeTqDnSmKsQWn7ldMRzTn2zJaQ==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "chalk": "^4.0.0", - "jest-get-type": "^27.3.1", - "jest-util": "^27.3.1", - "pretty-format": "^27.3.1" + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -13282,7 +13731,7 @@ }, "node_modules/jest-each/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -13297,7 +13746,7 @@ }, "node_modules/jest-each/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -13313,7 +13762,7 @@ }, "node_modules/jest-each/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -13325,13 +13774,13 @@ }, "node_modules/jest-each/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/jest-each/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -13340,7 +13789,7 @@ }, "node_modules/jest-each/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -13351,17 +13800,17 @@ } }, "node_modules/jest-environment-jsdom": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.3.1.tgz", - "integrity": "sha512-3MOy8qMzIkQlfb3W1TfrD7uZHj+xx8Olix5vMENkj5djPmRqndMaXtpnaZkxmxM+Qc3lo+yVzJjzuXbCcZjAlg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", "dev": true, "dependencies": { - "@jest/environment": "^27.3.1", - "@jest/fake-timers": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", - "jest-mock": "^27.3.0", - "jest-util": "^27.3.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", "jsdom": "^16.6.0" }, "engines": { @@ -13369,47 +13818,47 @@ } }, "node_modules/jest-environment-node": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.3.1.tgz", - "integrity": "sha512-T89F/FgkE8waqrTSA7/ydMkcc52uYPgZZ6q8OaZgyiZkJb5QNNCF6oPZjH9IfPFfcc9uBWh1574N0kY0pSvTXw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", "dev": true, "dependencies": { - "@jest/environment": "^27.3.1", - "@jest/fake-timers": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", - "jest-mock": "^27.3.0", - "jest-util": "^27.3.1" + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-get-type": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.3.1.tgz", - "integrity": "sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", "dev": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-haste-map": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.3.1.tgz", - "integrity": "sha512-lYfNZIzwPccDJZIyk9Iz5iQMM/MH56NIIcGj7AFU1YyA4ewWFBl8z+YPJuSCRML/ee2cCt2y3W4K3VXPT6Nhzg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "@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": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.3.1", - "jest-worker": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", "micromatch": "^4.0.4", "walker": "^1.0.7" }, @@ -13421,28 +13870,27 @@ } }, "node_modules/jest-jasmine2": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.3.1.tgz", - "integrity": "sha512-WK11ZUetDQaC09w4/j7o4FZDUIp+4iYWH/Lik34Pv7ukL+DuXFGdnmmi7dT58J2ZYKFB5r13GyE0z3NPeyJmsg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", "dev": true, "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.3.1", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "expect": "^27.3.1", + "expect": "^27.5.1", "is-generator-fn": "^2.0.0", - "jest-each": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "pretty-format": "^27.3.1", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", "throat": "^6.0.1" }, "engines": { @@ -13451,7 +13899,7 @@ }, "node_modules/jest-jasmine2/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -13466,7 +13914,7 @@ }, "node_modules/jest-jasmine2/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -13482,7 +13930,7 @@ }, "node_modules/jest-jasmine2/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -13494,13 +13942,13 @@ }, "node_modules/jest-jasmine2/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/jest-jasmine2/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -13509,7 +13957,7 @@ }, "node_modules/jest-jasmine2/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -13521,7 +13969,7 @@ }, "node_modules/jest-junit": { "version": "12.2.0", - "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-12.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-junit/-/jest-junit-12.2.0.tgz", "integrity": "sha512-ecGzF3KEQwLbMP5xMO7wqmgmyZlY/5yWDvgE/vFa+/uIT0KsU5nluf0D2fjIlOKB+tb6DiuSSpZuGpsmwbf7Fw==", "dev": true, "dependencies": { @@ -13535,9 +13983,9 @@ } }, "node_modules/jest-junit/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, "engines": { "node": ">=6" @@ -13545,7 +13993,7 @@ }, "node_modules/jest-junit/node_modules/strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { @@ -13556,28 +14004,28 @@ } }, "node_modules/jest-leak-detector": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.3.1.tgz", - "integrity": "sha512-78QstU9tXbaHzwlRlKmTpjP9k4Pvre5l0r8Spo4SbFFVy/4Abg9I6ZjHwjg2QyKEAMg020XcjP+UgLZIY50yEg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", "dev": true, "dependencies": { - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.3.1.tgz", - "integrity": "sha512-hX8N7zXS4k+8bC1Aj0OWpGb7D3gIXxYvPNK1inP5xvE4ztbz3rc4AkI6jGVaerepBnfWB17FL5lWFJT3s7qo8w==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^27.3.1", - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -13585,7 +14033,7 @@ }, "node_modules/jest-matcher-utils/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -13600,7 +14048,7 @@ }, "node_modules/jest-matcher-utils/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -13616,7 +14064,7 @@ }, "node_modules/jest-matcher-utils/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -13628,13 +14076,13 @@ }, "node_modules/jest-matcher-utils/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/jest-matcher-utils/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -13643,7 +14091,7 @@ }, "node_modules/jest-matcher-utils/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -13654,18 +14102,18 @@ } }, "node_modules/jest-message-util": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.3.1.tgz", - "integrity": "sha512-bh3JEmxsTZ/9rTm0jQrPElbY2+y48Rw2t47uMfByNyUVR+OfPh4anuyKsGqsNkXk/TI4JbLRZx+7p7Hdt6q1yg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^27.3.1", + "pretty-format": "^27.5.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -13675,7 +14123,7 @@ }, "node_modules/jest-message-util/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -13690,7 +14138,7 @@ }, "node_modules/jest-message-util/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -13706,7 +14154,7 @@ }, "node_modules/jest-message-util/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -13718,13 +14166,13 @@ }, "node_modules/jest-message-util/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/jest-message-util/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -13733,7 +14181,7 @@ }, "node_modules/jest-message-util/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -13744,12 +14192,12 @@ } }, "node_modules/jest-mock": { - "version": "27.3.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.3.0.tgz", - "integrity": "sha512-ziZiLk0elZOQjD08bLkegBzv5hCABu/c8Ytx45nJKkysQwGaonvmTxwjLqEA4qGdasq9o2I8/HtdGMNnVsMTGw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "@types/node": "*" }, "engines": { @@ -13757,9 +14205,9 @@ } }, "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "version": "1.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "engines": { "node": ">=6" @@ -13775,7 +14223,7 @@ }, "node_modules/jest-preset-angular": { "version": "9.0.7", - "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-9.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-preset-angular/-/jest-preset-angular-9.0.7.tgz", "integrity": "sha512-yK4TdbNBwO5Nq55nYq8uJqs8+xKWVXjBVv3glndm/gx4EjVMmxJO2FB5q7JJ8M5Uf/jxANSu0PjS65opti2DXA==", "dev": true, "dependencies": { @@ -13792,27 +14240,27 @@ } }, "node_modules/jest-regex-util": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", - "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", "dev": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-resolve": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.3.1.tgz", - "integrity": "sha512-Dfzt25CFSPo3Y3GCbxynRBZzxq9AdyNN+x/v2IqYx6KVT5Z6me2Z/PsSGFSv3cOSUZqJ9pHxilao/I/m9FouLw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", "resolve": "^1.20.0", "resolve.exports": "^1.1.0", "slash": "^3.0.0" @@ -13822,14 +14270,14 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.3.1.tgz", - "integrity": "sha512-X7iLzY8pCiYOnvYo2YrK3P9oSE8/3N2f4pUZMJ8IUcZnT81vlSonya1KTO9ZfKGuC+svE6FHK/XOb8SsoRUV1A==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.3.1" + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -13837,7 +14285,7 @@ }, "node_modules/jest-resolve/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -13852,7 +14300,7 @@ }, "node_modules/jest-resolve/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -13868,7 +14316,7 @@ }, "node_modules/jest-resolve/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -13880,13 +14328,13 @@ }, "node_modules/jest-resolve/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/jest-resolve/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -13895,7 +14343,7 @@ }, "node_modules/jest-resolve/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -13906,31 +14354,30 @@ } }, "node_modules/jest-runner": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.3.1.tgz", - "integrity": "sha512-r4W6kBn6sPr3TBwQNmqE94mPlYVn7fLBseeJfo4E2uCTmAyDFm2O5DYAQAFP7Q3YfiA/bMwg8TVsciP7k0xOww==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", "dev": true, "dependencies": { - "@jest/console": "^27.3.1", - "@jest/environment": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.3.1", - "jest-environment-node": "^27.3.1", - "jest-haste-map": "^27.3.1", - "jest-leak-detector": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-resolve": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-util": "^27.3.1", - "jest-worker": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", "source-map-support": "^0.5.6", "throat": "^6.0.1" }, @@ -13940,7 +14387,7 @@ }, "node_modules/jest-runner/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -13955,7 +14402,7 @@ }, "node_modules/jest-runner/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -13971,7 +14418,7 @@ }, "node_modules/jest-runner/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -13983,13 +14430,13 @@ }, "node_modules/jest-runner/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/jest-runner/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -13998,7 +14445,7 @@ }, "node_modules/jest-runner/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -14009,37 +14456,33 @@ } }, "node_modules/jest-runtime": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.3.1.tgz", - "integrity": "sha512-qtO6VxPbS8umqhEDpjA4pqTkKQ1Hy4ZSi9mDVeE9Za7LKBo2LdW2jmT+Iod3XFaJqINikZQsn2wEi0j9wPRbLg==", - "dev": true, - "dependencies": { - "@jest/console": "^27.3.1", - "@jest/environment": "^27.3.1", - "@jest/globals": "^27.3.1", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/yargs": "^16.0.0", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "execa": "^5.0.0", - "exit": "^0.1.2", "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-mock": "^27.3.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.2.0" + "strip-bom": "^4.0.0" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -14047,7 +14490,7 @@ }, "node_modules/jest-runtime/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -14062,7 +14505,7 @@ }, "node_modules/jest-runtime/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -14078,7 +14521,7 @@ }, "node_modules/jest-runtime/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -14090,13 +14533,13 @@ }, "node_modules/jest-runtime/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/jest-runtime/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -14105,7 +14548,7 @@ }, "node_modules/jest-runtime/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -14115,66 +14558,46 @@ "node": ">=8" } }, - "node_modules/jest-runtime/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "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" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/jest-serializer": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", - "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", "dev": true, "dependencies": { "@types/node": "*", - "graceful-fs": "^4.2.4" + "graceful-fs": "^4.2.9" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-snapshot": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.3.1.tgz", - "integrity": "sha512-APZyBvSgQgOT0XumwfFu7X3G5elj6TGhCBLbBdn3R1IzYustPGPE38F51dBWMQ8hRXa9je0vAdeVDtqHLvB6lg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", "dev": true, "dependencies": { "@babel/core": "^7.7.2", "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/traverse": "^7.7.2", "@babel/types": "^7.0.0", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", "@types/babel__traverse": "^7.0.4", "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^27.3.1", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.3.1", - "jest-get-type": "^27.3.1", - "jest-haste-map": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-resolve": "^27.3.1", - "jest-util": "^27.3.1", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", "natural-compare": "^1.4.0", - "pretty-format": "^27.3.1", + "pretty-format": "^27.5.1", "semver": "^7.3.2" }, "engines": { @@ -14183,7 +14606,7 @@ }, "node_modules/jest-snapshot/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -14198,7 +14621,7 @@ }, "node_modules/jest-snapshot/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -14214,7 +14637,7 @@ }, "node_modules/jest-snapshot/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -14226,13 +14649,13 @@ }, "node_modules/jest-snapshot/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/jest-snapshot/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -14241,7 +14664,7 @@ }, "node_modules/jest-snapshot/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -14253,7 +14676,7 @@ }, "node_modules/jest-sonar-reporter": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jest-sonar-reporter/-/jest-sonar-reporter-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-sonar-reporter/-/jest-sonar-reporter-2.0.0.tgz", "integrity": "sha512-ZervDCgEX5gdUbdtWsjdipLN3bKJwpxbvhkYNXTAYvAckCihobSLr9OT/IuyNIRT1EZMDDwR6DroWtrq+IL64w==", "dev": true, "dependencies": { @@ -14264,16 +14687,16 @@ } }, "node_modules/jest-util": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.3.1.tgz", - "integrity": "sha512-8fg+ifEH3GDryLQf/eKZck1DEs2YuVPBCMOaHQxVVLmQwl/CDhWzrvChTX4efLZxGrw+AA0mSXv78cyytBt/uw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "picomatch": "^2.2.3" }, "engines": { @@ -14282,7 +14705,7 @@ }, "node_modules/jest-util/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -14297,7 +14720,7 @@ }, "node_modules/jest-util/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -14313,7 +14736,7 @@ }, "node_modules/jest-util/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -14325,13 +14748,13 @@ }, "node_modules/jest-util/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/jest-util/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -14340,7 +14763,7 @@ }, "node_modules/jest-util/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -14351,17 +14774,17 @@ } }, "node_modules/jest-validate": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.3.1.tgz", - "integrity": "sha512-3H0XCHDFLA9uDII67Bwi1Vy7AqwA5HqEEjyy934lgVhtJ3eisw6ShOF1MDmRPspyikef5MyExvIm0/TuLzZ86Q==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^27.3.1", + "jest-get-type": "^27.5.1", "leven": "^3.1.0", - "pretty-format": "^27.3.1" + "pretty-format": "^27.5.1" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -14369,7 +14792,7 @@ }, "node_modules/jest-validate/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -14383,9 +14806,9 @@ } }, "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "engines": { "node": ">=10" @@ -14396,7 +14819,7 @@ }, "node_modules/jest-validate/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -14412,7 +14835,7 @@ }, "node_modules/jest-validate/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -14424,13 +14847,13 @@ }, "node_modules/jest-validate/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/jest-validate/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -14439,7 +14862,7 @@ }, "node_modules/jest-validate/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -14450,17 +14873,17 @@ } }, "node_modules/jest-watcher": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.3.1.tgz", - "integrity": "sha512-9/xbV6chABsGHWh9yPaAGYVVKurWoP3ZMCv6h+O1v9/+pkOroigs6WzZ0e9gLP/njokUwM7yQhr01LKJVMkaZA==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", "dev": true, "dependencies": { - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^27.3.1", + "jest-util": "^27.5.1", "string-length": "^4.0.1" }, "engines": { @@ -14469,7 +14892,7 @@ }, "node_modules/jest-watcher/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -14484,7 +14907,7 @@ }, "node_modules/jest-watcher/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -14500,7 +14923,7 @@ }, "node_modules/jest-watcher/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -14512,13 +14935,13 @@ }, "node_modules/jest-watcher/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/jest-watcher/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -14527,7 +14950,7 @@ }, "node_modules/jest-watcher/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -14538,9 +14961,9 @@ } }, "node_modules/jest-worker": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz", - "integrity": "sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "dependencies": { "@types/node": "*", @@ -14553,7 +14976,7 @@ }, "node_modules/jest-worker/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -14562,7 +14985,7 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { @@ -14577,40 +15000,40 @@ }, "node_modules/jmespath": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w==", "dev": true, "engines": { "node": ">= 0.6.0" } }, "node_modules/joi": { - "version": "17.4.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz", - "integrity": "sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw==", + "version": "17.11.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/joi/-/joi-17.11.0.tgz", + "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", "dev": true, "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.0", - "@sideway/formula": "^3.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } }, "node_modules/jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", + "version": "3.7.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", "peer": true }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { @@ -14623,13 +15046,13 @@ }, "node_modules/jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", "dev": true }, "node_modules/jsdom": { "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsdom/-/jsdom-16.7.0.tgz", "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", "dev": true, "dependencies": { @@ -14674,9 +15097,9 @@ } }, "node_modules/jsdom/node_modules/acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "version": "8.11.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -14687,7 +15110,7 @@ }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "bin": { "jsesc": "bin/jsesc" @@ -14696,45 +15119,51 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, "node_modules/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "version": "0.4.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", "dev": true }, "node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/json-schema-typed": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-typed/-/json-schema-typed-7.0.3.tgz", "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "node_modules/json-stringify-nice": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==", "dev": true, "funding": { @@ -14743,23 +15172,14 @@ }, "node_modules/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 - }, - "node_modules/json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dependencies": { - "minimist": "^1.2.5" - }, + "version": "2.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "bin": { "json5": "lib/cli.js" }, @@ -14769,14 +15189,14 @@ }, "node_modules/jsonc-parser": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsonc-parser/-/jsonc-parser-3.0.0.tgz", "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", "dev": true }, "node_modules/jsonfile": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==", "dev": true, "optionalDependencies": { "graceful-fs": "^4.1.6" @@ -14784,58 +15204,67 @@ }, "node_modules/jsonparse": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, "engines": [ "node >= 0.2.0" ] }, "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "version": "1.4.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, - "engines": [ - "node >=0.6.0" - ], "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.2.3", + "json-schema": "0.4.0", "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" } }, "node_modules/just-diff": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/just-diff/-/just-diff-3.1.1.tgz", "integrity": "sha512-sdMWKjRq8qWZEjDcVA6llnUT8RDEBIfOiGpYFPYa9u+2c39JCsejktSP7mj5eRid5EIvTzIpQ2kDOCw1Nq9BjQ==", "dev": true }, "node_modules/just-diff-apply": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-3.0.0.tgz", - "integrity": "sha512-K2MLc+ZC2DVxX4V61bIKPeMUUfj1YYZ3h0myhchDXOW1cKoPZMnjIoNCqv9bF2n5Oob1PFxuR2gVJxkxz4e58w==", + "version": "3.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/just-diff-apply/-/just-diff-apply-3.1.2.tgz", + "integrity": "sha512-TCa7ZdxCeq6q3Rgms2JCRHTCfWAETPZ8SzYUbkYF6KR3I03sN29DaOIC+xyWboIcMvjAsD5iG2u/RWzHD8XpgQ==", "dev": true }, "node_modules/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", "dev": true, "dependencies": { "source-map-support": "^0.5.5" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/killable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/killable/-/killable-1.0.1.tgz", "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", "dev": true }, "node_modules/kind-of": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { @@ -14844,7 +15273,7 @@ }, "node_modules/kleur": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, "engines": { @@ -14852,9 +15281,9 @@ } }, "node_modules/klona": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", - "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", + "version": "2.0.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true, "engines": { "node": ">= 8" @@ -14862,13 +15291,13 @@ }, "node_modules/kuler": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kuler/-/kuler-2.0.0.tgz", "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", "dev": true }, "node_modules/lcid": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lcid/-/lcid-3.1.1.tgz", "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==", "dev": true, "dependencies": { @@ -14880,7 +15309,7 @@ }, "node_modules/less": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/less/-/less-4.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/less/-/less-4.1.1.tgz", "integrity": "sha512-w09o8tZFPThBscl5d0Ggp3RcrKIouBoQscnOMgFH3n5V3kN/CXGHNfCkRPtxJk6nKryDXaV9aHLK55RXuH4sAw==", "dev": true, "dependencies": { @@ -14906,7 +15335,7 @@ }, "node_modules/less-loader": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/less-loader/-/less-loader-10.0.1.tgz", "integrity": "sha512-Crln//HpW9M5CbtdfWm3IO66Cvx1WhZQvNybXgfB2dD/6Sav9ppw+IWqs/FQKPBFO4B6X0X28Z0WNznshgwUzA==", "dev": true, "dependencies": { @@ -14926,7 +15355,7 @@ }, "node_modules/less/node_modules/make-dir": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "optional": true, @@ -14940,7 +15369,7 @@ }, "node_modules/less/node_modules/pify": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "optional": true, @@ -14949,9 +15378,9 @@ } }, "node_modules/less/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "optional": true, "bin": { @@ -14960,7 +15389,7 @@ }, "node_modules/less/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "optional": true, @@ -14970,13 +15399,13 @@ }, "node_modules/less/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/leven": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, "engines": { @@ -14985,7 +15414,7 @@ }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { @@ -14998,7 +15427,7 @@ }, "node_modules/license-webpack-plugin": { "version": "2.3.20", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.20.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/license-webpack-plugin/-/license-webpack-plugin-2.3.20.tgz", "integrity": "sha512-AHVueg9clOKACSHkhmEI+PCC9x8+qsQVuKECZD3ETxETK5h/PCv5/MUzyG1gm8OMcip/s1tcNxqo9Qb7WhjGsg==", "dev": true, "dependencies": { @@ -15012,9 +15441,9 @@ } }, "node_modules/lilconfig": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", - "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", + "version": "2.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, "engines": { "node": ">=10" @@ -15022,19 +15451,19 @@ }, "node_modules/limiter": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/limiter/-/limiter-1.1.5.tgz", "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", "dev": true }, "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "version": "1.2.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "node_modules/load-yaml-file": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/load-yaml-file/-/load-yaml-file-0.2.0.tgz", "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", "dev": true, "dependencies": { @@ -15049,7 +15478,7 @@ }, "node_modules/load-yaml-file/node_modules/pify": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "engines": { @@ -15058,17 +15487,17 @@ }, "node_modules/load-yaml-file/node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "version": "4.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, "engines": { "node": ">=6.11.5" @@ -15076,7 +15505,7 @@ }, "node_modules/loader-utils": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/loader-utils/-/loader-utils-2.0.0.tgz", "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "dev": true, "dependencies": { @@ -15090,7 +15519,7 @@ }, "node_modules/localtunnel": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/localtunnel/-/localtunnel-2.0.2.tgz", "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", "dev": true, "dependencies": { @@ -15106,9 +15535,20 @@ "node": ">=8.3.0" } }, + "node_modules/localtunnel/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "node_modules/localtunnel/node_modules/yargs": { "version": "17.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs/-/yargs-17.1.1.tgz", "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", "dev": true, "dependencies": { @@ -15126,7 +15566,7 @@ }, "node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { @@ -15138,54 +15578,48 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/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 - }, "node_modules/lodash.debounce": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "node_modules/lodash.isfinite": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", - "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", "dev": true }, "node_modules/lodash.memoize": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, "node_modules/lodash.truncate": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, "node_modules/lodash.uniq": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, "node_modules/log-symbols": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "dependencies": { @@ -15201,7 +15635,7 @@ }, "node_modules/log-symbols/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -15216,7 +15650,7 @@ }, "node_modules/log-symbols/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -15232,7 +15666,7 @@ }, "node_modules/log-symbols/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -15244,13 +15678,13 @@ }, "node_modules/log-symbols/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -15259,7 +15693,7 @@ }, "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -15270,22 +15704,26 @@ } }, "node_modules/logform": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.3.0.tgz", - "integrity": "sha512-graeoWUH2knKbGthMtuG1EfaSPMZFZBIrhuJHhkS5ZseFBrc7DupCzihOQAzsK/qIKPQaPJ/lFQFctILUY5ARQ==", + "version": "2.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", "dev": true, "dependencies": { - "colors": "^1.2.1", + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", "fecha": "^4.2.0", "ms": "^2.1.1", - "safe-stable-stringify": "^1.1.0", + "safe-stable-stringify": "^2.3.1", "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" } }, "node_modules/loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "version": "1.8.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/loglevel/-/loglevel-1.8.1.tgz", + "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", "dev": true, "engines": { "node": ">= 0.6.0" @@ -15296,20 +15734,17 @@ } }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "yallist": "^3.0.2" } }, "node_modules/macos-release": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.0.tgz", - "integrity": "sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g==", + "version": "2.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/macos-release/-/macos-release-2.5.1.tgz", + "integrity": "sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==", "dev": true, "engines": { "node": ">=6" @@ -15320,7 +15755,7 @@ }, "node_modules/magic-string": { "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/magic-string/-/magic-string-0.25.7.tgz", "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", "dependencies": { "sourcemap-codec": "^1.4.4" @@ -15328,7 +15763,7 @@ }, "node_modules/make-dir": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "dependencies": { @@ -15342,9 +15777,9 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -15352,13 +15787,13 @@ }, "node_modules/make-error": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, "node_modules/make-fetch-happen": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, "dependencies": { @@ -15383,18 +15818,36 @@ "node": ">= 10" } }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "version": "1.0.12", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "dependencies": { - "tmpl": "1.0.x" + "tmpl": "1.0.5" } }, "node_modules/map-age-cleaner": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, "dependencies": { @@ -15406,8 +15859,8 @@ }, "node_modules/map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -15415,8 +15868,8 @@ }, "node_modules/map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", "dev": true, "dependencies": { "object-visit": "^1.0.0" @@ -15427,14 +15880,14 @@ }, "node_modules/mdn-data": { "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "dev": true }, "node_modules/media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, "engines": { "node": ">= 0.6" @@ -15442,7 +15895,7 @@ }, "node_modules/mem": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/mem/-/mem-5.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mem/-/mem-5.1.1.tgz", "integrity": "sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==", "dev": true, "dependencies": { @@ -15455,12 +15908,12 @@ } }, "node_modules/mem-fs": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-2.2.1.tgz", - "integrity": "sha512-yiAivd4xFOH/WXlUi6v/nKopBh1QLzwjFi36NK88cGt/PRXI8WeBASqY+YSjIVWvQTx3hR8zHKDBMV6hWmglNA==", + "version": "2.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mem-fs/-/mem-fs-2.3.0.tgz", + "integrity": "sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==", "dev": true, "dependencies": { - "@types/node": "^15.6.1", + "@types/node": "^15.6.2", "@types/vinyl": "^2.0.4", "vinyl": "^2.0.1", "vinyl-file": "^3.0.0" @@ -15471,7 +15924,7 @@ }, "node_modules/mem-fs-editor": { "version": "9.3.0", - "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-9.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mem-fs-editor/-/mem-fs-editor-9.3.0.tgz", "integrity": "sha512-QKFbPwGCh1ypmc2H8BUYpbapwT/x2AOCYZQogzSui4rUNes7WVMagQXsirPIfp18EarX0SSY9Fpg426nSjew4Q==", "dev": true, "dependencies": { @@ -15500,13 +15953,13 @@ }, "node_modules/mem-fs/node_modules/@types/node": { "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/node/-/node-15.14.9.tgz", "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", "dev": true }, "node_modules/mem/node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { @@ -15514,12 +15967,12 @@ } }, "node_modules/memfs": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.3.0.tgz", - "integrity": "sha512-BEE62uMfKOavX3iG7GYX43QJ+hAeeWnwIAuJ/R6q96jaMtiLzhsxHJC8B1L7fK7Pt/vXDRwb3SG/yBpNGDPqzg==", + "version": "3.5.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", "dev": true, "dependencies": { - "fs-monkey": "1.0.3" + "fs-monkey": "^1.0.4" }, "engines": { "node": ">= 4.0.0" @@ -15527,8 +15980,8 @@ }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", "dev": true, "dependencies": { "errno": "^0.1.3", @@ -15536,9 +15989,9 @@ } }, "node_modules/memory-fs/node_modules/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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -15550,9 +16003,15 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/memory-fs/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/memory-fs/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { @@ -15561,13 +16020,40 @@ }, "node_modules/merge-descriptors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", "dev": true }, + "node_modules/merge-jsons-webpack-plugin": { + "version": "1.0.21", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/merge-jsons-webpack-plugin/-/merge-jsons-webpack-plugin-1.0.21.tgz", + "integrity": "sha512-5Brw0DBi7tF48gm3BB21hu3qYWUMHuKWHKNqdZYmGTQlZQFTc63VFY/5LgonqusI/b0uvvjkpTdx1WrjInXreQ==", + "dev": true, + "dependencies": { + "es6-promise": "4.0.5", + "glob": "7.1.1" + } + }, + "node_modules/merge-jsons-webpack-plugin/node_modules/glob": { + "version": "7.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-mRyN/EsN2SyNhKWykF3eEGhDpeNplMWaW18Bmh76tnOqk5TbELAVwFAYOCmKVssOYFrYvvLMguiA+NXO3ZTuVA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, "node_modules/merge-source-map": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/merge-source-map/-/merge-source-map-1.1.0.tgz", "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "dev": true, "dependencies": { @@ -15576,7 +16062,7 @@ }, "node_modules/merge-source-map/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -15585,13 +16071,13 @@ }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "engines": { @@ -15600,21 +16086,21 @@ }, "node_modules/methods": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" @@ -15622,7 +16108,7 @@ }, "node_modules/mime": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, "bin": { @@ -15633,21 +16119,21 @@ } }, "node_modules/mime-db": { - "version": "1.50.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", - "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==", + "version": "1.52.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.33", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", - "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", + "version": "2.1.35", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "dependencies": { - "mime-db": "1.50.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -15655,7 +16141,7 @@ }, "node_modules/mimic-fn": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-3.1.0.tgz", "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", "dev": true, "engines": { @@ -15664,7 +16150,7 @@ }, "node_modules/mini-css-extract-plugin": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mini-css-extract-plugin/-/mini-css-extract-plugin-2.2.1.tgz", "integrity": "sha512-A0GBXpz8WIPgh2HfASJ0EeY8grd2dGxmC4R8uTujFJXZY7zFy0nvYSYW6SKCLKlz7y45BdHONfaxZQMIZpeF/w==", "dev": true, "dependencies": { @@ -15683,7 +16169,7 @@ }, "node_modules/mini-css-extract-plugin/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { @@ -15699,7 +16185,7 @@ }, "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "peerDependencies": { @@ -15708,14 +16194,14 @@ }, "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -15732,13 +16218,13 @@ }, "node_modules/minimalistic-assert": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, "node_modules/minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dependencies": { "brace-expansion": "^1.1.7" @@ -15748,14 +16234,17 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/minipass": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", - "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "version": "3.3.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "dependencies": { "yallist": "^4.0.0" @@ -15766,7 +16255,7 @@ }, "node_modules/minipass-collect": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, "dependencies": { @@ -15778,7 +16267,7 @@ }, "node_modules/minipass-fetch": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-fetch/-/minipass-fetch-1.4.1.tgz", "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "dev": true, "dependencies": { @@ -15795,7 +16284,7 @@ }, "node_modules/minipass-flush": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, "dependencies": { @@ -15807,7 +16296,7 @@ }, "node_modules/minipass-json-stream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "dev": true, "dependencies": { @@ -15817,7 +16306,7 @@ }, "node_modules/minipass-pipeline": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, "dependencies": { @@ -15829,7 +16318,7 @@ }, "node_modules/minipass-sized": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, "dependencies": { @@ -15839,9 +16328,15 @@ "node": ">=8" } }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/minizlib": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "dependencies": { @@ -15852,15 +16347,21 @@ "node": ">= 8" } }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/mitt": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mitt/-/mitt-1.2.0.tgz", "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", "dev": true }, "node_modules/mixin-deep": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "dependencies": { @@ -15873,7 +16374,7 @@ }, "node_modules/mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, "bin": { @@ -15885,7 +16386,7 @@ }, "node_modules/mkdirp-infer-owner": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", "dev": true, "dependencies": { @@ -15897,14 +16398,23 @@ "node": ">=10" } }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multicast-dns": { "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/multicast-dns/-/multicast-dns-6.2.3.tgz", "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "dev": true, "dependencies": { @@ -15917,13 +16427,13 @@ }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", "dev": true }, "node_modules/multimatch": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/multimatch/-/multimatch-5.0.0.tgz", "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", "dev": true, "dependencies": { @@ -15942,28 +16452,28 @@ }, "node_modules/mute-stream": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "version": "2.18.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", "dev": true, "optional": true }, - "node_modules/nanocolors": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", - "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==", - "dev": true - }, "node_modules/nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "version": "3.3.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -15973,7 +16483,7 @@ }, "node_modules/nanomatch": { "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "dependencies": { @@ -15995,13 +16505,13 @@ }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "node_modules/needle": { "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/needle/-/needle-2.9.1.tgz", "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", "dev": true, "optional": true, @@ -16019,7 +16529,7 @@ }, "node_modules/needle/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "optional": true, @@ -16028,16 +16538,16 @@ } }, "node_modules/needle/node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "version": "1.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", "dev": true, "optional": true }, "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "version": "0.6.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, "engines": { "node": ">= 0.6" @@ -16045,13 +16555,13 @@ }, "node_modules/neo-async": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, "node_modules/ngx-infinite-scroll": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ngx-infinite-scroll/-/ngx-infinite-scroll-10.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ngx-infinite-scroll/-/ngx-infinite-scroll-10.0.1.tgz", "integrity": "sha512-7is0eJZ9kJPsaHohRmMhJ/QFHAW9jp9twO5HcHRvFM/Yl/R8QCiokgjwmH0/CR3MuxUanxfHZMfO3PbYTwlBEg==", "hasInstallScript": true, "dependencies": { @@ -16061,7 +16571,7 @@ }, "node_modules/ngx-webstorage": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ngx-webstorage/-/ngx-webstorage-8.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ngx-webstorage/-/ngx-webstorage-8.0.0.tgz", "integrity": "sha512-dpHgboSi6adnYpwiAQ2/PRJe8dcvSbM2qWTacTCUPVPeWlhLvTCtIl1GA9BNDiZzYuyA3dmXyqlcDl/Th9Pi2A==", "dependencies": { "tslib": "^2.0.0" @@ -16073,7 +16583,7 @@ }, "node_modules/nice-napi": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nice-napi/-/nice-napi-1.0.2.tgz", "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", "dev": true, "hasInstallScript": true, @@ -16088,45 +16598,53 @@ }, "node_modules/nice-try": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "node_modules/node-addon-api": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "dev": true, "optional": true }, "node_modules/node-fetch": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", - "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "version": "2.7.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, "dependencies": { "whatwg-url": "^5.0.0" }, "engines": { "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "dependencies": { "tr46": "~0.0.3", @@ -16135,7 +16653,7 @@ }, "node_modules/node-forge": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-forge/-/node-forge-0.10.0.tgz", "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", "dev": true, "engines": { @@ -16144,7 +16662,7 @@ }, "node_modules/node-gyp": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-gyp/-/node-gyp-7.1.2.tgz", "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", "dev": true, "dependencies": { @@ -16167,9 +16685,9 @@ } }, "node_modules/node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "version": "4.7.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-gyp-build/-/node-gyp-build-4.7.1.tgz", + "integrity": "sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==", "dev": true, "optional": true, "bin": { @@ -16180,22 +16698,13 @@ }, "node_modules/node-int64": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, - "node_modules/node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/node-notifier": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-notifier/-/node-notifier-9.0.1.tgz", "integrity": "sha512-fPNFIp2hF/Dq7qLDzSg4vZ0J4e9v60gJR+Qx7RbjbWqzPDdEqeVpEx5CFeDAELIl+A/woaaNn1fQ5nEVerMxJg==", "dev": true, "dependencies": { @@ -16208,13 +16717,13 @@ } }, "node_modules/node-releases": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.0.tgz", - "integrity": "sha512-aA87l0flFYMzCHpTM3DERFSYxc6lv/BltdbRTOMZuxZ0cwZCD3mejE5n9vLhSJCN++/eOqr77G1IO5uXxlQYWA==" + "version": "2.0.14", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, "node_modules/nopt": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, "dependencies": { @@ -16229,7 +16738,7 @@ }, "node_modules/normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "dependencies": { @@ -16241,14 +16750,14 @@ }, "node_modules/normalize-package-data/node_modules/hosted-git-info": { "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" @@ -16256,7 +16765,7 @@ }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "engines": { "node": ">=0.10.0" @@ -16264,8 +16773,8 @@ }, "node_modules/normalize-range": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -16273,7 +16782,7 @@ }, "node_modules/normalize-url": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", "dev": true, "engines": { @@ -16285,7 +16794,7 @@ }, "node_modules/npm-bundled": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-bundled/-/npm-bundled-1.1.2.tgz", "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", "dev": true, "dependencies": { @@ -16294,7 +16803,7 @@ }, "node_modules/npm-install-checks": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-install-checks/-/npm-install-checks-4.0.0.tgz", "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", "dev": true, "dependencies": { @@ -16306,13 +16815,13 @@ }, "node_modules/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", "dev": true }, "node_modules/npm-package-arg": { "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-package-arg/-/npm-package-arg-8.1.5.tgz", "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", "dev": true, "dependencies": { @@ -16326,7 +16835,7 @@ }, "node_modules/npm-packlist": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-packlist/-/npm-packlist-2.2.2.tgz", "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", "dev": true, "dependencies": { @@ -16344,7 +16853,7 @@ }, "node_modules/npm-pick-manifest": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", "dev": true, "dependencies": { @@ -16356,7 +16865,7 @@ }, "node_modules/npm-registry-fetch": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "dev": true, "dependencies": { @@ -16373,7 +16882,7 @@ }, "node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "dependencies": { @@ -16385,7 +16894,7 @@ }, "node_modules/npmlog": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "dependencies": { @@ -16396,9 +16905,9 @@ } }, "node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "version": "2.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, "dependencies": { "boolbase": "^1.0.0" @@ -16409,28 +16918,28 @@ }, "node_modules/num2fraction": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", "dev": true }, "node_modules/number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "version": "2.2.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", "dev": true }, "node_modules/oauth-sign": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true, "engines": { @@ -16439,8 +16948,8 @@ }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -16448,8 +16957,8 @@ }, "node_modules/object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", "dev": true, "dependencies": { "copy-descriptor": "^0.1.0", @@ -16462,8 +16971,8 @@ }, "node_modules/object-copy/node_modules/define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" @@ -16472,57 +16981,23 @@ "node": ">=0.10.0" } }, - "node_modules/object-copy/node_modules/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, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/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, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/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, - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/object-copy/node_modules/kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -16532,9 +17007,9 @@ } }, "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "version": "1.13.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -16542,7 +17017,7 @@ }, "node_modules/object-is": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/object-is/-/object-is-1.1.5.tgz", "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", "dev": true, "dependencies": { @@ -16558,7 +17033,7 @@ }, "node_modules/object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, "engines": { @@ -16567,8 +17042,8 @@ }, "node_modules/object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", "dev": true, "dependencies": { "isobject": "^3.0.0" @@ -16577,28 +17052,10 @@ "node": ">=0.10.0" } }, - "node_modules/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, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "dev": true, "dependencies": { "isobject": "^3.0.1" @@ -16609,14 +17066,14 @@ }, "node_modules/obuf": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, "node_modules/on-finished": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, "dependencies": { "ee-first": "1.1.1" @@ -16627,7 +17084,7 @@ }, "node_modules/on-headers": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true, "engines": { @@ -16636,15 +17093,15 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { "wrappy": "1" } }, "node_modules/one-time": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/one-time/-/one-time-1.0.0.tgz", "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", "dev": true, "dependencies": { @@ -16653,7 +17110,7 @@ }, "node_modules/onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "dependencies": { @@ -16668,7 +17125,7 @@ }, "node_modules/onetime/node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { @@ -16677,7 +17134,7 @@ }, "node_modules/open": { "version": "8.2.1", - "resolved": "https://registry.npmjs.org/open/-/open-8.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/open/-/open-8.2.1.tgz", "integrity": "sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ==", "dev": true, "dependencies": { @@ -16694,7 +17151,7 @@ }, "node_modules/opencollective-postinstall": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", "bin": { "opencollective-postinstall": "index.js" @@ -16702,7 +17159,7 @@ }, "node_modules/opener": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true, "bin": { @@ -16711,13 +17168,13 @@ }, "node_modules/openurl": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", - "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==", "dev": true }, "node_modules/opn": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/opn/-/opn-5.3.0.tgz", "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", "dev": true, "dependencies": { @@ -16729,25 +17186,25 @@ }, "node_modules/opn/node_modules/is-wsl": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "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" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -16755,7 +17212,7 @@ }, "node_modules/ora": { "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, "dependencies": { @@ -16778,7 +17235,7 @@ }, "node_modules/ora/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -16793,7 +17250,7 @@ }, "node_modules/ora/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -16809,7 +17266,7 @@ }, "node_modules/ora/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -16821,13 +17278,13 @@ }, "node_modules/ora/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/ora/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -16836,7 +17293,7 @@ }, "node_modules/ora/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -16846,18 +17303,9 @@ "node": ">=8" } }, - "node_modules/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, - "dependencies": { - "url-parse": "^1.4.3" - } - }, "node_modules/os-locale": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/os-locale/-/os-locale-5.0.0.tgz", "integrity": "sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==", "dev": true, "dependencies": { @@ -16874,7 +17322,7 @@ }, "node_modules/os-locale/node_modules/execa": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/execa/-/execa-4.1.0.tgz", "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "dependencies": { @@ -16897,7 +17345,7 @@ }, "node_modules/os-locale/node_modules/get-stream": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "dependencies": { @@ -16912,7 +17360,7 @@ }, "node_modules/os-locale/node_modules/human-signals": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true, "engines": { @@ -16921,7 +17369,7 @@ }, "node_modules/os-name": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/os-name/-/os-name-4.0.1.tgz", "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", "dev": true, "dependencies": { @@ -16937,8 +17385,8 @@ }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, "engines": { "node": ">=0.10.0" @@ -16946,8 +17394,8 @@ }, "node_modules/p-defer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", "dev": true, "engines": { "node": ">=4" @@ -16955,8 +17403,8 @@ }, "node_modules/p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true, "engines": { "node": ">=4" @@ -16964,7 +17412,7 @@ }, "node_modules/p-is-promise": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-is-promise/-/p-is-promise-2.1.0.tgz", "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", "dev": true, "engines": { @@ -16973,7 +17421,7 @@ }, "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { @@ -16988,7 +17436,7 @@ }, "node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { @@ -17000,7 +17448,7 @@ }, "node_modules/p-locate/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { @@ -17015,7 +17463,7 @@ }, "node_modules/p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "dependencies": { @@ -17030,7 +17478,7 @@ }, "node_modules/p-queue": { "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-queue/-/p-queue-6.6.2.tgz", "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", "dev": true, "dependencies": { @@ -17046,7 +17494,7 @@ }, "node_modules/p-retry": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-retry/-/p-retry-3.0.1.tgz", "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", "dev": true, "dependencies": { @@ -17058,7 +17506,7 @@ }, "node_modules/p-timeout": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-timeout/-/p-timeout-3.2.0.tgz", "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "dev": true, "dependencies": { @@ -17070,7 +17518,7 @@ }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "engines": { @@ -17079,7 +17527,7 @@ }, "node_modules/pacote": { "version": "11.3.5", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pacote/-/pacote-11.3.5.tgz", "integrity": "sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==", "dev": true, "dependencies": { @@ -17112,13 +17560,13 @@ }, "node_modules/pako": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "dependencies": { @@ -17130,13 +17578,13 @@ }, "node_modules/parse-cache-control": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", "dev": true }, "node_modules/parse-conflict-json": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz", "integrity": "sha512-4gySviBiW5TRl7XHvp1agcS7SOe0KZOjC//71dzZVWJrY9hCrgtvl5v3SyIxCZ4fZF47TxD9nfzmxcx76xmbUw==", "dev": true, "dependencies": { @@ -17147,7 +17595,7 @@ }, "node_modules/parse-gitignore": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-gitignore/-/parse-gitignore-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-gitignore/-/parse-gitignore-1.0.1.tgz", "integrity": "sha512-UGyowyjtx26n65kdAMWhm6/3uy5uSrpcuH7tt+QEVudiBoVS+eqHxD5kbi9oWVRwj7sCzXqwuM+rUGw7earl6A==", "dev": true, "engines": { @@ -17156,7 +17604,7 @@ }, "node_modules/parse-json": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "dependencies": { @@ -17174,7 +17622,7 @@ }, "node_modules/parse-node-version": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, "engines": { @@ -17183,13 +17631,13 @@ }, "node_modules/parse5": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, "node_modules/parse5-html-rewriting-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", "dev": true, "dependencies": { @@ -17199,7 +17647,7 @@ }, "node_modules/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", "dev": true, "dependencies": { @@ -17208,7 +17656,7 @@ }, "node_modules/parse5-sax-parser": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", "dev": true, "dependencies": { @@ -17217,19 +17665,19 @@ }, "node_modules/parseqs": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parseqs/-/parseqs-0.0.6.tgz", "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", "dev": true }, "node_modules/parseuri": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parseuri/-/parseuri-0.0.6.tgz", "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", "dev": true }, "node_modules/parseurl": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, "engines": { @@ -17238,8 +17686,8 @@ }, "node_modules/pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -17247,13 +17695,13 @@ }, "node_modules/path-dirname": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", "dev": true }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { @@ -17262,21 +17710,21 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "engines": { "node": ">=0.10.0" } }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", "dev": true }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { @@ -17285,18 +17733,18 @@ }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-to-regexp": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", "dev": true }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "engines": { @@ -17305,19 +17753,20 @@ }, "node_modules/performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", "dev": true }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "0.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true }, "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "engines": { "node": ">=8.6" }, @@ -17327,8 +17776,8 @@ }, "node_modules/pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, "engines": { "node": ">=0.10.0" @@ -17336,8 +17785,8 @@ }, "node_modules/pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -17345,8 +17794,8 @@ }, "node_modules/pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, "dependencies": { "pinkie": "^2.0.0" @@ -17356,20 +17805,17 @@ } }, "node_modules/pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "version": "4.0.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, - "dependencies": { - "node-modules-regexp": "^1.0.0" - }, "engines": { "node": ">= 6" } }, "node_modules/piscina": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/piscina/-/piscina-3.1.0.tgz", "integrity": "sha512-KTW4sjsCD34MHrUbx9eAAbuUSpVj407hQSgk/6Epkg0pbRBmv4a3UX7Sr8wxm9xYqQLnsN4mFOjqGDzHAdgKQg==", "dev": true, "dependencies": { @@ -17383,7 +17829,7 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "dependencies": { @@ -17395,7 +17841,7 @@ }, "node_modules/pkg-up": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pkg-up/-/pkg-up-3.1.0.tgz", "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "dev": true, "dependencies": { @@ -17407,7 +17853,7 @@ }, "node_modules/pkg-up/node_modules/find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "dependencies": { @@ -17419,7 +17865,7 @@ }, "node_modules/pkg-up/node_modules/locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "dependencies": { @@ -17432,7 +17878,7 @@ }, "node_modules/pkg-up/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { @@ -17447,7 +17893,7 @@ }, "node_modules/pkg-up/node_modules/p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "dependencies": { @@ -17459,8 +17905,8 @@ }, "node_modules/pkg-up/node_modules/path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, "engines": { "node": ">=4" @@ -17468,7 +17914,7 @@ }, "node_modules/plugin-error": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/plugin-error/-/plugin-error-1.0.1.tgz", "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", "dev": true, "dependencies": { @@ -17483,7 +17929,7 @@ }, "node_modules/plugin-error/node_modules/ansi-colors": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-colors/-/ansi-colors-1.1.0.tgz", "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", "dev": true, "dependencies": { @@ -17495,7 +17941,7 @@ }, "node_modules/pluralize": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, "engines": { @@ -17504,7 +17950,7 @@ }, "node_modules/popper.js": { "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/popper.js/-/popper.js-1.16.1.tgz", "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", "peer": true, @@ -17514,14 +17960,14 @@ } }, "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "version": "1.0.32", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", "dev": true, "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" }, "engines": { "node": ">= 0.12.0" @@ -17529,7 +17975,7 @@ }, "node_modules/portfinder/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { @@ -17537,12 +17983,12 @@ } }, "node_modules/portfinder/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" @@ -17550,8 +17996,8 @@ }, "node_modules/portscanner": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz", - "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/portscanner/-/portscanner-2.1.1.tgz", + "integrity": "sha512-CUxI7PHXrWJTIPmQs1YJFyD4uesS3om2jVcgS3T1eYPyd60s1l0m7tf35Fn5KRAtV51SAD7BmImaOGf6vwhiFQ==", "dev": true, "dependencies": { "async": "1.5.2", @@ -17564,14 +18010,14 @@ }, "node_modules/portscanner/node_modules/async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", "dev": true }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -17579,7 +18025,7 @@ }, "node_modules/postcss": { "version": "8.3.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-8.3.6.tgz", "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", "dev": true, "dependencies": { @@ -17597,7 +18043,7 @@ }, "node_modules/postcss-attribute-case-insensitive": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", "dev": true, "dependencies": { @@ -17605,15 +18051,9 @@ "postcss-selector-parser": "^6.0.2" } }, - "node_modules/postcss-attribute-case-insensitive/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-attribute-case-insensitive/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -17630,7 +18070,7 @@ }, "node_modules/postcss-attribute-case-insensitive/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -17638,13 +18078,13 @@ } }, "node_modules/postcss-calc": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz", - "integrity": "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==", + "version": "8.2.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.2" @@ -17652,7 +18092,7 @@ }, "node_modules/postcss-color-functional-notation": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", "dev": true, "dependencies": { @@ -17663,15 +18103,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-color-functional-notation/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-color-functional-notation/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -17688,7 +18122,7 @@ }, "node_modules/postcss-color-functional-notation/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -17697,7 +18131,7 @@ }, "node_modules/postcss-color-gray": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", "dev": true, "dependencies": { @@ -17709,15 +18143,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-color-gray/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-color-gray/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -17734,7 +18162,7 @@ }, "node_modules/postcss-color-gray/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -17743,7 +18171,7 @@ }, "node_modules/postcss-color-hex-alpha": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", "dev": true, "dependencies": { @@ -17754,15 +18182,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-color-hex-alpha/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-color-hex-alpha/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -17779,7 +18201,7 @@ }, "node_modules/postcss-color-hex-alpha/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -17788,7 +18210,7 @@ }, "node_modules/postcss-color-mod-function": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", "dev": true, "dependencies": { @@ -17800,15 +18222,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-color-mod-function/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-color-mod-function/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -17825,7 +18241,7 @@ }, "node_modules/postcss-color-mod-function/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -17834,7 +18250,7 @@ }, "node_modules/postcss-color-rebeccapurple": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", "dev": true, "dependencies": { @@ -17845,15 +18261,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-color-rebeccapurple/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-color-rebeccapurple/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -17870,7 +18280,7 @@ }, "node_modules/postcss-color-rebeccapurple/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -17878,15 +18288,15 @@ } }, "node_modules/postcss-colormin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.0.tgz", - "integrity": "sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw==", + "version": "5.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", "dev": true, "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", - "colord": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -17896,12 +18306,13 @@ } }, "node_modules/postcss-convert-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz", - "integrity": "sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg==", + "version": "5.1.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", "dev": true, "dependencies": { - "postcss-value-parser": "^4.1.0" + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -17912,7 +18323,7 @@ }, "node_modules/postcss-custom-media": { "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", "dev": true, "dependencies": { @@ -17922,15 +18333,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-custom-media/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-custom-media/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -17947,7 +18352,7 @@ }, "node_modules/postcss-custom-media/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -17956,7 +18361,7 @@ }, "node_modules/postcss-custom-properties": { "version": "8.0.11", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", "dev": true, "dependencies": { @@ -17967,15 +18372,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-custom-properties/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-custom-properties/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -17992,7 +18391,7 @@ }, "node_modules/postcss-custom-properties/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -18001,7 +18400,7 @@ }, "node_modules/postcss-custom-selectors": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", "dev": true, "dependencies": { @@ -18014,7 +18413,7 @@ }, "node_modules/postcss-custom-selectors/node_modules/cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true, "bin": { @@ -18024,15 +18423,9 @@ "node": ">=4" } }, - "node_modules/postcss-custom-selectors/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-custom-selectors/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -18049,7 +18442,7 @@ }, "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "dependencies": { @@ -18063,7 +18456,7 @@ }, "node_modules/postcss-custom-selectors/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -18072,7 +18465,7 @@ }, "node_modules/postcss-dir-pseudo-class": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", "dev": true, "dependencies": { @@ -18085,7 +18478,7 @@ }, "node_modules/postcss-dir-pseudo-class/node_modules/cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true, "bin": { @@ -18095,15 +18488,9 @@ "node": ">=4" } }, - "node_modules/postcss-dir-pseudo-class/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-dir-pseudo-class/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -18120,7 +18507,7 @@ }, "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "dependencies": { @@ -18134,7 +18521,7 @@ }, "node_modules/postcss-dir-pseudo-class/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -18142,9 +18529,9 @@ } }, "node_modules/postcss-discard-comments": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz", - "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==", + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -18154,9 +18541,9 @@ } }, "node_modules/postcss-discard-duplicates": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz", - "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -18166,9 +18553,9 @@ } }, "node_modules/postcss-discard-empty": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz", - "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -18178,9 +18565,9 @@ } }, "node_modules/postcss-discard-overridden": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", - "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -18191,7 +18578,7 @@ }, "node_modules/postcss-double-position-gradients": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", "dev": true, "dependencies": { @@ -18202,15 +18589,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-double-position-gradients/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-double-position-gradients/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -18227,7 +18608,7 @@ }, "node_modules/postcss-double-position-gradients/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -18236,7 +18617,7 @@ }, "node_modules/postcss-env-function": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-env-function/-/postcss-env-function-2.0.2.tgz", "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", "dev": true, "dependencies": { @@ -18247,15 +18628,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-env-function/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-env-function/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -18272,7 +18647,7 @@ }, "node_modules/postcss-env-function/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -18281,7 +18656,7 @@ }, "node_modules/postcss-focus-visible": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", "dev": true, "dependencies": { @@ -18291,15 +18666,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-focus-visible/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-focus-visible/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -18316,7 +18685,7 @@ }, "node_modules/postcss-focus-visible/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -18325,7 +18694,7 @@ }, "node_modules/postcss-focus-within": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", "dev": true, "dependencies": { @@ -18335,15 +18704,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-focus-within/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-focus-within/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -18360,7 +18723,7 @@ }, "node_modules/postcss-focus-within/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -18369,22 +18732,16 @@ }, "node_modules/postcss-font-variant": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", "dev": true, "dependencies": { "postcss": "^7.0.2" } }, - "node_modules/postcss-font-variant/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-font-variant/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -18401,7 +18758,7 @@ }, "node_modules/postcss-font-variant/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -18410,7 +18767,7 @@ }, "node_modules/postcss-gap-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", "dev": true, "dependencies": { @@ -18420,15 +18777,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-gap-properties/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-gap-properties/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -18445,7 +18796,7 @@ }, "node_modules/postcss-gap-properties/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -18454,7 +18805,7 @@ }, "node_modules/postcss-image-set-function": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", "dev": true, "dependencies": { @@ -18465,15 +18816,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-image-set-function/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-image-set-function/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -18490,7 +18835,7 @@ }, "node_modules/postcss-image-set-function/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -18499,7 +18844,7 @@ }, "node_modules/postcss-import": { "version": "14.0.2", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-import/-/postcss-import-14.0.2.tgz", "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", "dev": true, "dependencies": { @@ -18516,22 +18861,16 @@ }, "node_modules/postcss-initial": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-initial/-/postcss-initial-3.0.4.tgz", "integrity": "sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==", "dev": true, "dependencies": { "postcss": "^7.0.2" } }, - "node_modules/postcss-initial/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-initial/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -18548,7 +18887,7 @@ }, "node_modules/postcss-initial/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -18557,7 +18896,7 @@ }, "node_modules/postcss-lab-function": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", "dev": true, "dependencies": { @@ -18569,15 +18908,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-lab-function/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-lab-function/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -18594,7 +18927,7 @@ }, "node_modules/postcss-lab-function/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -18603,7 +18936,7 @@ }, "node_modules/postcss-loader": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-loader/-/postcss-loader-6.1.1.tgz", "integrity": "sha512-lBmJMvRh1D40dqpWKr9Rpygwxn8M74U9uaCSeYGNKLGInbk9mXBt1ultHf2dH9Ghk6Ue4UXlXWwGMH9QdUJ5ug==", "dev": true, "dependencies": { @@ -18625,7 +18958,7 @@ }, "node_modules/postcss-logical": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-logical/-/postcss-logical-3.0.0.tgz", "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", "dev": true, "dependencies": { @@ -18635,15 +18968,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-logical/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-logical/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -18660,7 +18987,7 @@ }, "node_modules/postcss-logical/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -18669,7 +18996,7 @@ }, "node_modules/postcss-media-minmax": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", "dev": true, "dependencies": { @@ -18679,15 +19006,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-media-minmax/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-media-minmax/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -18704,7 +19025,7 @@ }, "node_modules/postcss-media-minmax/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -18712,14 +19033,13 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz", - "integrity": "sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw==", + "version": "5.1.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", "dev": true, "dependencies": { - "css-color-names": "^1.0.1", - "postcss-value-parser": "^4.1.0", - "stylehacks": "^5.0.1" + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -18729,16 +19049,15 @@ } }, "node_modules/postcss-merge-rules": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz", - "integrity": "sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg==", + "version": "5.1.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", "dev": true, "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", - "cssnano-utils": "^2.0.1", - "postcss-selector-parser": "^6.0.5", - "vendors": "^1.0.3" + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -18748,12 +19067,12 @@ } }, "node_modules/postcss-minify-font-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz", - "integrity": "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", "dev": true, "dependencies": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -18763,14 +19082,14 @@ } }, "node_modules/postcss-minify-gradients": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.2.tgz", - "integrity": "sha512-7Do9JP+wqSD6Prittitt2zDLrfzP9pqKs2EcLX7HJYxsxCOwrrcLt4x/ctQTsiOw+/8HYotAoqNkrzItL19SdQ==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", "dev": true, "dependencies": { - "colord": "^2.6", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -18780,16 +19099,14 @@ } }, "node_modules/postcss-minify-params": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz", - "integrity": "sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw==", + "version": "5.1.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", "dev": true, "dependencies": { - "alphanum-sort": "^1.0.2", - "browserslist": "^4.16.0", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0", - "uniqs": "^2.0.0" + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -18799,12 +19116,11 @@ } }, "node_modules/postcss-minify-selectors": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz", - "integrity": "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==", + "version": "5.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", "dev": true, "dependencies": { - "alphanum-sort": "^1.0.2", "postcss-selector-parser": "^6.0.5" }, "engines": { @@ -18816,7 +19132,7 @@ }, "node_modules/postcss-modules-extract-imports": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", "dev": true, "engines": { @@ -18827,9 +19143,9 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "version": "4.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", "dev": true, "dependencies": { "icss-utils": "^5.0.0", @@ -18844,9 +19160,9 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "version": "3.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-modules-scope/-/postcss-modules-scope-3.1.0.tgz", + "integrity": "sha512-SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.4" @@ -18860,7 +19176,7 @@ }, "node_modules/postcss-modules-values": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, "dependencies": { @@ -18875,7 +19191,7 @@ }, "node_modules/postcss-nesting": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-nesting/-/postcss-nesting-7.0.1.tgz", "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", "dev": true, "dependencies": { @@ -18885,15 +19201,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-nesting/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-nesting/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -18910,7 +19220,7 @@ }, "node_modules/postcss-nesting/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -18918,9 +19228,9 @@ } }, "node_modules/postcss-normalize-charset": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz", - "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -18930,13 +19240,12 @@ } }, "node_modules/postcss-normalize-display-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz", - "integrity": "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", "dev": true, "dependencies": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -18946,12 +19255,12 @@ } }, "node_modules/postcss-normalize-positions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz", - "integrity": "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", "dev": true, "dependencies": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -18961,13 +19270,12 @@ } }, "node_modules/postcss-normalize-repeat-style": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz", - "integrity": "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", "dev": true, "dependencies": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -18977,12 +19285,12 @@ } }, "node_modules/postcss-normalize-string": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz", - "integrity": "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", "dev": true, "dependencies": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -18992,13 +19300,12 @@ } }, "node_modules/postcss-normalize-timing-functions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz", - "integrity": "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", "dev": true, "dependencies": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -19008,13 +19315,13 @@ } }, "node_modules/postcss-normalize-unicode": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz", - "integrity": "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", "dev": true, "dependencies": { - "browserslist": "^4.16.0", - "postcss-value-parser": "^4.1.0" + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -19024,14 +19331,13 @@ } }, "node_modules/postcss-normalize-url": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz", - "integrity": "sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", "dev": true, "dependencies": { - "is-absolute-url": "^3.0.3", "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -19041,12 +19347,12 @@ } }, "node_modules/postcss-normalize-whitespace": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz", - "integrity": "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", "dev": true, "dependencies": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -19056,13 +19362,13 @@ } }, "node_modules/postcss-ordered-values": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz", - "integrity": "sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==", + "version": "5.1.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", "dev": true, "dependencies": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -19073,7 +19379,7 @@ }, "node_modules/postcss-overflow-shorthand": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", "dev": true, "dependencies": { @@ -19083,15 +19389,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-overflow-shorthand/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-overflow-shorthand/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -19108,7 +19408,7 @@ }, "node_modules/postcss-overflow-shorthand/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -19117,22 +19417,16 @@ }, "node_modules/postcss-page-break": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-page-break/-/postcss-page-break-2.0.0.tgz", "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", "dev": true, "dependencies": { "postcss": "^7.0.2" } }, - "node_modules/postcss-page-break/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-page-break/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -19149,7 +19443,7 @@ }, "node_modules/postcss-page-break/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -19158,7 +19452,7 @@ }, "node_modules/postcss-place": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-place/-/postcss-place-4.0.1.tgz", "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", "dev": true, "dependencies": { @@ -19169,15 +19463,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-place/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-place/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -19194,7 +19482,7 @@ }, "node_modules/postcss-place/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -19203,7 +19491,7 @@ }, "node_modules/postcss-preset-env": { "version": "6.7.0", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", "dev": true, "dependencies": { @@ -19249,15 +19537,9 @@ "node": ">=6.0.0" } }, - "node_modules/postcss-preset-env/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-preset-env/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -19274,7 +19556,7 @@ }, "node_modules/postcss-preset-env/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -19283,7 +19565,7 @@ }, "node_modules/postcss-pseudo-class-any-link": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", "dev": true, "dependencies": { @@ -19296,7 +19578,7 @@ }, "node_modules/postcss-pseudo-class-any-link/node_modules/cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true, "bin": { @@ -19306,15 +19588,9 @@ "node": ">=4" } }, - "node_modules/postcss-pseudo-class-any-link/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-pseudo-class-any-link/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -19331,7 +19607,7 @@ }, "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "dependencies": { @@ -19345,7 +19621,7 @@ }, "node_modules/postcss-pseudo-class-any-link/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -19353,12 +19629,12 @@ } }, "node_modules/postcss-reduce-initial": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz", - "integrity": "sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw==", + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", "dev": true, "dependencies": { - "browserslist": "^4.16.0", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" }, "engines": { @@ -19369,13 +19645,12 @@ } }, "node_modules/postcss-reduce-transforms": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz", - "integrity": "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", "dev": true, "dependencies": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -19386,22 +19661,16 @@ }, "node_modules/postcss-replace-overflow-wrap": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", "dev": true, "dependencies": { "postcss": "^7.0.2" } }, - "node_modules/postcss-replace-overflow-wrap/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-replace-overflow-wrap/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -19418,7 +19687,7 @@ }, "node_modules/postcss-replace-overflow-wrap/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -19427,7 +19696,7 @@ }, "node_modules/postcss-selector-matches": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", "dev": true, "dependencies": { @@ -19435,15 +19704,9 @@ "postcss": "^7.0.2" } }, - "node_modules/postcss-selector-matches/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-selector-matches/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -19460,7 +19723,7 @@ }, "node_modules/postcss-selector-matches/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -19469,7 +19732,7 @@ }, "node_modules/postcss-selector-not": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", "dev": true, "dependencies": { @@ -19477,15 +19740,9 @@ "postcss": "^7.0.2" } }, - "node_modules/postcss-selector-not/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/postcss-selector-not/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -19502,7 +19759,7 @@ }, "node_modules/postcss-selector-not/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -19510,9 +19767,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "version": "6.0.14", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-selector-parser/-/postcss-selector-parser-6.0.14.tgz", + "integrity": "sha512-65xXYsT40i9GyWzlHQ5ShZoK7JZdySeOozi/tz2EezDo6c04q6+ckYMeoY7idaie1qp2dT5KoYQ2yky6JuoHnA==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -19523,13 +19780,13 @@ } }, "node_modules/postcss-svgo": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.2.tgz", - "integrity": "sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", "dev": true, "dependencies": { - "postcss-value-parser": "^4.1.0", - "svgo": "^2.3.0" + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -19539,14 +19796,12 @@ } }, "node_modules/postcss-unique-selectors": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz", - "integrity": "sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", "dev": true, "dependencies": { - "alphanum-sort": "^1.0.2", - "postcss-selector-parser": "^6.0.5", - "uniqs": "^2.0.0" + "postcss-selector-parser": "^6.0.5" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -19556,14 +19811,14 @@ } }, "node_modules/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==", + "version": "4.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, "node_modules/postcss-values-parser": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", "dev": true, "dependencies": { @@ -19576,9 +19831,9 @@ } }, "node_modules/preferred-pm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz", - "integrity": "sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==", + "version": "3.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/preferred-pm/-/preferred-pm-3.1.2.tgz", + "integrity": "sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==", "dev": true, "dependencies": { "find-up": "^5.0.0", @@ -19592,7 +19847,7 @@ }, "node_modules/preferred-pm/node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { @@ -19608,7 +19863,7 @@ }, "node_modules/preferred-pm/node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { @@ -19623,7 +19878,7 @@ }, "node_modules/preferred-pm/node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { @@ -19638,7 +19893,7 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "engines": { @@ -19647,7 +19902,7 @@ }, "node_modules/prettier": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier/-/prettier-2.4.0.tgz", "integrity": "sha512-DsEPLY1dE5HF3BxCRBmD4uYZ+5DCbvatnolqTqcxEgKVZnL2kUfyu7b8pPQ5+hTBkdhU9SLUmK0/pHb07RE4WQ==", "dev": true, "bin": { @@ -19659,7 +19914,7 @@ }, "node_modules/prettier-plugin-java": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/prettier-plugin-java/-/prettier-plugin-java-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier-plugin-java/-/prettier-plugin-java-1.4.0.tgz", "integrity": "sha512-Yie1yn4OdEF5Qey+3bChv8OuvMkzoMv07R6s/j1sn9HfZQxpw0eCSaXLOPyS7B6vVlaF1cr2TD1NsNSvxjVU1g==", "dev": true, "dependencies": { @@ -19670,7 +19925,7 @@ }, "node_modules/prettier-plugin-java/node_modules/prettier": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier/-/prettier-2.3.1.tgz", "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", "dev": true, "bin": { @@ -19682,7 +19937,7 @@ }, "node_modules/prettier-plugin-packagejson": { "version": "2.2.11", - "resolved": "https://registry.npmjs.org/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.2.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.2.11.tgz", "integrity": "sha512-oJCBCEkHIKScEv6qNQC47S39NXlevbzwvoJE3gflmBB8/3BEsC6ZRi+hwFVajw32b4tDI9hFXPIzmVd/T8Rm9w==", "dev": true, "dependencies": { @@ -19694,7 +19949,7 @@ }, "node_modules/pretty-bytes": { "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true, "engines": { @@ -19705,12 +19960,11 @@ } }, "node_modules/pretty-format": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.3.1.tgz", - "integrity": "sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, "dependencies": { - "@jest/types": "^27.2.5", "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" @@ -19721,7 +19975,7 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "engines": { @@ -19733,19 +19987,19 @@ }, "node_modules/proc-log": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/proc-log/-/proc-log-1.0.0.tgz", "integrity": "sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==", "dev": true }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, "node_modules/progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, "engines": { @@ -19753,9 +20007,9 @@ } }, "node_modules/promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "version": "8.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "dev": true, "dependencies": { "asap": "~2.0.6" @@ -19763,7 +20017,7 @@ }, "node_modules/promise-all-reject-late": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==", "dev": true, "funding": { @@ -19771,9 +20025,9 @@ } }, "node_modules/promise-call-limit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-1.0.1.tgz", - "integrity": "sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q==", + "version": "1.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-call-limit/-/promise-call-limit-1.0.2.tgz", + "integrity": "sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==", "dev": true, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -19781,13 +20035,13 @@ }, "node_modules/promise-inflight": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", "dev": true }, "node_modules/promise-retry": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, "dependencies": { @@ -19800,7 +20054,7 @@ }, "node_modules/prompts": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, "dependencies": { @@ -19813,7 +20067,7 @@ }, "node_modules/proxy-addr": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, "dependencies": { @@ -19826,19 +20080,19 @@ }, "node_modules/prr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true }, "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "version": "1.9.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, "node_modules/pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "dependencies": { @@ -19847,9 +20101,9 @@ } }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { "node": ">=6" @@ -19857,8 +20111,8 @@ }, "node_modules/qs": { "version": "6.2.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", - "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/qs/-/qs-6.2.3.tgz", + "integrity": "sha512-AY4g8t3LMboim0t6XWFdz6J5OuJ1ZNYu54SXihS/OMpgyCqYmcAJnWqkNSOjSjWmq3xxy+GF9uWQI2lI/7tKIA==", "dev": true, "engines": { "node": ">=0.6" @@ -19866,8 +20120,8 @@ }, "node_modules/querystring": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", "dev": true, "engines": { @@ -19876,13 +20130,13 @@ }, "node_modules/querystringify": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ @@ -19902,7 +20156,7 @@ }, "node_modules/randexp": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.5.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/randexp/-/randexp-0.5.3.tgz", "integrity": "sha512-U+5l2KrcMNOUPYvazA3h5ekF80FHTUG+87SEAmHZmolh1M+i/WyTCxVzmi+tidIa1tM4BSe8g2Y/D3loWDjj+w==", "dev": true, "dependencies": { @@ -19915,7 +20169,7 @@ }, "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "dependencies": { @@ -19924,7 +20178,7 @@ }, "node_modules/range-parser": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, "engines": { @@ -19932,13 +20186,13 @@ } }, "node_modules/raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "version": "2.5.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.3", + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -19948,14 +20202,14 @@ }, "node_modules/react-is": { "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, "node_modules/read-cache": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "dev": true, "dependencies": { "pify": "^2.3.0" @@ -19963,13 +20217,13 @@ }, "node_modules/read-cmd-shim": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", "integrity": "sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==", "dev": true }, "node_modules/read-package-json-fast": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", "dev": true, "dependencies": { @@ -19982,7 +20236,7 @@ }, "node_modules/read-pkg": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "dependencies": { @@ -19997,7 +20251,7 @@ }, "node_modules/read-pkg-up": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-pkg-up/-/read-pkg-up-7.0.1.tgz", "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "dependencies": { @@ -20014,7 +20268,7 @@ }, "node_modules/read-pkg-up/node_modules/type-fest": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, "engines": { @@ -20023,7 +20277,7 @@ }, "node_modules/read-pkg/node_modules/type-fest": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.6.0.tgz", "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, "engines": { @@ -20031,9 +20285,9 @@ } }, "node_modules/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==", + "version": "3.6.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -20046,8 +20300,9 @@ }, "node_modules/readdir-scoped-modules": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, "dependencies": { "debuglog": "^1.0.1", @@ -20058,7 +20313,7 @@ }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dependencies": { "picomatch": "^2.2.1" @@ -20069,8 +20324,8 @@ }, "node_modules/rechoir": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, "dependencies": { "resolve": "^1.1.6" @@ -20080,20 +20335,20 @@ } }, "node_modules/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==" + "version": "0.1.14", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==" }, "node_modules/regenerate": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, "node_modules/regenerate-unicode-properties": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", - "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", + "version": "10.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, "dependencies": { "regenerate": "^1.4.2" @@ -20104,14 +20359,14 @@ }, "node_modules/regenerator-runtime": { "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", "dev": true }, "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "version": "0.15.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -20119,7 +20374,7 @@ }, "node_modules/regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "dependencies": { @@ -20132,24 +20387,25 @@ }, "node_modules/regex-parser": { "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regex-parser/-/regex-parser-2.2.11.tgz", "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", "dev": true }, "node_modules/regexp-to-ast": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==", "dev": true }, "node_modules/regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "version": "1.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -20160,7 +20416,7 @@ }, "node_modules/regexpp": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, "engines": { @@ -20171,32 +20427,26 @@ } }, "node_modules/regexpu-core": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", - "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", + "version": "5.3.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" } }, - "node_modules/regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, "node_modules/regjsparser": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", - "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", + "version": "0.9.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "dependencies": { "jsesc": "~0.5.0" @@ -20207,8 +20457,8 @@ }, "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, "bin": { "jsesc": "bin/jsesc" @@ -20216,13 +20466,13 @@ }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", "dev": true }, "node_modules/repeat-element": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/repeat-element/-/repeat-element-1.1.4.tgz", "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", "dev": true, "engines": { @@ -20231,8 +20481,8 @@ }, "node_modules/repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, "engines": { "node": ">=0.10" @@ -20240,7 +20490,7 @@ }, "node_modules/replace-ext": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/replace-ext/-/replace-ext-1.0.1.tgz", "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "dev": true, "engines": { @@ -20249,7 +20499,7 @@ }, "node_modules/request": { "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dev": true, @@ -20281,7 +20531,7 @@ }, "node_modules/request/node_modules/form-data": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "dependencies": { @@ -20294,9 +20544,9 @@ } }, "node_modules/request/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "version": "6.5.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "dev": true, "engines": { "node": ">=0.6" @@ -20304,7 +20554,7 @@ }, "node_modules/request/node_modules/tough-cookie": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "dependencies": { @@ -20317,7 +20567,7 @@ }, "node_modules/request/node_modules/uuid": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, @@ -20327,15 +20577,15 @@ }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "engines": { "node": ">=0.10.0" } }, "node_modules/require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, "engines": { @@ -20344,19 +20594,19 @@ }, "node_modules/require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "node_modules/requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, "node_modules/resolve": { "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve/-/resolve-1.20.0.tgz", "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dependencies": { "is-core-module": "^2.2.0", @@ -20368,7 +20618,7 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "dependencies": { @@ -20380,7 +20630,7 @@ }, "node_modules/resolve-cwd/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "engines": { @@ -20389,7 +20639,7 @@ }, "node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "engines": { @@ -20398,14 +20648,14 @@ }, "node_modules/resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", "deprecated": "https://github.com/lydell/resolve-url#deprecated", "dev": true }, "node_modules/resolve-url-loader": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", "dev": true, "dependencies": { @@ -20431,15 +20681,9 @@ } } }, - "node_modules/resolve-url-loader/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "node_modules/resolve-url-loader/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "dependencies": { @@ -20456,7 +20700,7 @@ }, "node_modules/resolve-url-loader/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -20464,9 +20708,9 @@ } }, "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "version": "1.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", "dev": true, "engines": { "node": ">=10" @@ -20474,8 +20718,8 @@ }, "node_modules/resp-modifier": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", - "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==", "dev": true, "dependencies": { "debug": "^2.2.0", @@ -20487,7 +20731,7 @@ }, "node_modules/resp-modifier/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { @@ -20496,13 +20740,13 @@ }, "node_modules/resp-modifier/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "dependencies": { @@ -20515,7 +20759,7 @@ }, "node_modules/ret": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ret/-/ret-0.2.2.tgz", "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", "dev": true, "engines": { @@ -20524,8 +20768,8 @@ }, "node_modules/retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, "engines": { "node": ">= 4" @@ -20533,7 +20777,7 @@ }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "engines": { @@ -20543,7 +20787,7 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { @@ -20558,7 +20802,7 @@ }, "node_modules/run-async": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true, "engines": { @@ -20567,7 +20811,7 @@ }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ @@ -20590,13 +20834,13 @@ }, "node_modules/rx": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rx/-/rx-4.1.0.tgz", + "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", "dev": true }, "node_modules/rxjs": { "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dependencies": { "tslib": "^1.9.0" @@ -20607,18 +20851,33 @@ }, "node_modules/rxjs/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/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==" + "version": "5.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", "dev": true, "dependencies": { "ret": "~0.1.10" @@ -20626,7 +20885,7 @@ }, "node_modules/safe-regex/node_modules/ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true, "engines": { @@ -20634,20 +20893,23 @@ } }, "node_modules/safe-stable-stringify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz", - "integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==", - "dev": true + "version": "2.4.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "dev": true, + "engines": { + "node": ">=10" + } }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "node_modules/sass": { "version": "1.36.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.36.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sass/-/sass-1.36.0.tgz", "integrity": "sha512-fQzEjipfOv5kh930nu3Imzq3ie/sGDc/4KtQMJlt7RRdrkQSfe37Bwi/Rf/gfuYHsIuE1fIlDMvpyMcEwjnPvg==", "dev": true, "dependencies": { @@ -20662,7 +20924,7 @@ }, "node_modules/sass-loader": { "version": "12.1.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sass-loader/-/sass-loader-12.1.0.tgz", "integrity": "sha512-FVJZ9kxVRYNZTIe2xhw93n3xJNYZADr+q69/s98l9nTCrWASo+DR2Ot0s5xTKQDDEosUkatsGeHxcH4QBp5bSg==", "dev": true, "dependencies": { @@ -20696,13 +20958,13 @@ }, "node_modules/sax": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sax/-/sax-1.2.1.tgz", + "integrity": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==", "dev": true }, "node_modules/saxes": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", "dev": true, "dependencies": { @@ -20714,7 +20976,7 @@ }, "node_modules/schema-utils": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-2.7.1.tgz", "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, "dependencies": { @@ -20732,7 +20994,7 @@ }, "node_modules/schema-utils/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { @@ -20748,7 +21010,7 @@ }, "node_modules/schema-utils/node_modules/ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "peerDependencies": { @@ -20757,13 +21019,13 @@ }, "node_modules/schema-utils/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/scoped-regex": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/scoped-regex/-/scoped-regex-2.1.0.tgz", "integrity": "sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==", "dev": true, "engines": { @@ -20772,14 +21034,14 @@ }, "node_modules/select-hose": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", "dev": true }, "node_modules/selfsigned": { - "version": "1.10.11", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", - "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", + "version": "1.10.14", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/selfsigned/-/selfsigned-1.10.14.tgz", + "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==", "dev": true, "dependencies": { "node-forge": "^0.10.0" @@ -20787,7 +21049,7 @@ }, "node_modules/semver": { "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dependencies": { "lru-cache": "^6.0.0" @@ -20799,9 +21061,25 @@ "node": ">=10" } }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/send": { "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/send/-/send-0.16.2.tgz", "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "dev": true, "dependencies": { @@ -20825,17 +21103,26 @@ }, "node_modules/send/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, + "node_modules/send/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/send/node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, "dependencies": { "depd": "~1.1.2", @@ -20849,13 +21136,13 @@ }, "node_modules/send/node_modules/inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, "node_modules/send/node_modules/mime": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mime/-/mime-1.4.1.tgz", "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", "dev": true, "bin": { @@ -20864,19 +21151,19 @@ }, "node_modules/send/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/send/node_modules/setprototypeof": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, "node_modules/send/node_modules/statuses": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/statuses/-/statuses-1.4.0.tgz", "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", "dev": true, "engines": { @@ -20884,9 +21171,9 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "dependencies": { "randombytes": "^2.1.0" @@ -20894,8 +21181,8 @@ }, "node_modules/serve-index": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, "dependencies": { "accepts": "~1.3.4", @@ -20912,17 +21199,26 @@ }, "node_modules/serve-index/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/serve-index/node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, "dependencies": { "depd": "~1.1.2", @@ -20936,26 +21232,26 @@ }, "node_modules/serve-index/node_modules/inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, "node_modules/serve-index/node_modules/statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, "engines": { "node": ">= 0.6" @@ -20963,7 +21259,7 @@ }, "node_modules/serve-static": { "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "dependencies": { @@ -20978,19 +21274,48 @@ }, "node_modules/server-destroy": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", - "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", "dev": true }, "node_modules/set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-value": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "dependencies": { @@ -21005,8 +21330,8 @@ }, "node_modules/set-value/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -21017,22 +21342,22 @@ }, "node_modules/set-value/node_modules/is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "version": "1.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, "node_modules/shallow-clone": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "dependencies": { @@ -21044,7 +21369,7 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { @@ -21056,7 +21381,7 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { @@ -21065,7 +21390,7 @@ }, "node_modules/shelljs": { "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shelljs/-/shelljs-0.8.4.tgz", "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", "dev": true, "dependencies": { @@ -21082,13 +21407,13 @@ }, "node_modules/shellwords": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shellwords/-/shellwords-0.1.1.tgz", "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", "dev": true }, "node_modules/side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "dependencies": { @@ -21101,14 +21426,14 @@ } }, "node_modules/signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", + "version": "3.0.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "node_modules/simple-git": { "version": "2.45.1", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-2.45.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/simple-git/-/simple-git-2.45.1.tgz", "integrity": "sha512-NmEoThiLTJxl26WNtZxtJTue18ReTcSrf3so5vJG/O8KY9uMxH+yAhXV/DElBJyOYZrrBbVsH8JOFxgENdc9Xg==", "dev": true, "dependencies": { @@ -21119,8 +21444,8 @@ }, "node_modules/simple-swizzle": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", "dev": true, "dependencies": { "is-arrayish": "^0.3.1" @@ -21128,45 +21453,33 @@ }, "node_modules/simple-swizzle/node_modules/is-arrayish": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-arrayish/-/is-arrayish-0.3.2.tgz", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "dev": true }, "node_modules/sirv": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.18.tgz", - "integrity": "sha512-f2AOPogZmXgJ9Ma2M22ZEhc1dNtRIzcEkiflMFeVTRq+OViOZMvH1IPMVOwrKaxpSaHioBJiDR0SluRqGa7atA==", + "version": "1.0.19", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", "dev": true, "dependencies": { "@polka/url": "^1.0.0-next.20", - "mime": "^2.3.1", + "mrmime": "^1.0.0", "totalist": "^1.0.0" }, "engines": { "node": ">= 10" } }, - "node_modules/sirv/node_modules/mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/sisteransi": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { @@ -21175,7 +21488,7 @@ }, "node_modules/slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "dependencies": { @@ -21192,7 +21505,7 @@ }, "node_modules/slice-ansi/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -21207,7 +21520,7 @@ }, "node_modules/slice-ansi/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -21219,13 +21532,13 @@ }, "node_modules/slice-ansi/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/smart-buffer": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, "engines": { @@ -21235,7 +21548,7 @@ }, "node_modules/snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "dependencies": { @@ -21254,7 +21567,7 @@ }, "node_modules/snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "dependencies": { @@ -21268,8 +21581,8 @@ }, "node_modules/snapdragon-node/node_modules/define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, "dependencies": { "is-descriptor": "^1.0.0" @@ -21280,7 +21593,7 @@ }, "node_modules/snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "dependencies": { @@ -21292,8 +21605,8 @@ }, "node_modules/snapdragon-util/node_modules/kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -21304,7 +21617,7 @@ }, "node_modules/snapdragon/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { @@ -21313,8 +21626,8 @@ }, "node_modules/snapdragon/node_modules/define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" @@ -21325,8 +21638,8 @@ }, "node_modules/snapdragon/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -21335,81 +21648,23 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/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, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/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, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/snapdragon/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/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==", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -21417,14 +21672,14 @@ }, "node_modules/snapdragon/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/snapdragon/node_modules/source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -21432,8 +21687,9 @@ }, "node_modules/snapdragon/node_modules/source-map-resolve": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, "dependencies": { "atob": "^2.1.2", @@ -21445,7 +21701,7 @@ }, "node_modules/socket.io": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socket.io/-/socket.io-2.4.0.tgz", "integrity": "sha512-9UPJ1UTvKayuQfVv2IQ3k7tCQC/fboDyIK62i99dAQIyHKaBsNdTpwHLgKJ6guRWxRtC9H+138UwpaGuQO9uWQ==", "dev": true, "dependencies": { @@ -21459,13 +21715,130 @@ }, "node_modules/socket.io-adapter": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", "dev": true }, "node_modules/socket.io-client": { + "version": "4.7.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socket.io-client/-/socket.io-client-4.7.2.tgz", + "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-client/node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser": { + "version": "3.4.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socket.io-parser/-/socket.io-parser-3.4.3.tgz", + "integrity": "sha512-1rE4dZN3kCI/E5wixd393hmbqa78vVpkKmnEJhLeWoS/C5hbFYAbcSfnWoaVH43u9ToUVtzKjguxEZq+1XZfCQ==", + "dev": true, + "dependencies": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/socket.io-parser/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==", + "dev": true + }, + "node_modules/socket.io/node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/socket.io/node_modules/engine.io-client": { + "version": "3.5.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/engine.io-client/-/engine.io-client-3.5.3.tgz", + "integrity": "sha512-qsgyc/CEhJ6cgMUwxRRtOndGVhIu5hpL5tR4umSpmX/MvkFoIxUTM7oFMDQumHNzlNLwSVy6qhstFPoWTf7dOw==", + "dev": true, + "dependencies": { + "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": "~7.4.2", + "xmlhttprequest-ssl": "~1.6.2", + "yeast": "0.1.2" + } + }, + "node_modules/socket.io/node_modules/engine.io-client/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/socket.io/node_modules/engine.io-client/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/socket.io/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==", + "dev": true + }, + "node_modules/socket.io/node_modules/socket.io-client": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socket.io-client/-/socket.io-client-2.4.0.tgz", "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", "dev": true, "dependencies": { @@ -21482,31 +21855,25 @@ "to-array": "0.1.4" } }, - "node_modules/socket.io-client/node_modules/debug": { + "node_modules/socket.io/node_modules/socket.io-client/node_modules/debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "dependencies": { "ms": "2.0.0" } }, - "node_modules/socket.io-client/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "node_modules/socket.io-client/node_modules/ms": { + "node_modules/socket.io/node_modules/socket.io-client/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/socket.io-client/node_modules/socket.io-parser": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", - "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", + "node_modules/socket.io/node_modules/socket.io-client/node_modules/socket.io-parser": { + "version": "3.3.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socket.io-parser/-/socket.io-parser-3.3.3.tgz", + "integrity": "sha512-qOg87q1PMWWTeO01768Yh9ogn7chB9zkKtQnya41Y355S0UmpXgpcrFwAgjYJxu9BdKug5r5e9YtVSeWhKBUZg==", "dev": true, "dependencies": { "component-emitter": "~1.3.0", @@ -21514,101 +21881,83 @@ "isarray": "2.0.1" } }, - "node_modules/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, - "dependencies": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/socket.io-parser/node_modules/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 - }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "node_modules/socket.io/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true, - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/socket.io-parser/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "node_modules/socket.io/node_modules/xmlhttprequest-ssl": { + "version": "1.6.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz", + "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==", "dev": true, - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": ">=0.4.0" } }, "node_modules/sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", - "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "version": "0.3.24", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "dependencies": { "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", + "uuid": "^8.3.2", "websocket-driver": "^0.7.4" } }, "node_modules/sockjs-client": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.2.tgz", - "integrity": "sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ==", + "version": "1.6.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sockjs-client/-/sockjs-client-1.6.1.tgz", + "integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==", "dev": true, "dependencies": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", + "debug": "^3.2.7", + "eventsource": "^2.0.2", + "faye-websocket": "^0.11.4", "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.3" + "url-parse": "^1.5.10" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://tidelift.com/funding/github/npm/sockjs-client" } }, "node_modules/sockjs-client/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { "ms": "^2.1.1" } }, - "node_modules/sockjs/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/socks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "version": "2.7.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" }, "engines": { "node": ">= 10.13.0", @@ -21616,28 +21965,45 @@ } }, "node_modules/socks-proxy-agent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.0.tgz", - "integrity": "sha512-57e7lwCN4Tzt3mXz25VxOErJKXlPfXmkMLnk310v/jwW20jWRVcgsOit+xNkN3eIEdB47GwnfAEBLacZ/wVIKg==", + "version": "6.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", "dev": true, "dependencies": { "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" + "debug": "^4.3.3", + "socks": "^2.6.2" }, "engines": { "node": ">= 10" } }, + "node_modules/socks-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/sort-object-keys": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sort-object-keys/-/sort-object-keys-1.1.3.tgz", "integrity": "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==", "dev": true }, "node_modules/sort-package-json": { "version": "1.50.0", - "resolved": "https://registry.npmjs.org/sort-package-json/-/sort-package-json-1.50.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sort-package-json/-/sort-package-json-1.50.0.tgz", "integrity": "sha512-qZpqhMU9XTntebgAgc4hv/D6Fzhh7kFnwvV6a7+q8y8J5JoaDqPYQnvXPf7BBqG95tdE8X6JVNo7/jDzcbdfUg==", "dev": true, "dependencies": { @@ -21654,7 +22020,7 @@ }, "node_modules/sort-package-json/node_modules/globby": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globby/-/globby-10.0.0.tgz", "integrity": "sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==", "dev": true, "dependencies": { @@ -21672,9 +22038,9 @@ } }, "node_modules/sort-package-json/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, "engines": { "node": ">= 4" @@ -21682,13 +22048,13 @@ }, "node_modules/source-list-map": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-list-map/-/source-list-map-2.0.1.tgz", "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", "dev": true }, "node_modules/source-map": { "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true, "engines": { @@ -21697,7 +22063,7 @@ }, "node_modules/source-map-js": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map-js/-/source-map-js-0.6.2.tgz", "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", "dev": true, "engines": { @@ -21706,7 +22072,7 @@ }, "node_modules/source-map-loader": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map-loader/-/source-map-loader-3.0.0.tgz", "integrity": "sha512-GKGWqWvYr04M7tn8dryIWvb0s8YM41z82iQv01yBtIylgxax0CwvSy6gc2Y02iuXwEfGWRlMicH0nvms9UZphw==", "dev": true, "dependencies": { @@ -21727,7 +22093,7 @@ }, "node_modules/source-map-loader/node_modules/iconv-lite": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "dependencies": { @@ -21739,8 +22105,9 @@ }, "node_modules/source-map-resolve": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map-resolve/-/source-map-resolve-0.6.0.tgz", "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, "dependencies": { "atob": "^2.1.2", @@ -21749,7 +22116,7 @@ }, "node_modules/source-map-support": { "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "dependencies": { @@ -21759,7 +22126,7 @@ }, "node_modules/source-map-support/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -21768,25 +22135,27 @@ }, "node_modules/source-map-url": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", "dev": true }, "node_modules/sourcemap-codec": { "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" }, "node_modules/spawn-command": { "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", "dev": true }, "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -21795,13 +22164,13 @@ }, "node_modules/spdx-exceptions": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "node_modules/spdx-expression-parse": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "dependencies": { @@ -21810,14 +22179,14 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "version": "3.0.16", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", "dev": true }, "node_modules/spdy": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, "dependencies": { @@ -21833,7 +22202,7 @@ }, "node_modules/spdy-transport": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, "dependencies": { @@ -21847,7 +22216,7 @@ }, "node_modules/split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "dependencies": { @@ -21859,14 +22228,14 @@ }, "node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "version": "1.18.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, "dependencies": { "asn1": "~0.2.3", @@ -21890,7 +22259,7 @@ }, "node_modules/ssri": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, "dependencies": { @@ -21902,23 +22271,24 @@ }, "node_modules/stable": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", "dev": true }, "node_modules/stack-trace": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", "dev": true, "engines": { "node": "*" } }, "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "version": "2.0.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "dependencies": { "escape-string-regexp": "^2.0.0" @@ -21929,7 +22299,7 @@ }, "node_modules/stack-utils/node_modules/escape-string-regexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, "engines": { @@ -21938,8 +22308,8 @@ }, "node_modules/static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", "dev": true, "dependencies": { "define-property": "^0.2.5", @@ -21951,8 +22321,8 @@ }, "node_modules/static-extend/node_modules/define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" @@ -21961,81 +22331,23 @@ "node": ">=0.10.0" } }, - "node_modules/static-extend/node_modules/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, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/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, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/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, - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/statuses": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg==", "dev": true, "engines": { "node": ">= 0.6" @@ -22043,8 +22355,8 @@ }, "node_modules/stream-throttle": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", - "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", "dev": true, "dependencies": { "commander": "^2.2.0", @@ -22059,13 +22371,13 @@ }, "node_modules/stream-throttle/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "node_modules/streamfilter": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/streamfilter/-/streamfilter-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/streamfilter/-/streamfilter-3.0.0.tgz", "integrity": "sha512-kvKNfXCmUyC8lAXSSHCIXBUlo/lhsLcCU/OmzACZYpRUdtKIH68xYhm/+HI15jFJYtNJGYtCgn2wmIiExY1VwA==", "dev": true, "dependencies": { @@ -22077,36 +22389,16 @@ }, "node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } }, - "node_modules/string_decoder/node_modules/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, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/string-length": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "dependencies": { @@ -22119,7 +22411,7 @@ }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", @@ -22132,7 +22424,7 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" @@ -22143,7 +22435,7 @@ }, "node_modules/strip-bom": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "engines": { @@ -22152,8 +22444,8 @@ }, "node_modules/strip-bom-buf": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", - "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", + "integrity": "sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==", "dev": true, "dependencies": { "is-utf8": "^0.2.1" @@ -22164,8 +22456,8 @@ }, "node_modules/strip-bom-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", - "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "integrity": "sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==", "dev": true, "dependencies": { "first-chunk-stream": "^2.0.0", @@ -22177,8 +22469,8 @@ }, "node_modules/strip-bom-stream/node_modules/strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", "dev": true, "dependencies": { "is-utf8": "^0.2.0" @@ -22189,8 +22481,8 @@ }, "node_modules/strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -22198,7 +22490,7 @@ }, "node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, "engines": { @@ -22207,7 +22499,7 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { @@ -22219,7 +22511,7 @@ }, "node_modules/style-loader": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/style-loader/-/style-loader-3.2.1.tgz", "integrity": "sha512-1k9ZosJCRFaRbY6hH49JFlRB0fVSbmnyq1iTPjNxUmGVjBNEmwrrHPenhlp+Lgo51BojHSf6pl2FcqYaN3PfVg==", "dev": true, "engines": { @@ -22234,12 +22526,12 @@ } }, "node_modules/stylehacks": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz", - "integrity": "sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", "dev": true, "dependencies": { - "browserslist": "^4.16.0", + "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" }, "engines": { @@ -22251,7 +22543,7 @@ }, "node_modules/stylus": { "version": "0.54.8", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stylus/-/stylus-0.54.8.tgz", "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", "dev": true, "dependencies": { @@ -22273,7 +22565,7 @@ }, "node_modules/stylus-loader": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stylus-loader/-/stylus-loader-6.1.0.tgz", "integrity": "sha512-qKO34QCsOtSJrXxQQmXsPeaVHh6hMumBAFIoJTcsSr2VzrA6o/CW9HCGR8spCjzJhN8oKQHdj/Ytx0wwXyElkw==", "dev": true, "dependencies": { @@ -22295,7 +22587,7 @@ }, "node_modules/stylus/node_modules/debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "dependencies": { @@ -22304,20 +22596,20 @@ }, "node_modules/stylus/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/stylus/node_modules/sax": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, "node_modules/stylus/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -22325,7 +22617,7 @@ }, "node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { "has-flag": "^3.0.0" @@ -22335,9 +22627,9 @@ } }, "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "version": "2.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", "dev": true, "dependencies": { "has-flag": "^4.0.0", @@ -22349,7 +22641,7 @@ }, "node_modules/supports-hyperlinks/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -22358,7 +22650,7 @@ }, "node_modules/supports-hyperlinks/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -22369,9 +22661,9 @@ } }, "node_modules/svgo": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.7.0.tgz", - "integrity": "sha512-aDLsGkre4fTDCWvolyW+fs8ZJFABpzLXbtdK1y71CKnHzAnpDxKXPj2mNKj+pyOXUCzFHzuxRJ94XOFygOWV3w==", + "version": "2.8.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", "dev": true, "dependencies": { "@trysound/sax": "0.2.0", @@ -22379,7 +22671,7 @@ "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", - "nanocolors": "^0.1.12", + "picocolors": "^1.0.0", "stable": "^0.1.8" }, "bin": { @@ -22391,21 +22683,27 @@ }, "node_modules/svgo/node_modules/commander": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, "engines": { "node": ">= 10" } }, + "node_modules/svgo/node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "node_modules/swagger-ui-dist": { "version": "3.52.2", - "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.52.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/swagger-ui-dist/-/swagger-ui-dist-3.52.2.tgz", "integrity": "sha512-k6QsJqDxfkMlelFUobIKRggR9y5BPvhr/ok9IUPlpnAQsytCx8SSKtNOFkf+W5yZi1Zh6X8GAz2picmmvZBSIw==" }, "node_modules/symbol-observable": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/symbol-observable/-/symbol-observable-4.0.0.tgz", "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", "dev": true, "engines": { @@ -22414,18 +22712,17 @@ }, "node_modules/symbol-tree": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, "node_modules/table": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", - "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==", + "version": "6.8.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", "dev": true, "dependencies": { "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.3", @@ -22437,7 +22734,7 @@ }, "node_modules/tapable": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, "engines": { @@ -22445,25 +22742,40 @@ } }, "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "version": "6.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" } }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/terminal-link": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/terminal-link/-/terminal-link-2.1.1.tgz", "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", "dev": true, "dependencies": { @@ -22479,7 +22791,7 @@ }, "node_modules/terser": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/terser/-/terser-5.7.1.tgz", "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", "dev": true, "dependencies": { @@ -22496,7 +22808,7 @@ }, "node_modules/terser-webpack-plugin": { "version": "5.1.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==", "dev": true, "dependencies": { @@ -22520,7 +22832,7 @@ }, "node_modules/terser-webpack-plugin/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { @@ -22536,7 +22848,7 @@ }, "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "peerDependencies": { @@ -22545,14 +22857,14 @@ }, "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -22569,7 +22881,7 @@ }, "node_modules/terser-webpack-plugin/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -22578,13 +22890,13 @@ }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "node_modules/test-exclude": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "dependencies": { @@ -22598,20 +22910,20 @@ }, "node_modules/text-hex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/text-hex/-/text-hex-1.0.0.tgz", "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", "dev": true }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "node_modules/textextensions": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-5.14.0.tgz", - "integrity": "sha512-4cAYwNFNYlIAHBUo7p6zw8POUvWbZor+/R0Tanv+rIhsauEyV9QSrEXL40pI+GfTQxKX8k6Tyw6CmdSDSmASrg==", + "version": "5.16.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/textextensions/-/textextensions-5.16.0.tgz", + "integrity": "sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==", "dev": true, "engines": { "node": ">=0.8" @@ -22622,7 +22934,7 @@ }, "node_modules/tfunk": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tfunk/-/tfunk-4.0.0.tgz", "integrity": "sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ==", "dev": true, "dependencies": { @@ -22632,8 +22944,8 @@ }, "node_modules/tfunk/node_modules/ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -22641,8 +22953,8 @@ }, "node_modules/tfunk/node_modules/ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -22650,8 +22962,8 @@ }, "node_modules/tfunk/node_modules/chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, "dependencies": { "ansi-styles": "^2.2.1", @@ -22666,8 +22978,8 @@ }, "node_modules/tfunk/node_modules/strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" @@ -22678,8 +22990,8 @@ }, "node_modules/tfunk/node_modules/supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, "engines": { "node": ">=0.8.0" @@ -22687,7 +22999,7 @@ }, "node_modules/then-request": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/then-request/-/then-request-6.0.2.tgz", "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", "dev": true, "dependencies": { @@ -22709,13 +23021,13 @@ }, "node_modules/then-request/node_modules/@types/node": { "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/node/-/node-8.10.66.tgz", "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", "dev": true }, "node_modules/then-request/node_modules/form-data": { "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/form-data/-/form-data-2.5.1.tgz", "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", "dev": true, "dependencies": { @@ -22728,9 +23040,9 @@ } }, "node_modules/then-request/node_modules/qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "version": "6.11.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dev": true, "dependencies": { "side-channel": "^1.0.4" @@ -22743,32 +23055,26 @@ } }, "node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "version": "6.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", "dev": true }, "node_modules/through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "node_modules/thunky": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "node_modules/timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, "node_modules/tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "dependencies": { @@ -22780,14 +23086,14 @@ }, "node_modules/tmpl": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, "node_modules/to-absolute-glob": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", "dev": true, "dependencies": { "is-absolute": "^1.0.0", @@ -22799,22 +23105,22 @@ }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==", "dev": true }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "engines": { "node": ">=4" } }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -22825,8 +23131,8 @@ }, "node_modules/to-object-path/node_modules/kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -22837,7 +23143,7 @@ }, "node_modules/to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "dependencies": { @@ -22852,7 +23158,7 @@ }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dependencies": { "is-number": "^7.0.0" @@ -22862,9 +23168,9 @@ } }, "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "version": "1.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, "engines": { "node": ">=0.6" @@ -22872,7 +23178,7 @@ }, "node_modules/totalist": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/totalist/-/totalist-1.1.0.tgz", "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", "dev": true, "engines": { @@ -22880,22 +23186,32 @@ } }, "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "version": "4.1.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.1.2" + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, "engines": { "node": ">=6" } }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/tr46": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tr46/-/tr46-2.1.0.tgz", "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", "dev": true, "dependencies": { @@ -22907,7 +23223,7 @@ }, "node_modules/tree-kill": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, "bin": { @@ -22916,19 +23232,22 @@ }, "node_modules/treeverse": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/treeverse/-/treeverse-1.0.4.tgz", "integrity": "sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==", "dev": true }, "node_modules/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", - "dev": true + "version": "1.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "dev": true, + "engines": { + "node": ">= 14.0.0" + } }, "node_modules/ts-jest": { "version": "27.0.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ts-jest/-/ts-jest-27.0.5.tgz", "integrity": "sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w==", "dev": true, "dependencies": { @@ -22967,21 +23286,21 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", - "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", + "version": "3.15.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", + "json5": "^1.0.2", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "dependencies": { "minimist": "^1.2.0" @@ -22992,8 +23311,8 @@ }, "node_modules/tsconfig-paths/node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { "node": ">=4" @@ -23001,13 +23320,13 @@ }, "node_modules/tslib": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-2.3.1.tgz", "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "node_modules/tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, "dependencies": { "safe-buffer": "^5.0.1" @@ -23018,13 +23337,13 @@ }, "node_modules/tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", "dev": true }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "dependencies": { @@ -23036,7 +23355,7 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "engines": { @@ -23045,7 +23364,7 @@ }, "node_modules/type-fest": { "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "engines": { @@ -23057,7 +23376,7 @@ }, "node_modules/type-is": { "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "dependencies": { @@ -23070,13 +23389,13 @@ }, "node_modules/typedarray": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "dependencies": { @@ -23085,7 +23404,7 @@ }, "node_modules/typescript": { "version": "4.3.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/typescript/-/typescript-4.3.5.tgz", "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", "bin": { "tsc": "bin/tsc", @@ -23096,9 +23415,9 @@ } }, "node_modules/ua-parser-js": { - "version": "0.7.28", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", - "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==", + "version": "0.7.37", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", "dev": true, "funding": [ { @@ -23108,6 +23427,10 @@ { "type": "paypal", "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" } ], "engines": { @@ -23116,8 +23439,8 @@ }, "node_modules/unc-path-regex": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -23125,7 +23448,7 @@ }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true, "engines": { @@ -23134,7 +23457,7 @@ }, "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "dependencies": { @@ -23146,18 +23469,18 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "version": "2.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, "engines": { "node": ">=4" @@ -23165,7 +23488,7 @@ }, "node_modules/union-value": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "dependencies": { @@ -23180,8 +23503,8 @@ }, "node_modules/union-value/node_modules/is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -23189,19 +23512,13 @@ }, "node_modules/uniq": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "node_modules/uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", "dev": true }, "node_modules/unique-filename": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "dependencies": { @@ -23210,7 +23527,7 @@ }, "node_modules/unique-slug": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, "dependencies": { @@ -23218,14 +23535,14 @@ } }, "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "version": "6.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", "dev": true }, "node_modules/universalify": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, "engines": { @@ -23234,8 +23551,8 @@ }, "node_modules/unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, "engines": { "node": ">= 0.8" @@ -23243,8 +23560,8 @@ }, "node_modules/unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", "dev": true, "dependencies": { "has-value": "^0.3.1", @@ -23256,8 +23573,8 @@ }, "node_modules/unset-value/node_modules/has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", "dev": true, "dependencies": { "get-value": "^2.0.3", @@ -23270,8 +23587,8 @@ }, "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", "dev": true, "dependencies": { "isarray": "1.0.0" @@ -23282,8 +23599,8 @@ }, "node_modules/unset-value/node_modules/has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -23291,7 +23608,7 @@ }, "node_modules/untildify": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/untildify/-/untildify-4.0.0.tgz", "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true, "engines": { @@ -23300,7 +23617,7 @@ }, "node_modules/upath": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true, "engines": { @@ -23308,9 +23625,43 @@ "yarn": "*" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-browserslist-db/node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "dependencies": { @@ -23319,15 +23670,15 @@ }, "node_modules/urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, "node_modules/url": { "version": "0.10.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/url/-/url-0.10.3.tgz", + "integrity": "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==", "dev": true, "dependencies": { "punycode": "1.3.2", @@ -23335,9 +23686,9 @@ } }, "node_modules/url-parse": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", + "version": "1.5.10", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, "dependencies": { "querystringify": "^2.1.1", @@ -23346,13 +23697,13 @@ }, "node_modules/url/node_modules/punycode": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", "dev": true }, "node_modules/use": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true, "engines": { @@ -23361,14 +23712,14 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "node_modules/utils-merge": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, "engines": { "node": ">= 0.4.0" @@ -23376,7 +23727,7 @@ }, "node_modules/uuid": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, "bin": { @@ -23384,15 +23735,21 @@ } }, "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "version": "2.4.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", + "dev": true + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, "node_modules/v8-to-istanbul": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", - "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", + "version": "8.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -23405,7 +23762,7 @@ }, "node_modules/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "dependencies": { @@ -23415,8 +23772,8 @@ }, "node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", "dev": true, "dependencies": { "builtins": "^1.0.3" @@ -23424,27 +23781,17 @@ }, "node_modules/vary": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, "engines": { "node": ">= 0.8" } }, - "node_modules/vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/verror": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, "engines": [ "node >=0.6.0" @@ -23457,7 +23804,7 @@ }, "node_modules/vinyl": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/vinyl/-/vinyl-2.2.1.tgz", "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", "dev": true, "dependencies": { @@ -23474,8 +23821,8 @@ }, "node_modules/vinyl-file": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz", - "integrity": "sha1-sQTZ5ECf+jJfqt1SBkLQo7SIs2U=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/vinyl-file/-/vinyl-file-3.0.0.tgz", + "integrity": "sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -23490,8 +23837,8 @@ }, "node_modules/vinyl/node_modules/clone": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true, "engines": { "node": ">=0.8" @@ -23499,8 +23846,9 @@ }, "node_modules/w3c-hr-time": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", "dev": true, "dependencies": { "browser-process-hrtime": "^1.0.0" @@ -23508,7 +23856,7 @@ }, "node_modules/w3c-xmlserializer": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", "dev": true, "dependencies": { @@ -23520,7 +23868,7 @@ }, "node_modules/wait-on": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wait-on/-/wait-on-6.0.0.tgz", "integrity": "sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw==", "dev": true, "dependencies": { @@ -23538,39 +23886,33 @@ } }, "node_modules/wait-on/node_modules/rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "version": "7.8.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "dependencies": { - "tslib": "~2.1.0" + "tslib": "^2.1.0" } }, - "node_modules/wait-on/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - }, "node_modules/walk-up-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/walk-up-path/-/walk-up-path-1.0.0.tgz", "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==", "dev": true }, "node_modules/walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "version": "1.0.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, "dependencies": { - "makeerror": "1.0.x" + "makeerror": "1.0.12" } }, "node_modules/watchpack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", - "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", + "version": "2.4.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -23582,7 +23924,7 @@ }, "node_modules/wbuf": { "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "dependencies": { @@ -23591,8 +23933,8 @@ }, "node_modules/wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, "dependencies": { "defaults": "^1.0.3" @@ -23600,7 +23942,7 @@ }, "node_modules/webidl-conversions": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webidl-conversions/-/webidl-conversions-6.1.0.tgz", "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", "dev": true, "engines": { @@ -23609,7 +23951,7 @@ }, "node_modules/webpack": { "version": "5.50.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.50.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack/-/webpack-5.50.0.tgz", "integrity": "sha512-hqxI7t/KVygs0WRv/kTgUW8Kl3YC81uyWQSo/7WUs5LsuRw0htH/fCwbVBGCuiX/t4s7qzjXFcf41O8Reiypag==", "dev": true, "dependencies": { @@ -23656,7 +23998,7 @@ }, "node_modules/webpack-bundle-analyzer": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz", "integrity": "sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ==", "dev": true, "dependencies": { @@ -23678,9 +24020,9 @@ } }, "node_modules/webpack-bundle-analyzer/node_modules/acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "version": "8.11.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -23690,9 +24032,9 @@ } }, "node_modules/webpack-bundle-analyzer/node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn-walk/-/acorn-walk-8.3.1.tgz", + "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", "dev": true, "engines": { "node": ">=0.4.0" @@ -23700,7 +24042,7 @@ }, "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -23715,7 +24057,7 @@ }, "node_modules/webpack-bundle-analyzer/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -23731,7 +24073,7 @@ }, "node_modules/webpack-bundle-analyzer/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -23743,13 +24085,13 @@ }, "node_modules/webpack-bundle-analyzer/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/webpack-bundle-analyzer/node_modules/commander": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-6.2.1.tgz", "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true, "engines": { @@ -23758,7 +24100,7 @@ }, "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -23767,7 +24109,7 @@ }, "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -23779,7 +24121,7 @@ }, "node_modules/webpack-dev-middleware": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-dev-middleware/-/webpack-dev-middleware-5.0.0.tgz", "integrity": "sha512-9zng2Z60pm6A98YoRcA0wSxw1EYn7B7y5owX/Tckyt9KGyULTkLtiavjaXlWqOMkM0YtqGgL3PvMOFgyFLq8vw==", "dev": true, "dependencies": { @@ -23803,7 +24145,7 @@ }, "node_modules/webpack-dev-middleware/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { @@ -23819,7 +24161,7 @@ }, "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "peerDependencies": { @@ -23828,13 +24170,13 @@ }, "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/webpack-dev-middleware/node_modules/mem": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mem/-/mem-8.1.1.tgz", "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", "dev": true, "dependencies": { @@ -23849,9 +24191,9 @@ } }, "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -23868,7 +24210,7 @@ }, "node_modules/webpack-dev-server": { "version": "3.11.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", "dev": true, "dependencies": { @@ -23923,7 +24265,7 @@ }, "node_modules/webpack-dev-server/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { @@ -23939,7 +24281,7 @@ }, "node_modules/webpack-dev-server/node_modules/ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "peerDependencies": { @@ -23948,8 +24290,8 @@ }, "node_modules/webpack-dev-server/node_modules/ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -23957,7 +24299,7 @@ }, "node_modules/webpack-dev-server/node_modules/anymatch": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "dependencies": { @@ -23967,8 +24309,8 @@ }, "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, "dependencies": { "remove-trailing-separator": "^1.0.1" @@ -23979,7 +24321,7 @@ }, "node_modules/webpack-dev-server/node_modules/binary-extensions": { "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true, "engines": { @@ -23988,7 +24330,7 @@ }, "node_modules/webpack-dev-server/node_modules/braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "dependencies": { @@ -24009,8 +24351,8 @@ }, "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -24021,9 +24363,9 @@ }, "node_modules/webpack-dev-server/node_modules/chokidar": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", "dev": true, "dependencies": { "anymatch": "^2.0.0", @@ -24044,7 +24386,7 @@ }, "node_modules/webpack-dev-server/node_modules/cliui": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "dependencies": { @@ -24054,9 +24396,9 @@ } }, "node_modules/webpack-dev-server/node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, "engines": { "node": ">=6" @@ -24064,7 +24406,7 @@ }, "node_modules/webpack-dev-server/node_modules/cliui/node_modules/strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { @@ -24076,14 +24418,14 @@ }, "node_modules/webpack-dev-server/node_modules/emoji-regex": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "node_modules/webpack-dev-server/node_modules/fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, "dependencies": { "extend-shallow": "^2.0.1", @@ -24097,8 +24439,8 @@ }, "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -24109,7 +24451,7 @@ }, "node_modules/webpack-dev-server/node_modules/find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "dependencies": { @@ -24121,9 +24463,9 @@ }, "node_modules/webpack-dev-server/node_modules/fsevents": { "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", "dev": true, "hasInstallScript": true, "optional": true, @@ -24140,8 +24482,8 @@ }, "node_modules/webpack-dev-server/node_modules/glob-parent": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", "dev": true, "dependencies": { "is-glob": "^3.1.0", @@ -24150,8 +24492,8 @@ }, "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", "dev": true, "dependencies": { "is-extglob": "^2.1.0" @@ -24162,7 +24504,7 @@ }, "node_modules/webpack-dev-server/node_modules/import-local": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/import-local/-/import-local-2.0.0.tgz", "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", "dev": true, "dependencies": { @@ -24176,10 +24518,16 @@ "node": ">=6" } }, + "node_modules/webpack-dev-server/node_modules/ip": { + "version": "1.1.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, "node_modules/webpack-dev-server/node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", "dev": true, "dependencies": { "binary-extensions": "^1.0.0" @@ -24190,8 +24538,8 @@ }, "node_modules/webpack-dev-server/node_modules/is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -24199,8 +24547,8 @@ }, "node_modules/webpack-dev-server/node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true, "engines": { "node": ">=4" @@ -24208,8 +24556,8 @@ }, "node_modules/webpack-dev-server/node_modules/is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -24220,8 +24568,8 @@ }, "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -24232,8 +24580,8 @@ }, "node_modules/webpack-dev-server/node_modules/is-wsl": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", "dev": true, "engines": { "node": ">=4" @@ -24241,13 +24589,13 @@ }, "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/webpack-dev-server/node_modules/locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "dependencies": { @@ -24260,7 +24608,7 @@ }, "node_modules/webpack-dev-server/node_modules/micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "dependencies": { @@ -24283,9 +24631,9 @@ } }, "node_modules/webpack-dev-server/node_modules/mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "version": "2.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, "bin": { "mime": "cli.js" @@ -24295,12 +24643,12 @@ } }, "node_modules/webpack-dev-server/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" @@ -24308,7 +24656,7 @@ }, "node_modules/webpack-dev-server/node_modules/opn": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/opn/-/opn-5.5.0.tgz", "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", "dev": true, "dependencies": { @@ -24320,7 +24668,7 @@ }, "node_modules/webpack-dev-server/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { @@ -24335,7 +24683,7 @@ }, "node_modules/webpack-dev-server/node_modules/p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "dependencies": { @@ -24347,8 +24695,8 @@ }, "node_modules/webpack-dev-server/node_modules/path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, "engines": { "node": ">=4" @@ -24356,7 +24704,7 @@ }, "node_modules/webpack-dev-server/node_modules/pkg-dir": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "dependencies": { @@ -24367,15 +24715,30 @@ } }, "node_modules/webpack-dev-server/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "version": "1.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, + "node_modules/webpack-dev-server/node_modules/qs": { + "version": "6.11.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/webpack-dev-server/node_modules/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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -24389,7 +24752,7 @@ }, "node_modules/webpack-dev-server/node_modules/readdirp": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "dependencies": { @@ -24403,8 +24766,8 @@ }, "node_modules/webpack-dev-server/node_modules/resolve-cwd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", "dev": true, "dependencies": { "resolve-from": "^3.0.0" @@ -24415,16 +24778,22 @@ }, "node_modules/webpack-dev-server/node_modules/resolve-from": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", "dev": true, "engines": { "node": ">=4" } }, + "node_modules/webpack-dev-server/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/webpack-dev-server/node_modules/schema-utils": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "dependencies": { @@ -24437,9 +24806,9 @@ } }, "node_modules/webpack-dev-server/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -24447,7 +24816,7 @@ }, "node_modules/webpack-dev-server/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { @@ -24456,7 +24825,7 @@ }, "node_modules/webpack-dev-server/node_modules/string-width": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { @@ -24469,9 +24838,9 @@ } }, "node_modules/webpack-dev-server/node_modules/string-width/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, "engines": { "node": ">=6" @@ -24479,7 +24848,7 @@ }, "node_modules/webpack-dev-server/node_modules/string-width/node_modules/strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { @@ -24491,8 +24860,8 @@ }, "node_modules/webpack-dev-server/node_modules/strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" @@ -24503,7 +24872,7 @@ }, "node_modules/webpack-dev-server/node_modules/supports-color": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { @@ -24515,8 +24884,8 @@ }, "node_modules/webpack-dev-server/node_modules/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, "dependencies": { "is-number": "^3.0.0", @@ -24527,18 +24896,18 @@ } }, "node_modules/webpack-dev-server/node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "version": "0.11.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", "dev": true, "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "punycode": "^1.4.1", + "qs": "^6.11.2" } }, "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { "version": "3.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", "dev": true, "dependencies": { @@ -24557,7 +24926,7 @@ }, "node_modules/webpack-dev-server/node_modules/wrap-ansi": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "dependencies": { @@ -24570,9 +24939,9 @@ } }, "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, "engines": { "node": ">=6" @@ -24580,7 +24949,7 @@ }, "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { @@ -24592,7 +24961,7 @@ }, "node_modules/webpack-dev-server/node_modules/ws": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ws/-/ws-6.2.2.tgz", "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", "dev": true, "dependencies": { @@ -24601,13 +24970,13 @@ }, "node_modules/webpack-dev-server/node_modules/y18n": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "node_modules/webpack-dev-server/node_modules/yargs": { "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "dependencies": { @@ -24625,7 +24994,7 @@ }, "node_modules/webpack-dev-server/node_modules/yargs-parser": { "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "dependencies": { @@ -24635,7 +25004,7 @@ }, "node_modules/webpack-log": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-log/-/webpack-log-2.0.0.tgz", "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", "dev": true, "dependencies": { @@ -24648,7 +25017,7 @@ }, "node_modules/webpack-log/node_modules/ansi-colors": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-colors/-/ansi-colors-3.2.4.tgz", "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true, "engines": { @@ -24657,7 +25026,7 @@ }, "node_modules/webpack-log/node_modules/uuid": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, @@ -24667,7 +25036,7 @@ }, "node_modules/webpack-merge": { "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-merge/-/webpack-merge-5.8.0.tgz", "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "dependencies": { @@ -24680,7 +25049,7 @@ }, "node_modules/webpack-notifier": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.13.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-notifier/-/webpack-notifier-1.13.0.tgz", "integrity": "sha512-QLk6l/TZKGhyN6Hd1zobaiYno7S9YPX3wH86+YOSufHes77SegGhnGdj+4vrLDFK5A4ZKoQD5GRXXFnM0h0N8A==", "dev": true, "dependencies": { @@ -24690,7 +25059,7 @@ }, "node_modules/webpack-sources": { "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dev": true, "dependencies": { @@ -24700,7 +25069,7 @@ }, "node_modules/webpack-sources/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { @@ -24709,7 +25078,7 @@ }, "node_modules/webpack-subresource-integrity": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.2.tgz", "integrity": "sha512-GBWYBoyalbo5YClwWop9qe6Zclp8CIXYGIz12OPclJhIrSplDxs1Ls1JDMH8xBPPrg1T6ISaTW9Y6zOrwEiAzw==", "dev": true, "dependencies": { @@ -24728,10 +25097,16 @@ } } }, + "node_modules/webpack/node_modules/@types/estree": { + "version": "0.0.50", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, "node_modules/webpack/node_modules/acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "version": "8.11.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -24741,9 +25116,9 @@ } }, "node_modules/webpack/node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "version": "1.9.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true, "peerDependencies": { "acorn": "^8" @@ -24751,7 +25126,7 @@ }, "node_modules/webpack/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { @@ -24767,7 +25142,7 @@ }, "node_modules/webpack/node_modules/ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "peerDependencies": { @@ -24776,7 +25151,7 @@ }, "node_modules/webpack/node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, "engines": { @@ -24785,14 +25160,14 @@ }, "node_modules/webpack/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -24808,9 +25183,9 @@ } }, "node_modules/webpack/node_modules/webpack-sources": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.1.tgz", - "integrity": "sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA==", + "version": "3.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, "engines": { "node": ">=10.13.0" @@ -24818,7 +25193,7 @@ }, "node_modules/websocket-driver": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, "dependencies": { @@ -24832,7 +25207,7 @@ }, "node_modules/websocket-extensions": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true, "engines": { @@ -24841,7 +25216,7 @@ }, "node_modules/whatwg-encoding": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "dev": true, "dependencies": { @@ -24850,13 +25225,13 @@ }, "node_modules/whatwg-mimetype": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", "dev": true }, "node_modules/whatwg-url": { "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/whatwg-url/-/whatwg-url-8.7.0.tgz", "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", "dev": true, "dependencies": { @@ -24870,7 +25245,7 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { @@ -24884,14 +25259,14 @@ } }, "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "dev": true }, "node_modules/which-pm": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/which-pm/-/which-pm-2.0.0.tgz", "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", "dev": true, "dependencies": { @@ -24904,7 +25279,7 @@ }, "node_modules/wide-align": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, "dependencies": { @@ -24912,14 +25287,14 @@ } }, "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true }, "node_modules/windows-release": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/windows-release/-/windows-release-4.0.0.tgz", "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", "dev": true, "dependencies": { @@ -24934,7 +25309,7 @@ }, "node_modules/windows-release/node_modules/execa": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/execa/-/execa-4.1.0.tgz", "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "dependencies": { @@ -24957,7 +25332,7 @@ }, "node_modules/windows-release/node_modules/get-stream": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "dependencies": { @@ -24972,7 +25347,7 @@ }, "node_modules/windows-release/node_modules/human-signals": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true, "engines": { @@ -24981,7 +25356,7 @@ }, "node_modules/winston": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/winston/-/winston-3.3.3.tgz", "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", "dev": true, "dependencies": { @@ -25000,60 +25375,28 @@ } }, "node_modules/winston-transport": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", - "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", + "version": "4.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/winston-transport/-/winston-transport-4.6.0.tgz", + "integrity": "sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==", "dev": true, "dependencies": { - "readable-stream": "^2.3.7", - "triple-beam": "^1.2.0" + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" }, "engines": { - "node": ">= 6.4.0" - } - }, - "node_modules/winston-transport/node_modules/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, - "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" - } - }, - "node_modules/winston-transport/node_modules/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, - "dependencies": { - "safe-buffer": "~5.1.0" + "node": ">= 12.0.0" } }, "node_modules/winston/node_modules/async": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", - "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==", + "version": "3.2.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { "ansi-styles": "^4.0.0", @@ -25069,7 +25412,7 @@ }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" @@ -25083,7 +25426,7 @@ }, "node_modules/wrap-ansi/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" @@ -25094,17 +25437,17 @@ }, "node_modules/wrap-ansi/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "dependencies": { @@ -25115,9 +25458,9 @@ } }, "node_modules/ws": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", + "version": "7.5.9", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "dev": true, "engines": { "node": ">=8.3.0" @@ -25137,19 +25480,19 @@ }, "node_modules/xml": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", "dev": true }, "node_modules/xml-name-validator": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, "node_modules/xml2js": { "version": "0.4.19", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xml2js/-/xml2js-0.4.19.tgz", "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", "dev": true, "dependencies": { @@ -25159,8 +25502,8 @@ }, "node_modules/xmlbuilder": { "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==", "dev": true, "engines": { "node": ">=4.0" @@ -25168,14 +25511,14 @@ }, "node_modules/xmlchars": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, "node_modules/xmlhttprequest-ssl": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz", - "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==", + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", "dev": true, "engines": { "node": ">=0.4.0" @@ -25183,20 +25526,20 @@ }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "engines": { "node": ">=10" } }, "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "version": "3.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/yaml": { "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, "engines": { @@ -25204,17 +25547,17 @@ } }, "node_modules/yargs": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.2.1.tgz", - "integrity": "sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==", + "version": "17.7.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" }, "engines": { "node": ">=12" @@ -25222,21 +25565,30 @@ }, "node_modules/yargs-parser": { "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, "engines": { "node": ">=10" } }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, "node_modules/yeast": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==", "dev": true }, "node_modules/yeoman-environment": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yeoman-environment/-/yeoman-environment-3.6.0.tgz", "integrity": "sha512-X16N9lhzRdUKFT8MZrpwjLDKsdgAUqh4VPR2wAXeAqjJJaUxYBxCQGFxtZVTf3vbyNuIHXPunwOLtK60bpapbg==", "dev": true, "dependencies": { @@ -25288,7 +25640,7 @@ }, "node_modules/yeoman-environment/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -25303,7 +25655,7 @@ }, "node_modules/yeoman-environment/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -25319,7 +25671,7 @@ }, "node_modules/yeoman-environment/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -25331,13 +25683,13 @@ }, "node_modules/yeoman-environment/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/yeoman-environment/node_modules/commander": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-7.1.0.tgz", "integrity": "sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==", "dev": true, "engines": { @@ -25346,7 +25698,7 @@ }, "node_modules/yeoman-environment/node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "engines": { @@ -25358,7 +25710,7 @@ }, "node_modules/yeoman-environment/node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { @@ -25374,7 +25726,7 @@ }, "node_modules/yeoman-environment/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -25383,7 +25735,7 @@ }, "node_modules/yeoman-environment/node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { @@ -25398,7 +25750,7 @@ }, "node_modules/yeoman-environment/node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { @@ -25413,7 +25765,7 @@ }, "node_modules/yeoman-environment/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -25425,7 +25777,7 @@ }, "node_modules/yeoman-generator": { "version": "5.4.2", - "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-5.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yeoman-generator/-/yeoman-generator-5.4.2.tgz", "integrity": "sha512-xgS3A4r5VoEYq3vPdk1fWPVZ30y5NHlT2hn0OEyhKG79xojCtPkPkfWcKQamgvC9QLhaotVGvambBxwxwBeDTg==", "dev": true, "dependencies": { @@ -25456,7 +25808,7 @@ }, "node_modules/yeoman-generator/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { @@ -25471,7 +25823,7 @@ }, "node_modules/yeoman-generator/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { @@ -25487,7 +25839,7 @@ }, "node_modules/yeoman-generator/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -25499,13 +25851,13 @@ }, "node_modules/yeoman-generator/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/yeoman-generator/node_modules/execa": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/execa/-/execa-4.1.0.tgz", "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "dependencies": { @@ -25528,7 +25880,7 @@ }, "node_modules/yeoman-generator/node_modules/get-stream": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "dependencies": { @@ -25543,7 +25895,7 @@ }, "node_modules/yeoman-generator/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { @@ -25552,7 +25904,7 @@ }, "node_modules/yeoman-generator/node_modules/human-signals": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true, "engines": { @@ -25561,7 +25913,7 @@ }, "node_modules/yeoman-generator/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { @@ -25573,7 +25925,7 @@ }, "node_modules/yn": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, "engines": { @@ -25582,7 +25934,7 @@ }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "engines": { @@ -25594,7 +25946,7 @@ }, "node_modules/zone.js": { "version": "0.11.4", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/zone.js/-/zone.js-0.11.4.tgz", "integrity": "sha512-DDh2Ab+A/B+9mJyajPjHFPWfYU1H+pdun4wnnk0OcQTNjem1XQSZ2CDW+rfZEUDjv5M19SBqAkjZi0x5wuB5Qw==", "dependencies": { "tslib": "^2.0.0" @@ -25602,9 +25954,15 @@ } }, "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, "@ampproject/remapping": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@ampproject/remapping/-/remapping-1.0.1.tgz", "integrity": "sha512-Ta9bMA3EtUHDaZJXqUoT5cn/EecwOp+SXpKJqxDbDuMbLvEMu6YTyDDuvTWeStODfdmXyfMo7LymQyPkN3BicA==", "dev": true, "requires": { @@ -25614,7 +25972,7 @@ }, "@angular-builders/custom-webpack": { "version": "12.1.2", - "resolved": "https://registry.npmjs.org/@angular-builders/custom-webpack/-/custom-webpack-12.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-builders/custom-webpack/-/custom-webpack-12.1.2.tgz", "integrity": "sha512-rvHFiZkHCnVAh3nd/mGpJxjbs5LKXvhTRhec7ozkGMyqt0wZK44BsLKcH5VOiIwHQnjrkjtMc0Blaq5JhccwWw==", "dev": true, "requires": { @@ -25628,30 +25986,30 @@ }, "dependencies": { "acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "version": "8.11.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true }, "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn-walk/-/acorn-walk-8.3.1.tgz", + "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", "dev": true }, "diff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, "ts-node": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.3.0.tgz", - "integrity": "sha512-RYIy3i8IgpFH45AX4fQHExrT8BxDeKTdC83QFJkNzkvt8uFB6QJ8XMyhynYiKMLxt9a7yuXaDBZNOYS3XjDcYw==", + "version": "10.9.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "requires": { - "@cspotcode/source-map-support": "0.7.0", + "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", @@ -25662,6 +26020,7 @@ "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" } } @@ -25669,7 +26028,7 @@ }, "@angular-builders/jest": { "version": "12.1.2", - "resolved": "https://registry.npmjs.org/@angular-builders/jest/-/jest-12.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-builders/jest/-/jest-12.1.2.tgz", "integrity": "sha512-BWL0/rTMqRi33qpb2mrUsJD3crWKEuFmg0Jg4EjsHNeVrdSEWYkSMAHQLz9WrOqmArDGATf+ieYeeliQDhxfEQ==", "dev": true, "requires": { @@ -25680,18 +26039,18 @@ } }, "@angular-devkit/architect": { - "version": "0.1202.10", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.10.tgz", - "integrity": "sha512-/sLgtXaFsNouxub5M/bQ2sBkiMIlPubuz6QMh+pA2jia82vJ3hcRMt4AnJTXuXpVY+aew4FiG0i9nt/8HETQsw==", + "version": "0.1202.18", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/architect/-/architect-0.1202.18.tgz", + "integrity": "sha512-C4ASKe+xBjl91MJyHDLt3z7ICPF9FU6B0CeJ1phwrlSHK9lmFG99WGxEj/Tc82+vHyPhajqS5XJ38KyVAPBGzA==", "dev": true, "requires": { - "@angular-devkit/core": "12.2.10", + "@angular-devkit/core": "12.2.18", "rxjs": "6.6.7" } }, "@angular-devkit/build-angular": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/build-angular/-/build-angular-12.2.5.tgz", "integrity": "sha512-v44FAFMGSXJLKx25REXdoTdW/WzNXV3BDJam9ZKHFOrdtwJek4D/tEdtNHiQP4HberOHzmVjvKffa5VYXzZ40g==", "dev": true, "requires": { @@ -25768,7 +26127,7 @@ "dependencies": { "@angular-devkit/architect": { "version": "0.1202.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/architect/-/architect-0.1202.5.tgz", "integrity": "sha512-HiF8RceDrvP7m8Qm53KWVpekESX0UIK4/tOg9mgFMcS/2utRnPzuu4WbfrcY9DRrsoMWLXQs6j/UVXqf8PzXJw==", "dev": true, "requires": { @@ -25778,7 +26137,7 @@ }, "@angular-devkit/core": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/core/-/core-12.2.5.tgz", "integrity": "sha512-UBo0Q9nVGPxC+C1PONSzaczPLv5++5Q7PC2orZepDbWmY0jUDwe9VVJrmp8EhLZbzVKFpyCIs1ZE8h0s0LP1zA==", "dev": true, "requires": { @@ -25792,14 +26151,14 @@ }, "@ngtools/webpack": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@ngtools/webpack/-/webpack-12.2.5.tgz", "integrity": "sha512-wc+ovfJucCxAjoP3ExnJll8K3nAoNCiFyDEO8dgHkriY/IWhGdwOu1eduHgfT/mWS40Awj/inJJir9oTi4YBVg==", "dev": true, "requires": {} }, "tslib": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-2.3.0.tgz", "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", "dev": true } @@ -25807,7 +26166,7 @@ }, "@angular-devkit/build-optimizer": { "version": "0.1202.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1202.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/build-optimizer/-/build-optimizer-0.1202.5.tgz", "integrity": "sha512-ni3OyBQq7y1Jk9U7CtwWMRoI+1TWjQYVdGRWt5JgqvLk0hZcaLoapGwUypBV+CdKvC0/0V+k84RiO5wvs5XpFQ==", "dev": true, "requires": { @@ -25818,7 +26177,7 @@ "dependencies": { "tslib": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-2.3.0.tgz", "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", "dev": true } @@ -25826,7 +26185,7 @@ }, "@angular-devkit/build-webpack": { "version": "0.1202.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1202.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/build-webpack/-/build-webpack-0.1202.5.tgz", "integrity": "sha512-wqU2t2zUCZi+fjhuZzFko3eTyqXP6vjdqA3BZQwr3pEhL7IEOvlN4EUYqWAi+h+4SrTtAhk6vZ7m41Hr0y2Ykw==", "dev": true, "requires": { @@ -25836,7 +26195,7 @@ "dependencies": { "@angular-devkit/architect": { "version": "0.1202.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/architect/-/architect-0.1202.5.tgz", "integrity": "sha512-HiF8RceDrvP7m8Qm53KWVpekESX0UIK4/tOg9mgFMcS/2utRnPzuu4WbfrcY9DRrsoMWLXQs6j/UVXqf8PzXJw==", "dev": true, "requires": { @@ -25846,7 +26205,7 @@ }, "@angular-devkit/core": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/core/-/core-12.2.5.tgz", "integrity": "sha512-UBo0Q9nVGPxC+C1PONSzaczPLv5++5Q7PC2orZepDbWmY0jUDwe9VVJrmp8EhLZbzVKFpyCIs1ZE8h0s0LP1zA==", "dev": true, "requires": { @@ -25861,9 +26220,9 @@ } }, "@angular-devkit/core": { - "version": "12.2.10", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.10.tgz", - "integrity": "sha512-0qhmS7Qvl0hiRVTHxEC/ipFAfzYofPstw0ZITDpEMw+pgHlOZolOlnFrv8LyOXWNqlSIH5fS9D3WF7Hpm7ApYA==", + "version": "12.2.18", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/core/-/core-12.2.18.tgz", + "integrity": "sha512-GDLHGe9HEY5SRS+NrKr14C8aHsRCiBFkBFSSbeohgLgcgSXzZHFoU84nDWrl3KZNP8oqcUSv5lHu6dLcf2fnww==", "dev": true, "requires": { "ajv": "8.6.2", @@ -25876,7 +26235,7 @@ }, "@angular-devkit/schematics": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/schematics/-/schematics-12.2.5.tgz", "integrity": "sha512-8WAdZ39FZqbU1/ZQQrK+7PeRuj6QUGlxFUgoVXk5nzRbpZo/OSaKhPoC7sC1A0EU+7udLp5vT7R12sDz7Mr9vQ==", "dev": true, "requires": { @@ -25887,7 +26246,7 @@ "dependencies": { "@angular-devkit/core": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/core/-/core-12.2.5.tgz", "integrity": "sha512-UBo0Q9nVGPxC+C1PONSzaczPLv5++5Q7PC2orZepDbWmY0jUDwe9VVJrmp8EhLZbzVKFpyCIs1ZE8h0s0LP1zA==", "dev": true, "requires": { @@ -25903,7 +26262,7 @@ }, "@angular-eslint/eslint-plugin": { "version": "12.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-12.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-eslint/eslint-plugin/-/eslint-plugin-12.4.1.tgz", "integrity": "sha512-C4ZINz1KBvhz8xWogqU5BHwcPBtgTj6RghgZ18DqXVME5jzIHgWALwl+C1BidNeFQvASlOTHfI4KjIT2VJPoDQ==", "dev": true, "requires": { @@ -25912,7 +26271,7 @@ "dependencies": { "@typescript-eslint/experimental-utils": { "version": "4.28.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.2.tgz", "integrity": "sha512-MwHPsL6qo98RC55IoWWP8/opTykjTp4JzfPu1VfO2Z0MshNP0UZ1GEV5rYSSnZSUI8VD7iHvtIPVGW5Nfh7klQ==", "dev": true, "requires": { @@ -25926,7 +26285,7 @@ "dependencies": { "eslint-utils": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { @@ -25937,7 +26296,7 @@ }, "@typescript-eslint/scope-manager": { "version": "4.28.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/scope-manager/-/scope-manager-4.28.2.tgz", "integrity": "sha512-MqbypNjIkJFEFuOwPWNDjq0nqXAKZvDNNs9yNseoGBB1wYfz1G0WHC2AVOy4XD7di3KCcW3+nhZyN6zruqmp2A==", "dev": true, "requires": { @@ -25947,13 +26306,13 @@ }, "@typescript-eslint/types": { "version": "4.28.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/types/-/types-4.28.2.tgz", "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==", "dev": true }, "@typescript-eslint/typescript-estree": { "version": "4.28.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.2.tgz", "integrity": "sha512-86lLstLvK6QjNZjMoYUBMMsULFw0hPHJlk1fzhAVoNjDBuPVxiwvGuPQq3fsBMCxuDJwmX87tM/AXoadhHRljg==", "dev": true, "requires": { @@ -25968,7 +26327,7 @@ "dependencies": { "tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "requires": { @@ -25979,7 +26338,7 @@ }, "@typescript-eslint/visitor-keys": { "version": "4.28.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.2.tgz", "integrity": "sha512-aT2B4PLyyRDUVUafXzpZFoc0C9t0za4BJAKP5sgWIhG+jHECQZUEjuQSCIwZdiJJ4w4cgu5r3Kh20SOdtEBl0w==", "dev": true, "requires": { @@ -25989,7 +26348,7 @@ }, "tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } @@ -25997,7 +26356,7 @@ }, "@angular/cli": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/cli/-/cli-12.2.5.tgz", "integrity": "sha512-O/NqRaFGx2jns03oWwhWBpilV4s7B8Zie6rgo2hJty1T3douGkK5kTO38N4Lebeayw8LTiPhT/JOrQTfFgXSjw==", "dev": true, "requires": { @@ -26024,7 +26383,7 @@ "dependencies": { "@angular-devkit/architect": { "version": "0.1202.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/architect/-/architect-0.1202.5.tgz", "integrity": "sha512-HiF8RceDrvP7m8Qm53KWVpekESX0UIK4/tOg9mgFMcS/2utRnPzuu4WbfrcY9DRrsoMWLXQs6j/UVXqf8PzXJw==", "dev": true, "requires": { @@ -26034,7 +26393,7 @@ }, "@angular-devkit/core": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/core/-/core-12.2.5.tgz", "integrity": "sha512-UBo0Q9nVGPxC+C1PONSzaczPLv5++5Q7PC2orZepDbWmY0jUDwe9VVJrmp8EhLZbzVKFpyCIs1ZE8h0s0LP1zA==", "dev": true, "requires": { @@ -26050,7 +26409,7 @@ }, "@angular/common": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/common/-/common-12.2.5.tgz", "integrity": "sha512-iwyaGPx7ILTJn91ed7VtYkvVRRezaZ0EE2V5DzVXwCsBQyzCrBYz/Uo2udVDsJ2FXXhpxa2VjnkW55Uxl9wM0g==", "requires": { "tslib": "^2.2.0" @@ -26058,7 +26417,7 @@ }, "@angular/compiler": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/compiler/-/compiler-12.2.5.tgz", "integrity": "sha512-J73E3hao95T8+/+hWuCqGyXs9QCPoSsCTXmSPayFlYJW3QF5SG2vhjnf4SAgtNbUBHQWAIwGKxQTqD3VbtvP1A==", "requires": { "tslib": "^2.2.0" @@ -26066,7 +26425,7 @@ }, "@angular/compiler-cli": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/compiler-cli/-/compiler-cli-12.2.5.tgz", "integrity": "sha512-KVpgkWUGZYRPvmJOqY1CZwjvc7VE0DYDPxmvXH/S1C6rzpl/UOTxYtDynxiNzuvLeV0oOnlcOGd4/BmMZJPh/A==", "requires": { "@babel/core": "^7.8.6", @@ -26087,14 +26446,14 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, "@angular/core": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/core/-/core-12.2.5.tgz", "integrity": "sha512-bwxxEy1UrV+hWzjT6ow/Ge8upebglJwlWuKadPdd3ZVrWKPI0saoUUBv4S8EGiIxyW821GfEbzWzmBYUSUCiGQ==", "requires": { "tslib": "^2.2.0" @@ -26102,7 +26461,7 @@ }, "@angular/forms": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/forms/-/forms-12.2.5.tgz", "integrity": "sha512-Sty4MMrmUrm7KYbYYAkA6egwIMFJ8D8G6ds5W79fN7K3B3LGYtMTRuMIBYQeSvdk8AN5+Evt6BUwlL8PMYq9Rg==", "requires": { "tslib": "^2.2.0" @@ -26110,7 +26469,7 @@ }, "@angular/localize": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/localize/-/localize-12.2.5.tgz", "integrity": "sha512-1VKwvwO+QYlGblRICREjndVzKKEFhcCw+yvq5uCa6Xcvq+XjlGYYQyeSjefAiGcNB4Srcjx46s9vPdefUw/ETg==", "requires": { "@babel/core": "7.8.3", @@ -26120,7 +26479,7 @@ "dependencies": { "@babel/core": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/core/-/core-7.8.3.tgz", "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==", "requires": { "@babel/code-frame": "^7.8.3", @@ -26141,20 +26500,20 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" } } }, "@angular/platform-browser": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/platform-browser/-/platform-browser-12.2.5.tgz", "integrity": "sha512-2Vs+0Zx87lGYvC3Bkzy9eT0yXXvMd0e8vrEJ1oIdxfkRhbE/wTL1+LA8JlT5rROqcZwY4joOPiHC9jVFw6dDCQ==", "requires": { "tslib": "^2.2.0" @@ -26162,7 +26521,7 @@ }, "@angular/platform-browser-dynamic": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.5.tgz", "integrity": "sha512-GIAMw+KFYVFFtyvC3Z6znxLCJdZx/IvpfHQVekpQumiv291cng2jSamU3FZjV3xZKXfccS4I4hIXFX85EBMRWA==", "requires": { "tslib": "^2.2.0" @@ -26170,7 +26529,7 @@ }, "@angular/router": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/router/-/router-12.2.5.tgz", "integrity": "sha512-rfaHzi6ZrLFqdebEQTMPxVEwLuA8MBGOUzyekhLjGTvKwc7L2/m303LPIDECRFyCSik3EIxGLvzPET0l+DVgAw==", "requires": { "tslib": "^2.2.0" @@ -26178,7 +26537,7 @@ }, "@angular/service-worker": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular/service-worker/-/service-worker-12.2.5.tgz", "integrity": "sha512-7tzteIgXpAffP0XWfb8lYGbTUdnP36mTxYgxYjG2ebAvCaTfwD5ENvfo3USOGDCun4Vwo64Rg7O5RyeVegyP/g==", "dev": true, "requires": { @@ -26187,26 +26546,27 @@ }, "@assemblyscript/loader": { "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@assemblyscript/loader/-/loader-0.10.1.tgz", "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", "dev": true }, "@babel/code-frame": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz", - "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", + "version": "7.23.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "requires": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" } }, "@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" + "version": "7.23.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==" }, "@babel/core": { "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/core/-/core-7.14.8.tgz", "integrity": "sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q==", "requires": { "@babel/code-frame": "^7.14.5", @@ -26227,20 +26587,20 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" } } }, "@babel/generator": { "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/generator/-/generator-7.14.8.tgz", "integrity": "sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==", "requires": { "@babel/types": "^7.14.8", @@ -26250,14 +26610,14 @@ "dependencies": { "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" } } }, "@babel/helper-annotate-as-pure": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", "dev": true, "requires": { @@ -26265,72 +26625,99 @@ } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz", - "integrity": "sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==", + "version": "7.22.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.15" } }, "@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz", - "integrity": "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==", + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz", + "integrity": "sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "dependencies": { "@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", - "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true } } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", - "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", + "version": "7.22.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "regexpu-core": "^4.7.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } } }, "@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", - "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", + "version": "0.2.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.4.tgz", + "integrity": "sha512-OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ==", "dev": true, "requires": { "@babel/helper-compilation-targets": "^7.13.0", @@ -26344,261 +26731,239 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, - "@babel/helper-explode-assignable-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz", - "integrity": "sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==" }, "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", + "version": "7.23.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "dependencies": { "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", + "version": "7.22.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } } } }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "requires": { - "@babel/types": "^7.15.4" - } - }, "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", + "version": "7.23.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.23.0" } }, "@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", + "version": "7.22.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.15" } }, "@babel/helper-module-transforms": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", - "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "requires": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" - }, - "dependencies": { - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - } + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" } }, "@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" } }, "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz", - "integrity": "sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==", + "version": "7.22.20", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-wrap-function": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" }, "dependencies": { "@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", - "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" } } } }, "@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", + "version": "7.22.20", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" } }, "@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz", - "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", + "version": "7.22.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" } }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==" + }, "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" + "version": "7.22.20", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" }, "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" + "version": "7.23.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==" }, "@babel/helper-wrap-function": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz", - "integrity": "sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==", + "version": "7.22.20", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" }, "dependencies": { "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", + "version": "7.22.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } } } }, "@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helpers/-/helpers-7.23.6.tgz", + "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", "requires": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6" }, "dependencies": { "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", + "version": "7.22.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } } } }, "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "version": "7.23.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz", - "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==" }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz", - "integrity": "sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4", - "@babel/plugin-proposal-optional-chaining": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" } }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz", "integrity": "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==", "dev": true, "requires": { @@ -26608,166 +26973,166 @@ } }, "@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", - "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz", - "integrity": "sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA==", + "version": "7.21.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", - "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", - "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", + "version": "7.18.9", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz", - "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", - "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", + "version": "7.20.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", - "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", - "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz", - "integrity": "sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==", + "version": "7.20.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", "dev": true, "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.15.4" + "@babel/plugin-transform-parameters": "^7.20.7" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", - "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", - "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", + "version": "7.21.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", - "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz", - "integrity": "sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==", + "version": "7.21.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "dependencies": { "@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", - "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" } } } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz", - "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==", + "version": "7.18.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "requires": { @@ -26776,7 +27141,7 @@ }, "@babel/plugin-syntax-bigint": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "requires": { @@ -26785,7 +27150,7 @@ }, "@babel/plugin-syntax-class-properties": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "requires": { @@ -26794,7 +27159,7 @@ }, "@babel/plugin-syntax-class-static-block": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "requires": { @@ -26803,7 +27168,7 @@ }, "@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "requires": { @@ -26812,7 +27177,7 @@ }, "@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, "requires": { @@ -26821,7 +27186,7 @@ }, "@babel/plugin-syntax-import-meta": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "requires": { @@ -26830,7 +27195,7 @@ }, "@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "requires": { @@ -26839,7 +27204,7 @@ }, "@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "requires": { @@ -26848,7 +27213,7 @@ }, "@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@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": { @@ -26857,7 +27222,7 @@ }, "@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "requires": { @@ -26866,7 +27231,7 @@ }, "@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "requires": { @@ -26875,7 +27240,7 @@ }, "@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "requires": { @@ -26884,7 +27249,7 @@ }, "@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "requires": { @@ -26893,7 +27258,7 @@ }, "@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "requires": { @@ -26902,7 +27267,7 @@ }, "@babel/plugin-syntax-top-level-await": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "requires": { @@ -26910,26 +27275,26 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", - "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", - "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-async-to-generator": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", "dev": true, "requires": { @@ -26939,246 +27304,274 @@ } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", - "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz", - "integrity": "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==", + "version": "7.23.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-classes": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz", - "integrity": "sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", + "version": "7.23.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, "dependencies": { "@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", - "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.22.5" } } } }, "@babel/plugin-transform-computed-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", - "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "dependencies": { + "@babel/template": { + "version": "7.22.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + } + } } }, "@babel/plugin-transform-destructuring": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", - "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz", - "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz", - "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", - "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-for-of": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz", - "integrity": "sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==", + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" } }, "@babel/plugin-transform-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", - "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", - "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", - "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz", - "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz", - "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.15.4", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz", - "integrity": "sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.9", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz", - "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz", - "integrity": "sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==", + "version": "7.22.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-new-target": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz", - "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-object-super": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", - "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-transform-parameters": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz", - "integrity": "sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-property-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", - "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-regenerator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", - "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dev": true, "requires": { - "regenerator-transform": "^0.14.2" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz", - "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-runtime": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz", "integrity": "sha512-fPMBhh1AV8ZyneiCIA+wYYUH1arzlXR1UMcApjvchDhfKxhy2r2lReJv8uHEyihi4IFIGlr1Pdx7S5fkESDQsg==", "dev": true, "requires": { @@ -27191,81 +27584,81 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", - "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-spread": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.15.8.tgz", - "integrity": "sha512-/daZ8s2tNaRekl9YJa9X4bzjpeRZLt122cpgFnQPLGUe61PH8zMEBmYqKkW5xF5JUEh5buEGXJoQpqBmIbpmEQ==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", - "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-template-literals": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", - "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", - "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", - "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", - "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", + "version": "7.23.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/preset-env": { "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/preset-env/-/preset-env-7.14.8.tgz", "integrity": "sha512-a9aOppDU93oArQ51H+B8M1vH+tayZbuBqzjOhntGetZVa+4tTu5jp+XTwqHGG2lxslqomPYVSjIxQkFwXzgnxg==", "dev": true, "requires": { @@ -27345,17 +27738,17 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "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==", + "version": "0.1.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/preset-modules/-/preset-modules-0.1.6.tgz", + "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -27365,9 +27758,15 @@ "esutils": "^2.0.2" } }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "@babel/runtime": { "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/runtime/-/runtime-7.14.8.tgz", "integrity": "sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==", "dev": true, "requires": { @@ -27376,7 +27775,7 @@ }, "@babel/template": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/template/-/template-7.14.5.tgz", "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", "requires": { "@babel/code-frame": "^7.14.5", @@ -27385,90 +27784,102 @@ } }, "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/traverse/-/traverse-7.23.6.tgz", + "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", "globals": "^11.1.0" }, "dependencies": { "@babel/generator": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz", - "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "requires": { - "@babel/types": "^7.15.6", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } } } }, "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", "requires": { - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, "@bcoe/v8-coverage": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, "@chevrotain/types": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-9.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@chevrotain/types/-/types-9.1.0.tgz", "integrity": "sha512-3hbCD1CThkv9gnaSIPq0GUXwKni68e0ph6jIHwCvcWiQ4JB2xi8bFxBain0RF04qHUWuDjgnZLj4rLgimuGO+g==", "dev": true }, "@chevrotain/utils": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-9.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@chevrotain/utils/-/utils-9.1.0.tgz", "integrity": "sha512-llLJZ8OAlZrjGlBvamm6Zdo/HmGAcCLq5gx7cSwUX8No+n/8ip+oaC4x33IdZIif8+Rh5dQUIZXmfbSghiOmNQ==", "dev": true }, - "@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "@colors/colors": { + "version": "1.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", "dev": true }, "@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "version": "0.8.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "requires": { - "@cspotcode/source-map-consumer": "0.8.0" + "@jridgewell/trace-mapping": "0.3.9" } }, "@csstools/convert-colors": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", "dev": true }, "@dabh/diagnostics": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", - "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", + "version": "2.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", "dev": true, "requires": { "colorspace": "1.1.x", @@ -27478,13 +27889,13 @@ }, "@discoveryjs/json-ext": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==", "dev": true }, "@eslint/eslintrc": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, "requires": { @@ -27501,7 +27912,7 @@ "dependencies": { "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { @@ -27512,9 +27923,9 @@ } }, "globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "version": "13.24.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -27522,13 +27933,13 @@ }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true } @@ -27536,7 +27947,7 @@ }, "@fortawesome/angular-fontawesome": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.9.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.9.0.tgz", "integrity": "sha512-pJNJqxRTJChkUtywbqRuJRpmK/WNwqFqeN/GMmJmy3gHeCnWQ4SG0BwPJqaWqhi4gqII5dADijGts6wqeusxeQ==", "requires": { "tslib": "^2.2.0" @@ -27544,12 +27955,12 @@ }, "@fortawesome/fontawesome-common-types": { "version": "0.2.36", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz", "integrity": "sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==" }, "@fortawesome/fontawesome-svg-core": { "version": "1.2.36", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.36.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.36.tgz", "integrity": "sha512-YUcsLQKYb6DmaJjIHdDWpBIGCcyE/W+p/LMGvjQem55Mm2XWVAP5kWTMKWLv9lwpCVjpLxPyOMOyUocP1GxrtA==", "requires": { "@fortawesome/fontawesome-common-types": "^0.2.36" @@ -27557,21 +27968,21 @@ }, "@fortawesome/free-solid-svg-icons": { "version": "5.15.4", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz", "integrity": "sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==", "requires": { "@fortawesome/fontawesome-common-types": "^0.2.36" } }, "@hapi/hoek": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==", + "version": "9.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", "dev": true }, "@hapi/topo": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@hapi/topo/-/topo-5.1.0.tgz", "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "dev": true, "requires": { @@ -27580,7 +27991,7 @@ }, "@humanwhocodes/config-array": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dev": true, "requires": { @@ -27590,20 +28001,20 @@ } }, "@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "version": "1.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, "@isaacs/string-locale-compare": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", "dev": true }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "requires": { @@ -27616,7 +28027,7 @@ "dependencies": { "resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true } @@ -27624,27 +28035,27 @@ }, "@istanbuljs/schema": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, "@jest/console": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.3.1.tgz", - "integrity": "sha512-RkFNWmv0iui+qsOr/29q9dyfKTTT5DCuP31kUwg7rmOKPT/ozLeGLKJKVIiOfbiKyleUZKIrHwhmiZWVe8IMdw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", "dev": true, "requires": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^27.3.1", - "jest-util": "^27.3.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", "slash": "^3.0.0" }, "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -27653,7 +28064,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -27663,7 +28074,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -27672,19 +28083,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -27694,35 +28105,35 @@ } }, "@jest/core": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.3.1.tgz", - "integrity": "sha512-DMNE90RR5QKx0EA+wqe3/TNEwiRpOkhshKNxtLxd4rt3IZpCt+RSL+FoJsGeblRZmqdK4upHA/mKKGPPRAifhg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", "dev": true, "requires": { - "@jest/console": "^27.3.1", - "@jest/reporters": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.8.1", "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.3.0", - "jest-config": "^27.3.1", - "jest-haste-map": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.3.1", - "jest-resolve-dependencies": "^27.3.1", - "jest-runner": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", - "jest-watcher": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", "micromatch": "^4.0.4", "rimraf": "^3.0.0", "slash": "^3.0.0", @@ -27731,7 +28142,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -27740,7 +28151,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -27750,7 +28161,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -27759,48 +28170,51 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "jest-config": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.3.1.tgz", - "integrity": "sha512-KY8xOIbIACZ/vdYCKSopL44I0xboxC751IX+DXL2+Wx6DKNycyEfV3rryC3BPm5Uq/BBqDoMrKuqLEUNJmMKKg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", "dev": true, "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.3.1", - "@jest/types": "^27.2.5", - "babel-jest": "^27.3.1", + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-circus": "^27.3.1", - "jest-environment-jsdom": "^27.3.1", - "jest-environment-node": "^27.3.1", - "jest-get-type": "^27.3.1", - "jest-jasmine2": "^27.3.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.3.1", - "jest-runner": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", "micromatch": "^4.0.4", - "pretty-format": "^27.3.1" + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" } }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -27810,68 +28224,68 @@ } }, "@jest/environment": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.3.1.tgz", - "integrity": "sha512-BCKCj4mOVLme6Tanoyc9k0ultp3pnmuyHw73UHRPeeZxirsU/7E3HC4le/VDb/SMzE1JcPnto+XBKFOcoiJzVw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", "dev": true, "requires": { - "@jest/fake-timers": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", - "jest-mock": "^27.3.0" + "jest-mock": "^27.5.1" } }, "@jest/fake-timers": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.3.1.tgz", - "integrity": "sha512-M3ZFgwwlqJtWZ+QkBG5NmC23A9w+A6ZxNsO5nJxJsKYt4yguBd3i8TpjQz5NfCX91nEve1KqD9RA2Q+Q1uWqoA==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", "dev": true, "requires": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "@sinonjs/fake-timers": "^8.0.1", "@types/node": "*", - "jest-message-util": "^27.3.1", - "jest-mock": "^27.3.0", - "jest-util": "^27.3.1" + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" } }, "@jest/globals": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.3.1.tgz", - "integrity": "sha512-Q651FWiWQAIFiN+zS51xqhdZ8g9b88nGCobC87argAxA7nMfNQq0Q0i9zTfQYgLa6qFXk2cGANEqfK051CZ8Pg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", "dev": true, "requires": { - "@jest/environment": "^27.3.1", - "@jest/types": "^27.2.5", - "expect": "^27.3.1" + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" } }, "@jest/reporters": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.3.1.tgz", - "integrity": "sha512-m2YxPmL9Qn1emFVgZGEiMwDntDxRRQ2D58tiDQlwYTg5GvbFOKseYCcHtn0WsI8CG4vzPglo3nqbOiT8ySBT/w==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.2", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-instrument": "^5.1.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.3.1", - "jest-resolve": "^27.3.1", - "jest-util": "^27.3.1", - "jest-worker": "^27.3.1", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", "slash": "^3.0.0", "source-map": "^0.6.0", "string-length": "^4.0.1", @@ -27881,7 +28295,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -27890,7 +28304,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -27900,7 +28314,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -27909,25 +28323,44 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -27937,66 +28370,66 @@ } }, "@jest/source-map": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", - "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", "dev": true, "requires": { "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "@jest/test-result": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.3.1.tgz", - "integrity": "sha512-mLn6Thm+w2yl0opM8J/QnPTqrfS4FoXsXF2WIWJb2O/GBSyResL71BRuMYbYRsGt7ELwS5JGcEcGb52BNrumgg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", "dev": true, "requires": { - "@jest/console": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.3.1.tgz", - "integrity": "sha512-siySLo07IMEdSjA4fqEnxfIX8lB/lWYsBPwNFtkOvsFQvmBrL3yj3k3uFNZv/JDyApTakRpxbKLJ3CT8UGVCrA==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", "dev": true, "requires": { - "@jest/test-result": "^27.3.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.3.1", - "jest-runtime": "^27.3.1" + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" } }, "@jest/transform": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.3.1.tgz", - "integrity": "sha512-3fSvQ02kuvjOI1C1ssqMVBKJpZf6nwoCiSu00zAKh5nrp3SptNtZy/8s5deayHnqxhjD9CWDJ+yqQwuQ0ZafXQ==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^27.2.5", - "babel-plugin-istanbul": "^6.0.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", "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": "^27.3.1", - "jest-regex-util": "^27.0.6", - "jest-util": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", "micromatch": "^4.0.4", - "pirates": "^4.0.1", + "pirates": "^4.0.4", "slash": "^3.0.0", "source-map": "^0.6.1", "write-file-atomic": "^3.0.0" @@ -28004,7 +28437,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -28013,7 +28446,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -28023,7 +28456,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -28032,25 +28465,25 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -28060,9 +28493,9 @@ } }, "@jest/types": { - "version": "27.2.5", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz", - "integrity": "sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -28074,7 +28507,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -28083,7 +28516,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -28093,7 +28526,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -28102,19 +28535,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -28123,15 +28556,51 @@ } } }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "@jridgewell/resolve-uri": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/resolve-uri/-/resolve-uri-1.0.0.tgz", "integrity": "sha512-9oLAnygRMi8Q5QkYEU4XWK04B+nuoXoxjRvRxgjuChkLZFBja0YPSgdZ7dZtwhncLBcQe/I/E+fLuk5qxcYVJA==", "dev": true }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "dependencies": { + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" + } + } + }, "@jsdevtools/coverage-istanbul-loader": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", "dev": true, "requires": { @@ -28144,7 +28613,7 @@ }, "@kwsites/file-exists": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@kwsites/file-exists/-/file-exists-1.1.1.tgz", "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", "dev": true, "requires": { @@ -28153,21 +28622,37 @@ }, "@kwsites/promise-deferred": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", "dev": true }, "@ng-bootstrap/ng-bootstrap": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-10.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-10.0.0.tgz", "integrity": "sha512-Sz+QaxjuyJYJ+zyUbf0TevgcgVesCPQiiFiggEzxKjzY5R+Hvq3YgryLdXf2r/ryePL+C3FXCcmmKpTM5bfczQ==", "requires": { "tslib": "^2.1.0" } }, + "@ngx-translate/core": { + "version": "13.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@ngx-translate/core/-/core-13.0.0.tgz", + "integrity": "sha512-+tzEp8wlqEnw0Gc7jtVRAJ6RteUjXw6JJR4O65KlnxOmJrCGPI0xjV/lKRnQeU0w4i96PQs/jtpL921Wrb7PWg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@ngx-translate/http-loader": { + "version": "6.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@ngx-translate/http-loader/-/http-loader-6.0.0.tgz", + "integrity": "sha512-LCekn6qCbeXWlhESCxU1rAbZz33WzDG0lI7Ig0pYC1o5YxJWrkU9y3Y4tNi+jakQ7R6YhTR2D3ox6APxDtA0wA==", + "requires": { + "tslib": "^2.0.0" + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { @@ -28177,13 +28662,13 @@ }, "@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, "@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { @@ -28193,7 +28678,7 @@ }, "@npmcli/arborist": { "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-2.10.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/arborist/-/arborist-2.10.0.tgz", "integrity": "sha512-CLnD+zXG9oijEEzViimz8fbOoFVb7hoypiaf7p6giJhvYtrxLAyY3cZAMPIFQvsG731+02eMDp3LqVBNo7BaZA==", "dev": true, "requires": { @@ -28233,7 +28718,7 @@ }, "@npmcli/git": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/git/-/git-2.1.0.tgz", "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", "dev": true, "requires": { @@ -28245,11 +28730,28 @@ "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^2.0.2" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "@npmcli/installed-package-contents": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", "dev": true, "requires": { @@ -28259,7 +28761,7 @@ }, "@npmcli/map-workspaces": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/map-workspaces/-/map-workspaces-1.0.4.tgz", "integrity": "sha512-wVR8QxhyXsFcD/cORtJwGQodeeaDf0OxcHie8ema4VgFeqwYkFsDPnSrIRSytX8xR6nKPAH89WnwTcaU608b/Q==", "dev": true, "requires": { @@ -28271,7 +28773,7 @@ }, "@npmcli/metavuln-calculator": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/metavuln-calculator/-/metavuln-calculator-1.1.1.tgz", "integrity": "sha512-9xe+ZZ1iGVaUovBVFI9h3qW+UuECUzhvZPxK9RaEA2mjU26o5D0JloGYWwLYvQELJNmBdQB6rrpuN8jni6LwzQ==", "dev": true, "requires": { @@ -28282,7 +28784,7 @@ }, "@npmcli/move-file": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "dev": true, "requires": { @@ -28292,19 +28794,19 @@ }, "@npmcli/name-from-folder": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz", "integrity": "sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==", "dev": true }, "@npmcli/node-gyp": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", "dev": true }, "@npmcli/package-json": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/package-json/-/package-json-1.0.1.tgz", "integrity": "sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==", "dev": true, "requires": { @@ -28313,7 +28815,7 @@ }, "@npmcli/promise-spawn": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", "dev": true, "requires": { @@ -28322,7 +28824,7 @@ }, "@npmcli/run-script": { "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@npmcli/run-script/-/run-script-1.8.6.tgz", "integrity": "sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g==", "dev": true, "requires": { @@ -28334,7 +28836,7 @@ }, "@octokit/auth-token": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/auth-token/-/auth-token-2.5.0.tgz", "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", "dev": true, "requires": { @@ -28342,14 +28844,14 @@ } }, "@octokit/core": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", - "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", + "version": "3.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/core/-/core-3.6.0.tgz", + "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", "dev": true, "requires": { "@octokit/auth-token": "^2.4.4", "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.0", + "@octokit/request": "^5.6.3", "@octokit/request-error": "^2.0.5", "@octokit/types": "^6.0.3", "before-after-hook": "^2.2.0", @@ -28358,7 +28860,7 @@ }, "@octokit/endpoint": { "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/endpoint/-/endpoint-6.0.12.tgz", "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", "dev": true, "requires": { @@ -28369,7 +28871,7 @@ "dependencies": { "is-plain-object": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true } @@ -28377,7 +28879,7 @@ }, "@octokit/graphql": { "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/graphql/-/graphql-4.8.0.tgz", "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", "dev": true, "requires": { @@ -28387,54 +28889,54 @@ } }, "@octokit/openapi-types": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz", - "integrity": "sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==", + "version": "12.11.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==", "dev": true }, "@octokit/plugin-paginate-rest": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz", - "integrity": "sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==", + "version": "2.21.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", + "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", "dev": true, "requires": { - "@octokit/types": "^6.34.0" + "@octokit/types": "^6.40.0" } }, "@octokit/plugin-request-log": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", "dev": true, "requires": {} }, "@octokit/plugin-rest-endpoint-methods": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz", - "integrity": "sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==", + "version": "5.16.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", + "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", "dev": true, "requires": { - "@octokit/types": "^6.34.0", + "@octokit/types": "^6.39.0", "deprecation": "^2.3.1" } }, "@octokit/request": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.2.tgz", - "integrity": "sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA==", + "version": "5.6.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", "dev": true, "requires": { "@octokit/endpoint": "^6.0.1", "@octokit/request-error": "^2.1.0", "@octokit/types": "^6.16.1", "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.1", + "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" }, "dependencies": { "is-plain-object": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true } @@ -28442,7 +28944,7 @@ }, "@octokit/request-error": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/request-error/-/request-error-2.1.0.tgz", "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", "dev": true, "requires": { @@ -28453,7 +28955,7 @@ }, "@octokit/rest": { "version": "18.12.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/rest/-/rest-18.12.0.tgz", "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", "dev": true, "requires": { @@ -28464,28 +28966,28 @@ } }, "@octokit/types": { - "version": "6.34.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz", - "integrity": "sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==", + "version": "6.41.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", "dev": true, "requires": { - "@octokit/openapi-types": "^11.2.0" + "@octokit/openapi-types": "^12.11.0" } }, "@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "version": "1.0.0-next.24", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@polka/url/-/url-1.0.0-next.24.tgz", + "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==", "dev": true }, "@scarf/scarf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.1.1.tgz", - "integrity": "sha512-VGbKDbk1RFIaSmdVb0cNjjWJoRWRI/Weo23AjRCC2nryO0iAS8pzsToJfPVPtVs74WHw4L1UTADNdIYRLkirZQ==" + "version": "1.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@scarf/scarf/-/scarf-1.3.0.tgz", + "integrity": "sha512-lHKK8M5CTcpFj2hZDB3wIjb0KAbEOgDmiJGDv1WBRfQgRm/a8/XMEkG/N1iM01xgbUDsPQwi42D+dFo1XPAKew==" }, "@schematics/angular": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@schematics/angular/-/angular-12.2.5.tgz", "integrity": "sha512-Ln2GyO7Y00PrQKjqCONCDb4dwGzGboH3zIJvicWzFO+ZgkNLr/dsitGKm8b8OfR/UEiBcnK72xwPj9FWfXA4EQ==", "dev": true, "requires": { @@ -28496,7 +28998,7 @@ "dependencies": { "@angular-devkit/core": { "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@angular-devkit/core/-/core-12.2.5.tgz", "integrity": "sha512-UBo0Q9nVGPxC+C1PONSzaczPLv5++5Q7PC2orZepDbWmY0jUDwe9VVJrmp8EhLZbzVKFpyCIs1ZE8h0s0LP1zA==", "dev": true, "requires": { @@ -28511,106 +29013,112 @@ } }, "@sideway/address": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.2.tgz", - "integrity": "sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA==", + "version": "4.1.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", "dev": true, "requires": { "@hapi/hoek": "^9.0.0" } }, "@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==", + "version": "3.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", "dev": true }, "@sideway/pinpoint": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", "dev": true }, "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/fake-timers": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz", - "integrity": "sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew==", + "version": "8.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" } }, + "@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, "@tootallnate/once": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true }, "@trysound/sax": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "dev": true }, "@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "version": "1.0.9", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", "dev": true }, "@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "version": "1.0.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true }, "@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "version": "1.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "dev": true }, "@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "version": "1.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, "@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", + "version": "7.20.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", + "version": "7.6.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, "requires": { "@babel/types": "^7.0.0" } }, "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "version": "7.4.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -28618,17 +29126,17 @@ } }, "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "version": "7.20.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", "dev": true, "requires": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.20.7" } }, "@types/concat-stream": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/concat-stream/-/concat-stream-1.6.1.tgz", "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", "dev": true, "requires": { @@ -28636,9 +29144,9 @@ } }, "@types/eslint": { - "version": "7.28.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.1.tgz", - "integrity": "sha512-XhZKznR3i/W5dXqUhgU9fFdJekufbeBd5DALmkuXoeFcjbQcPk+2cL+WLHf6Q81HWAnM2vrslIHpGVyCAviRwg==", + "version": "7.29.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", "dev": true, "requires": { "@types/estree": "*", @@ -28646,9 +29154,9 @@ } }, "@types/eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "version": "3.7.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, "requires": { "@types/eslint": "*", @@ -28656,30 +29164,30 @@ } }, "@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "version": "1.0.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, "@types/expect": { "version": "1.20.4", - "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/expect/-/expect-1.20.4.tgz", "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", "dev": true }, "@types/form-data": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", "dev": true, "requires": { "@types/node": "*" } }, "@types/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", + "version": "7.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, "requires": { "@types/minimatch": "*", @@ -28687,33 +29195,33 @@ } }, "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "version": "4.1.9", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "requires": { "@types/node": "*" } }, "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "version": "2.0.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true }, "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "version": "3.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "*" } }, "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "version": "3.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" @@ -28721,7 +29229,7 @@ }, "@types/jest": { "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/jest/-/jest-27.0.1.tgz", "integrity": "sha512-HTLpVXHrY69556ozYkcq47TtQJXpcWAWfkoqz+ZGz2JnmZhzlRjprCIyFnetSy8gpDWwTTGBcRVv1J1I1vBrHw==", "dev": true, "requires": { @@ -28730,69 +29238,75 @@ } }, "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "version": "7.0.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "@types/minimatch": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/minimatch/-/minimatch-3.0.5.tgz", "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", "dev": true }, "@types/node": { "version": "16.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/node/-/node-16.9.1.tgz", "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==", "dev": true }, "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "version": "2.4.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true }, "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "version": "4.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "dev": true }, "@types/prettier": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.1.tgz", - "integrity": "sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw==", + "version": "2.7.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", "dev": true }, "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "version": "6.9.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==", "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==", + "version": "0.1.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/source-list-map/-/source-list-map-0.1.6.tgz", + "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==", "dev": true }, "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "version": "2.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", "dev": true }, "@types/vinyl": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.6.tgz", - "integrity": "sha512-ayJ0iOCDNHnKpKTgBG6Q6JOnHTj9zFta+3j2b8Ejza0e4cvRyMn0ZoLEmbPrTHe5YYRlDYPvPWVdV4cTaRyH7g==", + "version": "2.0.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/vinyl/-/vinyl-2.0.11.tgz", + "integrity": "sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==", "dev": true, "requires": { "@types/expect": "^1.20.4", @@ -28800,9 +29314,9 @@ } }, "@types/webpack-sources": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.9.tgz", - "integrity": "sha512-bvzMnzqoK16PQIC8AYHNdW45eREJQMd6WG/msQWX5V2+vZmODCOPb4TJcbgRljTZZTwTM4wUMcsI8FftNA7new==", + "version": "0.1.12", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/webpack-sources/-/webpack-sources-0.1.12.tgz", + "integrity": "sha512-+vRVqE3LzMLLVPgZHUeI8k1YmvgEky+MOir5fQhKvFxpB8uZ0CFnGqxkRAmf8jvNhUBQzhuGZpIMNWZDeEyDIA==", "dev": true, "requires": { "@types/node": "*", @@ -28812,30 +29326,30 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "version": "16.0.9", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", + "version": "21.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, "@typescript-eslint/eslint-plugin": { "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz", "integrity": "sha512-UDqhWmd5i0TvPLmbK5xY3UZB0zEGseF+DHPghZ37Sb83Qd3p8ujhvAtkU4OF46Ka5Pm5kWvFIx0cCTBFKo0alA==", "dev": true, "requires": { @@ -28850,13 +29364,13 @@ "dependencies": { "tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "requires": { @@ -28867,7 +29381,7 @@ }, "@typescript-eslint/experimental-utils": { "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz", "integrity": "sha512-NtoPsqmcSsWty0mcL5nTZXMf7Ei0Xr2MT8jWjXMVgRK0/1qeQ2jZzLFUh4QtyJ4+/lPUyMw5cSfeeME+Zrtp9Q==", "dev": true, "requires": { @@ -28881,7 +29395,7 @@ "dependencies": { "eslint-utils": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { @@ -28892,7 +29406,7 @@ }, "@typescript-eslint/parser": { "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.31.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/parser/-/parser-4.31.1.tgz", "integrity": "sha512-dnVZDB6FhpIby6yVbHkwTKkn2ypjVIfAR9nh+kYsA/ZL0JlTsd22BiDjouotisY3Irmd3OW1qlk9EI5R8GrvRQ==", "dev": true, "requires": { @@ -28904,7 +29418,7 @@ }, "@typescript-eslint/scope-manager": { "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz", "integrity": "sha512-N1Uhn6SqNtU2XpFSkD4oA+F0PfKdWHyr4bTX0xTj8NRx1314gBDRL1LUuZd5+L3oP+wo6hCbZpaa1in6SwMcVQ==", "dev": true, "requires": { @@ -28914,13 +29428,13 @@ }, "@typescript-eslint/types": { "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/types/-/types-4.31.1.tgz", "integrity": "sha512-kixltt51ZJGKENNW88IY5MYqTBA8FR0Md8QdGbJD2pKZ+D5IvxjTYDNtJPDxFBiXmka2aJsITdB1BtO1fsgmsQ==", "dev": true }, "@typescript-eslint/typescript-estree": { "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz", "integrity": "sha512-EGHkbsUvjFrvRnusk6yFGqrqMBTue5E5ROnS5puj3laGQPasVUgwhrxfcgkdHNFECHAewpvELE1Gjv0XO3mdWg==", "dev": true, "requires": { @@ -28935,13 +29449,13 @@ "dependencies": { "tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "requires": { @@ -28952,7 +29466,7 @@ }, "@typescript-eslint/visitor-keys": { "version": "4.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz", "integrity": "sha512-PCncP8hEqKw6SOJY+3St4LVtoZpPPn+Zlpm7KW5xnviMhdqcsBty4Lsg4J/VECpJjw1CkROaZhH4B8M1OfnXTQ==", "dev": true, "requires": { @@ -28962,7 +29476,7 @@ }, "@webassemblyjs/ast": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/ast/-/ast-1.11.1.tgz", "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", "dev": true, "requires": { @@ -28972,25 +29486,25 @@ }, "@webassemblyjs/floating-point-hex-parser": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", "dev": true }, "@webassemblyjs/helper-api-error": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", "dev": true }, "@webassemblyjs/helper-buffer": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", "dev": true }, "@webassemblyjs/helper-numbers": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", "dev": true, "requires": { @@ -29001,13 +29515,13 @@ }, "@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", "dev": true }, "@webassemblyjs/helper-wasm-section": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", "dev": true, "requires": { @@ -29019,7 +29533,7 @@ }, "@webassemblyjs/ieee754": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", "dev": true, "requires": { @@ -29028,7 +29542,7 @@ }, "@webassemblyjs/leb128": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", "dev": true, "requires": { @@ -29037,13 +29551,13 @@ }, "@webassemblyjs/utf8": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", "dev": true }, "@webassemblyjs/wasm-edit": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", "dev": true, "requires": { @@ -29059,7 +29573,7 @@ }, "@webassemblyjs/wasm-gen": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "dev": true, "requires": { @@ -29072,7 +29586,7 @@ }, "@webassemblyjs/wasm-opt": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", "dev": true, "requires": { @@ -29084,7 +29598,7 @@ }, "@webassemblyjs/wasm-parser": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", "dev": true, "requires": { @@ -29098,7 +29612,7 @@ }, "@webassemblyjs/wast-printer": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "dev": true, "requires": { @@ -29108,53 +29622,53 @@ }, "@xtuc/ieee754": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "version": "2.0.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", "dev": true }, "abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" } }, "acorn": { "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, "acorn-globals": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn-globals/-/acorn-globals-6.0.0.tgz", "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", "dev": true, "requires": { @@ -29164,20 +29678,20 @@ }, "acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "requires": {} }, "acorn-walk": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn-walk/-/acorn-walk-7.2.0.tgz", "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true }, "adjust-sourcemap-loader": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", "dev": true, "requires": { @@ -29187,13 +29701,13 @@ }, "after": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/after/-/after-0.8.2.tgz", + "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==", "dev": true }, "agent-base": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "requires": { @@ -29201,19 +29715,17 @@ } }, "agentkeepalive": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", - "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", + "version": "4.5.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", "dev": true, "requires": { - "debug": "^4.1.0", - "depd": "^1.1.2", "humanize-ms": "^1.2.1" } }, "aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "requires": { @@ -29223,7 +29735,7 @@ }, "ajv": { "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-8.6.2.tgz", "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", "dev": true, "requires": { @@ -29235,35 +29747,29 @@ }, "ajv-errors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", "dev": true, "requires": {} }, "ajv-formats": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-formats/-/ajv-formats-2.1.0.tgz", "integrity": "sha512-USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q==", "dev": true, "requires": { "ajv": "^8.0.0" } }, - "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": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, "ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { @@ -29272,18 +29778,18 @@ }, "ansi-html": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==", "dev": true }, "ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "^1.9.0" @@ -29291,14 +29797,14 @@ }, "ansi-wrap": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", "dev": true }, "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -29306,13 +29812,13 @@ }, "aproba": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, "are-we-there-yet": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", "dev": true, "requires": { @@ -29321,9 +29827,9 @@ }, "dependencies": { "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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -29335,9 +29841,15 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { @@ -29348,13 +29860,13 @@ }, "arg": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { @@ -29363,74 +29875,74 @@ }, "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "dev": true }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "dev": true }, "array-differ": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-differ/-/array-differ-3.0.0.tgz", "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", "dev": true }, "array-flatten": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", "dev": true }, "arraybuffer.slice": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", "dev": true }, "arrify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/arrify/-/arrify-2.0.1.tgz", "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true }, "asap": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true }, "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "version": "0.2.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, "requires": { "safer-buffer": "~2.1.0" @@ -29438,70 +29950,70 @@ }, "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", "dev": true }, "astral-regex": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "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==", + "version": "1.0.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", "dev": true }, "async-each-series": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", - "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", "dev": true }, "async-limiter": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, "atob": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, "atomically": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/atomically/-/atomically-1.7.0.tgz", "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", "dev": true }, "autoprefixer": { "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/autoprefixer/-/autoprefixer-9.8.8.tgz", "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", "dev": true, "requires": { @@ -29514,15 +30026,9 @@ "postcss-value-parser": "^4.1.0" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -29532,7 +30038,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -29540,7 +30046,7 @@ }, "aws-sdk": { "version": "2.987.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.987.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aws-sdk/-/aws-sdk-2.987.0.tgz", "integrity": "sha512-XgMrHWHE3aKg11D4QSlpyLvsGw6mHHiUQuowbswd11k89Q6wEfA+jMbYMC7/jsx3LrH9EKti70qhfZyw/wQIfg==", "dev": true, "requires": { @@ -29557,7 +30063,7 @@ "dependencies": { "uuid": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "dev": true } @@ -29565,19 +30071,19 @@ }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "dev": true }, "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "version": "1.12.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", "dev": true }, "axios": { "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/axios/-/axios-0.21.4.tgz", "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", "dev": true, "requires": { @@ -29585,24 +30091,24 @@ } }, "babel-jest": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.3.1.tgz", - "integrity": "sha512-SjIF8hh/ir0peae2D6S6ZKRhUy7q/DnpH7k/V6fT4Bgs/LXXUztOpX4G2tCgq8mLo5HA9mN6NmlFMeYtKmIsTQ==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", "dev": true, "requires": { - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.2.0", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "slash": "^3.0.0" }, "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -29611,7 +30117,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -29621,7 +30127,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -29630,19 +30136,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -29653,7 +30159,7 @@ }, "babel-loader": { "version": "8.2.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-loader/-/babel-loader-8.2.2.tgz", "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", "dev": true, "requires": { @@ -29664,18 +30170,18 @@ }, "dependencies": { "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "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==", + "version": "1.4.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", "dev": true, "requires": { "big.js": "^5.2.2", @@ -29685,18 +30191,9 @@ } } }, - "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" - } - }, "babel-plugin-istanbul": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "requires": { @@ -29708,30 +30205,30 @@ }, "dependencies": { "istanbul-lib-instrument": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.0.4.tgz", - "integrity": "sha512-W6jJF9rLGEISGoCyXRqa/JCGQGmmxPO10TMu7izaUTynxvBvTjqzAIIGCK9USBmIbQAaSWD6XJPrM9Pv5INknw==", + "version": "5.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "requires": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "babel-plugin-jest-hoist": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.2.0.tgz", - "integrity": "sha512-TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", "dev": true, "requires": { "@babel/template": "^7.3.3", @@ -29741,27 +30238,27 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", - "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", + "version": "0.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.3.tgz", + "integrity": "sha512-NDZ0auNRzmAfE1oDDPW2JhzIMXUk+FFe2ICejmt5T4ocKgiQx3e0VCRx9NCAidcMtL2RUZaWtXnmjTCkx0tcbA==", "dev": true, "requires": { "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.2", + "@babel/helper-define-polyfill-provider": "^0.2.4", "semver": "^6.1.1" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "babel-plugin-polyfill-corejs3": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", "dev": true, "requires": { @@ -29770,17 +30267,17 @@ } }, "babel-plugin-polyfill-regenerator": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", - "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", + "version": "0.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.3.tgz", + "integrity": "sha512-JVE78oRZPKFIeUqFGrSORNzQnrDwZR16oiWeGM8ZyjBn2XAT5OjP+wXx5ESuo33nUsFUEJYjtklnsKbxW5L+7g==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2" + "@babel/helper-define-polyfill-provider": "^0.2.4" } }, "babel-preset-current-node-syntax": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", "dev": true, "requires": { @@ -29799,29 +30296,29 @@ } }, "babel-preset-jest": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.2.0.tgz", - "integrity": "sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^27.2.0", + "babel-plugin-jest-hoist": "^27.5.1", "babel-preset-current-node-syntax": "^1.0.0" } }, "backo2": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==", "dev": true }, "balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { @@ -29836,8 +30333,8 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, "requires": { "is-descriptor": "^1.0.0" @@ -29847,52 +30344,52 @@ }, "base64-arraybuffer": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg==", "dev": true }, "base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, "base64id": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, "requires": { "tweetnacl": "^0.14.3" } }, "before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", + "version": "2.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", "dev": true }, "big.js": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, "bin-links": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bin-links/-/bin-links-2.3.0.tgz", "integrity": "sha512-JzrOLHLwX2zMqKdyYZjkDgQGT+kHDkIhv2/IK2lJ00qLxV4TmFoHi8drDBb6H5Zrz1YfgHkai4e2MGPqnoUhqA==", "dev": true, "requires": { @@ -29906,18 +30403,18 @@ }, "binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" }, "binaryextensions": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.18.0.tgz", - "integrity": "sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==", + "version": "4.19.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/binaryextensions/-/binaryextensions-4.19.0.tgz", + "integrity": "sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==", "dev": true }, "bindings": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, "optional": true, @@ -29927,7 +30424,7 @@ }, "bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "requires": { @@ -29938,7 +30435,7 @@ "dependencies": { "buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "requires": { @@ -29950,92 +30447,87 @@ }, "blob": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/blob/-/blob-0.0.5.tgz", "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", "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==", + "version": "1.20.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, "requires": { - "bytes": "3.1.0", + "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, - "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" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "destroy": { + "version": "1.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true + "version": "6.11.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } }, "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==", + "version": "2.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true } } }, "bonjour": { "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", "dev": true, "requires": { "array-flatten": "^2.1.0", @@ -30048,19 +30540,19 @@ }, "boolbase": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, "bootstrap": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bootstrap/-/bootstrap-4.6.0.tgz", "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==", "requires": {} }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", @@ -30069,7 +30561,7 @@ }, "braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "requires": { "fill-range": "^7.0.1" @@ -30077,13 +30569,13 @@ }, "browser-process-hrtime": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, "browser-sync": { "version": "2.27.5", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/browser-sync/-/browser-sync-2.27.5.tgz", "integrity": "sha512-0GMEPDqccbTxwYOUGCk5AZloDj9I/1eDZCLXUKXu7iBJPznGGOnMHs88mrhaFL0fTA0R23EmsXX9nLZP+k5YzA==", "dev": true, "requires": { @@ -30121,7 +30613,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -30130,7 +30622,7 @@ }, "cliui": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { @@ -30141,7 +30633,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -30150,13 +30642,13 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { @@ -30167,13 +30659,13 @@ }, "y18n": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yargs": { "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "requires": { @@ -30192,7 +30684,7 @@ }, "yargs-parser": { "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { @@ -30203,51 +30695,85 @@ } }, "browser-sync-client": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.5.tgz", - "integrity": "sha512-l2jtf60/exv0fQiZkhi3z8RgexYYLGS7DVDnyepkrp+oFAPlKW69daL6NrVSgrwu6lzSTCCTAiPXnUSrQ57e/Q==", + "version": "2.29.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/browser-sync-client/-/browser-sync-client-2.29.3.tgz", + "integrity": "sha512-4tK5JKCl7v/3aLbmCBMzpufiYLsB1+UI+7tUXCCp5qF0AllHy/jAqYu6k7hUF3hYtlClKpxExWaR+rH+ny07wQ==", "dev": true, "requires": { "etag": "1.8.1", "fresh": "0.5.2", - "mitt": "^1.1.3", - "rxjs": "^5.5.6" - }, - "dependencies": { - "rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", - "dev": true, - "requires": { - "symbol-observable": "1.0.1" - } - }, - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "dev": true - } + "mitt": "^1.1.3" } }, "browser-sync-ui": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.5.tgz", - "integrity": "sha512-KxBJhQ6XNbQ8w8UlkPa9/J5R0nBHgHuJUtDpEXQx1jBapDy32WGzD0NENDozP4zGNvJUgZk3N80hqB7YCieC3g==", + "version": "2.29.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz", + "integrity": "sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg==", "dev": true, "requires": { "async-each-series": "0.1.1", + "chalk": "4.1.2", "connect-history-api-fallback": "^1", "immutable": "^3", "server-destroy": "1.0.1", - "socket.io-client": "^2.4.0", + "socket.io-client": "^4.4.1", "stream-throttle": "^0.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "browser-sync-webpack-plugin": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/browser-sync-webpack-plugin/-/browser-sync-webpack-plugin-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/browser-sync-webpack-plugin/-/browser-sync-webpack-plugin-2.3.0.tgz", "integrity": "sha512-MDvuRrTCtoL11dTdwMymo9CNJvYxJoW67gOO61cThfzHNX40S5WcBU+0bVQ86ll7r7aNpNgyzxF7RtnXMTDbyA==", "dev": true, "requires": { @@ -30255,20 +30781,19 @@ } }, "browserslist": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.4.tgz", - "integrity": "sha512-Zg7RpbZpIJRW3am9Lyckue7PLytvVxxhJj1CaJVlCWENsGEAOlnlt8X0ZxGRPp7Bt9o8tIRM5SEXy4BCPMJjLQ==", + "version": "4.22.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "requires": { - "caniuse-lite": "^1.0.30001265", - "electron-to-chromium": "^1.3.867", - "escalade": "^3.1.1", - "node-releases": "^2.0.0", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" } }, "bs-logger": { "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bs-logger/-/bs-logger-0.2.6.tgz", "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, "requires": { @@ -30277,19 +30802,19 @@ }, "bs-recipes": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", - "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", "dev": true }, "bs-snippet-injector": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", - "integrity": "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", + "integrity": "sha512-4u8IgB+L9L+S5hknOj3ddNSb42436gsnGm1AuM15B7CdbkpQTyVWgIM5/JUBiKiRwGOR86uo0Lu/OsX+SAlJmw==", "dev": true }, "bser": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "requires": { @@ -30298,7 +30823,7 @@ }, "buffer": { "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/buffer/-/buffer-4.9.2.tgz", "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, "requires": { @@ -30309,31 +30834,31 @@ }, "buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "buffer-indexof": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/buffer-indexof/-/buffer-indexof-1.1.1.tgz", "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", "dev": true }, "builtins": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", "dev": true }, "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "version": "3.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true }, "cacache": { "version": "15.2.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cacache/-/cacache-15.2.0.tgz", "integrity": "sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw==", "dev": true, "requires": { @@ -30354,11 +30879,28 @@ "ssri": "^8.0.1", "tar": "^6.0.2", "unique-filename": "^1.1.1" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { @@ -30374,30 +30916,31 @@ } }, "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" } }, "callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "camelcase": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "caniuse-api": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "dev": true, "requires": { @@ -30408,24 +30951,24 @@ } }, "caniuse-lite": { - "version": "1.0.30001269", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001269.tgz", - "integrity": "sha512-UOy8okEVs48MyHYgV+RdW1Oiudl1H6KolybD6ZquD0VcrPSgj25omXO1S7rDydjpqaISCwA8Pyx+jUQKZwWO5w==" + "version": "1.0.30001572", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", + "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==" }, "canonical-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/canonical-path/-/canonical-path-1.0.0.tgz", "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==" }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", "dev": true }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { "ansi-styles": "^3.2.1", @@ -30435,19 +30978,19 @@ }, "char-regex": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, "chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, "chevrotain": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-9.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chevrotain/-/chevrotain-9.0.2.tgz", "integrity": "sha512-6ZjgUdGvU4j1n1b2hTjb79Vr2V+qNtmP7f8FVt79+kdAYcUj2QfYNwI8ycCVsgHD/dIeO5Vr1hckkkfliVQTfg==", "dev": true, "requires": { @@ -30457,9 +31000,9 @@ } }, "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "version": "3.5.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -30473,38 +31016,38 @@ }, "chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, "chrome-trace-event": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true }, "ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "version": "3.9.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true }, "circular-dependency-plugin": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", "dev": true, "requires": {} }, "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "version": "1.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", "dev": true }, "class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { @@ -30516,81 +31059,34 @@ "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, - "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-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-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" } - }, - "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 } } }, "clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { @@ -30598,59 +31094,51 @@ } }, "cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "version": "2.9.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true }, "cli-table": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz", - "integrity": "sha512-ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ==", + "version": "0.3.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-table/-/cli-table-0.3.11.tgz", + "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", "dev": true, "requires": { "colors": "1.0.3" - }, - "dependencies": { - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true - } } }, "cli-width": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-width/-/cli-width-3.0.0.tgz", "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true }, "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "requires": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true }, "clone-buffer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", "dev": true }, "clone-deep": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "requires": { @@ -30661,13 +31149,13 @@ }, "clone-stats": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", "dev": true }, "cloneable-readable": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cloneable-readable/-/cloneable-readable-1.1.3.tgz", "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", "dev": true, "requires": { @@ -30677,9 +31165,9 @@ }, "dependencies": { "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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -30691,9 +31179,15 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { @@ -30704,7 +31198,7 @@ }, "cmd-shim": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cmd-shim/-/cmd-shim-4.1.0.tgz", "integrity": "sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==", "dev": true, "requires": { @@ -30713,26 +31207,26 @@ }, "co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", "dev": true }, "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "version": "1.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", "dev": true, "requires": { "map-visit": "^1.0.0", @@ -30740,18 +31234,18 @@ } }, "color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", - "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", + "version": "3.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", "dev": true, "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" + "color-convert": "^1.9.3", + "color-string": "^1.6.0" } }, "color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "requires": { "color-name": "1.1.3" @@ -30759,13 +31253,13 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "color-string": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz", - "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", + "version": "1.9.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", "dev": true, "requires": { "color-name": "^1.0.0", @@ -30773,36 +31267,36 @@ } }, "colord": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.0.tgz", - "integrity": "sha512-D8guC3WXLzW892WdoQD+RhIRlfeQSZnTEOq+KxX6fak9ijrHt30oKF9L7jQovCA13pSIJJVFVEYzp4Y4f4k+Yg==", + "version": "2.9.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true }, "colorette": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/colorette/-/colorette-1.4.0.tgz", "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", "dev": true }, "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "version": "1.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", "dev": true }, "colorspace": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", - "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", + "version": "1.1.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", "dev": true, "requires": { - "color": "3.0.x", + "color": "^3.1.3", "text-hex": "1.0.x" } }, "combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { @@ -30811,43 +31305,43 @@ }, "commander": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-8.2.0.tgz", "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==", "dev": true }, "common-ancestor-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", "dev": true }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, "component-bind": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==", "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==", + "version": "1.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==", "dev": true }, "compressible": { "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, "requires": { @@ -30856,7 +31350,7 @@ }, "compression": { "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, "requires": { @@ -30871,13 +31365,13 @@ "dependencies": { "bytes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { @@ -30886,20 +31380,26 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "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=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "concat-stream": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { @@ -30910,9 +31410,9 @@ }, "dependencies": { "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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -30924,9 +31424,15 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { @@ -30937,7 +31443,7 @@ }, "concurrently": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/concurrently/-/concurrently-6.2.1.tgz", "integrity": "sha512-emgwhH+ezkuYKSHZQ+AkgEpoUZZlbpPVYCVv7YZx0r+T7fny1H03r2nYRebpi2DudHR4n1Rgbo2YTxKOxVJ4+g==", "dev": true, "requires": { @@ -30954,7 +31460,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -30963,7 +31469,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -30973,7 +31479,7 @@ "dependencies": { "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -30982,9 +31488,20 @@ } } }, + "cliui": { + "version": "7.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -30993,19 +31510,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { @@ -31014,7 +31531,7 @@ }, "yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { @@ -31031,7 +31548,7 @@ }, "conf": { "version": "10.0.2", - "resolved": "https://registry.npmjs.org/conf/-/conf-10.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/conf/-/conf-10.0.2.tgz", "integrity": "sha512-iyy4ArqyQ/yrzNASNBN+jaylu53JRuq0ztvL6KAWYHj4iN56BVuhy2SrzEEHBodNbacZr2Pd/4nWhoAwc66T1g==", "dev": true, "requires": { @@ -31049,8 +31566,8 @@ }, "connect": { "version": "3.6.6", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", - "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/connect/-/connect-3.6.6.tgz", + "integrity": "sha512-OO7axMmPpu/2XuX1+2Yrg0ddju31B6xLZMWkJ5rYBu4YRmRVlOjvlY6kw2FJKiAzyxGwnrDUAG4s1Pf0sbBMCQ==", "dev": true, "requires": { "debug": "2.6.9", @@ -31061,7 +31578,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { @@ -31070,77 +31587,74 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "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==", + "version": "0.5.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "5.2.1" } }, "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==", + "version": "1.0.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true }, "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "requires": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "version": "0.4.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true }, "cookie-signature": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true }, "copy-anything": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", - "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", + "version": "2.0.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, "requires": { - "is-what": "^3.12.0" + "is-what": "^3.14.1" } }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", "dev": true }, "copy-webpack-plugin": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/copy-webpack-plugin/-/copy-webpack-plugin-9.0.1.tgz", "integrity": "sha512-14gHKKdYIxF84jCEgPgYXCPpldbwpxxLbCmA7LReY7gvbaT555DgeBWBgBZM116tv/fO6RRJrsivBqRyRlukhw==", "dev": true, "requires": { @@ -31155,7 +31669,7 @@ "dependencies": { "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { @@ -31167,14 +31681,14 @@ }, "ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "requires": {} }, "glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { @@ -31183,14 +31697,14 @@ }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -31202,38 +31716,29 @@ }, "core-js": { "version": "3.16.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.16.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/core-js/-/core-js-3.16.0.tgz", "integrity": "sha512-5+5VxRFmSf97nM8Jr2wzOwLqRo6zphH2aX+7KsAUONObyzakDNq2G/bgbhinxB4PoV9L3aXQYhiDKyIKWd2c8g==", "dev": true }, "core-js-compat": { - "version": "3.18.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz", - "integrity": "sha512-4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==", + "version": "3.34.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/core-js-compat/-/core-js-compat-3.34.0.tgz", + "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", "dev": true, "requires": { - "browserslist": "^4.17.3", - "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 - } + "browserslist": "^4.22.2" } }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true }, "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "7.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", @@ -31245,13 +31750,13 @@ }, "create-require": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, "critters": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.10.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/critters/-/critters-0.0.10.tgz", "integrity": "sha512-p5VKhP1803+f+0Jq5P03w1SbiHtpAKm+1EpJHkiPxQPq0Vu9QLZHviJ02GRrWi0dlcJqrmzMWInbwp4d22RsGw==", "dev": true, "requires": { @@ -31264,7 +31769,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -31273,7 +31778,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -31283,7 +31788,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -31292,19 +31797,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -31315,7 +31820,7 @@ }, "cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { @@ -31326,7 +31831,7 @@ }, "css": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css/-/css-3.0.0.tgz", "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", "dev": true, "requires": { @@ -31337,7 +31842,7 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -31345,22 +31850,16 @@ }, "css-blank-pseudo": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", "dev": true, "requires": { "postcss": "^7.0.5" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -31370,30 +31869,22 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, - "css-color-names": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-1.0.1.tgz", - "integrity": "sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==", - "dev": true - }, "css-declaration-sorter": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz", - "integrity": "sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA==", + "version": "6.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", "dev": true, - "requires": { - "timsort": "^0.3.0" - } + "requires": {} }, "css-has-pseudo": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", "dev": true, "requires": { @@ -31403,19 +31894,13 @@ "dependencies": { "cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -31425,7 +31910,7 @@ }, "postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "requires": { @@ -31436,7 +31921,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -31444,7 +31929,7 @@ }, "css-loader": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-loader/-/css-loader-6.2.0.tgz", "integrity": "sha512-/rvHfYRjIpymZblf49w8jYcRo2y9gj6rV8UroHGmBxKrIyGLokpycyKzp9OkitvqT29ZSpzJ0Ic7SpnJX3sC8g==", "dev": true, "requires": { @@ -31460,7 +31945,7 @@ }, "css-minimizer-webpack-plugin": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.0.2.tgz", "integrity": "sha512-B3I5e17RwvKPJwsxjjWcdgpU/zqylzK1bPVghcmpFHRL48DXiBgrtqz1BJsn68+t/zzaLp9kYAaEDvQ7GyanFQ==", "dev": true, "requires": { @@ -31475,7 +31960,7 @@ "dependencies": { "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { @@ -31487,21 +31972,21 @@ }, "ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "requires": {} }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -31511,7 +31996,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -31519,8 +32004,8 @@ }, "css-parse": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", - "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha512-UNIFik2RgSbiTwIW1IsFwXWn6vs+bYdq83LKTSOsx7NJR7WII9dxewkHLltfTLVppoUApHV0118a4RZRI9FLwA==", "dev": true, "requires": { "css": "^2.0.0" @@ -31528,7 +32013,7 @@ "dependencies": { "css": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css/-/css-2.2.4.tgz", "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", "dev": true, "requires": { @@ -31540,13 +32025,13 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { @@ -31561,22 +32046,16 @@ }, "css-prefers-color-scheme": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", "dev": true, "requires": { "postcss": "^7.0.5" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -31586,28 +32065,28 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "version": "4.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, "requires": { "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" } }, "css-tree": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-tree/-/css-tree-1.1.3.tgz", "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "dev": true, "requires": { @@ -31617,89 +32096,88 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "version": "6.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true }, "cssdb": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssdb/-/cssdb-4.4.0.tgz", "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==", "dev": true }, "cssesc": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, "cssnano": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.8.tgz", - "integrity": "sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg==", + "version": "5.1.15", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", "dev": true, "requires": { - "cssnano-preset-default": "^5.1.4", - "is-resolvable": "^1.1.0", + "cssnano-preset-default": "^5.2.14", "lilconfig": "^2.0.3", "yaml": "^1.10.2" } }, "cssnano-preset-default": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.4.tgz", - "integrity": "sha512-sPpQNDQBI3R/QsYxQvfB4mXeEcWuw0wGtKtmS5eg8wudyStYMgKOQT39G07EbW1LB56AOYrinRS9f0ig4Y3MhQ==", - "dev": true, - "requires": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^2.0.1", - "postcss-calc": "^8.0.0", - "postcss-colormin": "^5.2.0", - "postcss-convert-values": "^5.0.1", - "postcss-discard-comments": "^5.0.1", - "postcss-discard-duplicates": "^5.0.1", - "postcss-discard-empty": "^5.0.1", - "postcss-discard-overridden": "^5.0.1", - "postcss-merge-longhand": "^5.0.2", - "postcss-merge-rules": "^5.0.2", - "postcss-minify-font-values": "^5.0.1", - "postcss-minify-gradients": "^5.0.2", - "postcss-minify-params": "^5.0.1", - "postcss-minify-selectors": "^5.1.0", - "postcss-normalize-charset": "^5.0.1", - "postcss-normalize-display-values": "^5.0.1", - "postcss-normalize-positions": "^5.0.1", - "postcss-normalize-repeat-style": "^5.0.1", - "postcss-normalize-string": "^5.0.1", - "postcss-normalize-timing-functions": "^5.0.1", - "postcss-normalize-unicode": "^5.0.1", - "postcss-normalize-url": "^5.0.2", - "postcss-normalize-whitespace": "^5.0.1", - "postcss-ordered-values": "^5.0.2", - "postcss-reduce-initial": "^5.0.1", - "postcss-reduce-transforms": "^5.0.1", - "postcss-svgo": "^5.0.2", - "postcss-unique-selectors": "^5.0.1" + "version": "5.2.14", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dev": true, + "requires": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" } }, "cssnano-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", - "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", + "version": "3.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", "dev": true, "requires": {} }, "csso": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/csso/-/csso-4.2.0.tgz", "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "dev": true, "requires": { @@ -31708,13 +32186,13 @@ }, "cssom": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssom/-/cssom-0.4.4.tgz", "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", "dev": true }, "cssstyle": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, "requires": { @@ -31723,7 +32201,7 @@ "dependencies": { "cssom": { "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true } @@ -31731,14 +32209,14 @@ }, "dargs": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dargs/-/dargs-7.0.0.tgz", "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, "requires": { "assert-plus": "^1.0.0" @@ -31746,7 +32224,7 @@ }, "data-urls": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/data-urls/-/data-urls-2.0.0.tgz", "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", "dev": true, "requires": { @@ -31756,25 +32234,45 @@ } }, "date-fns": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz", - "integrity": "sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w==", - "dev": true + "version": "2.30.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.21.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.23.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/runtime/-/runtime-7.23.6.tgz", + "integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + } + } }, "dateformat": { "version": "4.6.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dateformat/-/dateformat-4.6.3.tgz", "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", "dev": true }, "dayjs": { "version": "1.10.7", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dayjs/-/dayjs-1.10.7.tgz", "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==" }, "debounce-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debounce-fn/-/debounce-fn-4.0.0.tgz", "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", "dev": true, "requires": { @@ -31783,7 +32281,7 @@ }, "debug": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { "ms": "2.1.2" @@ -31791,69 +32289,69 @@ }, "debuglog": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true }, "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "version": "10.4.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", "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=", + "version": "0.2.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true }, "dedent": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", "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==", + "version": "1.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/deep-equal/-/deep-equal-1.1.2.tgz", + "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", "dev": true, "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" + "regexp.prototype.flags": "^1.5.1" } }, "deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, "deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "version": "4.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true }, "default-gateway": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/default-gateway/-/default-gateway-4.2.0.tgz", "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", "dev": true, "requires": { @@ -31863,7 +32361,7 @@ "dependencies": { "cross-spawn": { "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { @@ -31876,7 +32374,7 @@ }, "execa": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { @@ -31891,7 +32389,7 @@ }, "get-stream": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { @@ -31900,14 +32398,14 @@ }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "dev": true, "requires": { "path-key": "^2.0.0" @@ -31915,20 +32413,20 @@ }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, "requires": { "shebang-regex": "^1.0.0" @@ -31936,13 +32434,13 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true }, "which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { @@ -31952,32 +32450,45 @@ } }, "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "version": "1.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, "requires": { "clone": "^1.0.2" } }, + "define-data-property": { + "version": "1.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, "define-lazy-prop": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "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==", + "version": "1.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, "define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { @@ -31987,7 +32498,7 @@ }, "del": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/del/-/del-4.1.1.tgz", "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", "dev": true, "requires": { @@ -32002,8 +32513,8 @@ "dependencies": { "array-union": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", "dev": true, "requires": { "array-uniq": "^1.0.1" @@ -32011,8 +32522,8 @@ }, "globby": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", "dev": true, "requires": { "array-union": "^1.0.1", @@ -32024,27 +32535,27 @@ "dependencies": { "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true } } }, "p-map": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-map/-/p-map-2.1.0.tgz", "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true }, "pify": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true }, "rimraf": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { @@ -32055,67 +32566,67 @@ }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "dev": true }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true }, "dependency-graph": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dependency-graph/-/dependency-graph-0.11.0.tgz", "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==" }, "deprecation": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/deprecation/-/deprecation-2.3.1.tgz", "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "dev": true }, "destroy": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", "dev": true }, "detect-indent": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/detect-indent/-/detect-indent-6.1.0.tgz", "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true }, "detect-newline": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, "detect-node": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, "dev-ip": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", - "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", "dev": true }, "dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "version": "1.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", "dev": true, "requires": { "asap": "^2.0.0", @@ -32124,25 +32635,25 @@ }, "didyoumean": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "dev": true }, "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true }, "diff-sequences": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", - "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", "dev": true }, "dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { @@ -32151,30 +32662,38 @@ }, "dlv": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "dev": true }, "dns-equal": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", "dev": true }, "dns-packet": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dns-packet/-/dns-packet-1.3.4.tgz", "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, "requires": { "ip": "^1.1.0", "safe-buffer": "^5.0.1" + }, + "dependencies": { + "ip": { + "version": "1.1.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + } } }, "dns-txt": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", "dev": true, "requires": { "buffer-indexof": "^1.0.0" @@ -32182,7 +32701,7 @@ }, "doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { @@ -32190,9 +32709,9 @@ } }, "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "1.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, "requires": { "domelementtype": "^2.0.1", @@ -32201,14 +32720,14 @@ } }, "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true }, "domexception": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/domexception/-/domexception-2.0.1.tgz", "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", "dev": true, "requires": { @@ -32217,16 +32736,16 @@ "dependencies": { "webidl-conversions": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webidl-conversions/-/webidl-conversions-5.0.0.tgz", "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", "dev": true } } }, "domhandler": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", - "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", + "version": "4.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, "requires": { "domelementtype": "^2.2.0" @@ -32234,7 +32753,7 @@ }, "domutils": { "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, "requires": { @@ -32245,7 +32764,7 @@ }, "dot-prop": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/dot-prop/-/dot-prop-6.0.1.tgz", "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dev": true, "requires": { @@ -32254,19 +32773,19 @@ }, "drange": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/drange/-/drange-1.1.1.tgz", "integrity": "sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==", "dev": true }, "duplexer": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, "easy-extender": { "version": "2.3.4", - "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/easy-extender/-/easy-extender-2.3.4.tgz", "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", "dev": true, "requires": { @@ -32275,7 +32794,7 @@ }, "eazy-logger": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eazy-logger/-/eazy-logger-3.1.0.tgz", "integrity": "sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ==", "dev": true, "requires": { @@ -32284,8 +32803,8 @@ }, "ecc-jsbn": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, "requires": { "jsbn": "~0.1.0", @@ -32294,13 +32813,13 @@ }, "ee-first": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, "ejs": { "version": "3.1.6", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ejs/-/ejs-3.1.6.tgz", "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", "dev": true, "requires": { @@ -32308,42 +32827,42 @@ } }, "electron-to-chromium": { - "version": "1.3.872", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.872.tgz", - "integrity": "sha512-qG96atLFY0agKyEETiBFNhpRLSXGSXOBuhXWpbkYqrLKKASpRyRBUtfkn0ZjIf/yXfA7FA4nScVOMpXSHFlUCQ==" + "version": "1.4.616", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz", + "integrity": "sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==" }, "emittery": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/emittery/-/emittery-0.8.1.tgz", "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", "dev": true }, "emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "emojis-list": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true }, "enabled": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/enabled/-/enabled-2.0.0.tgz", "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", "dev": true }, "encodeurl": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true }, "encoding": { "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "optional": true, @@ -32353,7 +32872,7 @@ "dependencies": { "iconv-lite": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "optional": true, @@ -32365,7 +32884,7 @@ }, "end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "requires": { @@ -32374,7 +32893,7 @@ }, "engine.io": { "version": "3.5.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/engine.io/-/engine.io-3.5.0.tgz", "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==", "dev": true, "requires": { @@ -32388,7 +32907,7 @@ "dependencies": { "debug": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { @@ -32397,7 +32916,7 @@ }, "ws": { "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ws/-/ws-7.4.6.tgz", "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true, "requires": {} @@ -32405,43 +32924,28 @@ } }, "engine.io-client": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.2.tgz", - "integrity": "sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA==", + "version": "6.5.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/engine.io-client/-/engine.io-client-6.5.3.tgz", + "integrity": "sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==", "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": "~7.4.2", - "xmlhttprequest-ssl": "~1.6.2", - "yeast": "0.1.2" + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.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=", + "engine.io-parser": { + "version": "5.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", "dev": true }, "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "8.11.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, "requires": {} } @@ -32449,7 +32953,7 @@ }, "engine.io-parser": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/engine.io-parser/-/engine.io-parser-2.2.1.tgz", "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", "dev": true, "requires": { @@ -32461,9 +32965,9 @@ } }, "enhanced-resolve": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", - "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", + "version": "5.15.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -32471,35 +32975,36 @@ } }, "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "version": "2.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dev": true, "requires": { - "ansi-colors": "^4.1.1" + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" } }, "entities": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true }, "env-paths": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true }, "err-code": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true }, "errno": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, "requires": { @@ -32508,13 +33013,13 @@ }, "error": { "version": "10.4.0", - "resolved": "https://registry.npmjs.org/error/-/error-10.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/error/-/error-10.4.0.tgz", "integrity": "sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==", "dev": true }, "error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { @@ -32523,102 +33028,68 @@ }, "es-module-lexer": { "version": "0.7.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/es-module-lexer/-/es-module-lexer-0.7.1.tgz", "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==", "dev": true }, + "es6-promise": { + "version": "4.0.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/es6-promise/-/es6-promise-4.0.5.tgz", + "integrity": "sha512-4QUVu8ljexIQebW0h+5EhEqVKvh8p7Wu3zi3AqPmX3tFL2bf6MnZ2ytC/3xuUt1mo6kE2GSYNmjWyDo2SjkAsg==", + "dev": true + }, "esbuild": { "version": "0.12.24", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.24.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/esbuild/-/esbuild-0.12.24.tgz", "integrity": "sha512-C0ibY+HsXzYB6L/pLWEiWjMpghKsIc58Q5yumARwBQsHl9DXPakW+5NI/Y9w4YXiz0PEP6XTGTT/OV4Nnsmb4A==", "dev": true }, "escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" }, "escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "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=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "version": "2.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, "requires": { "esprima": "^4.0.1", "estraverse": "^5.2.0", "esutils": "^2.0.2", - "optionator": "^0.8.1", "source-map": "~0.6.1" }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "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" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "version": "5.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } } } }, "eslint": { "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint/-/eslint-7.32.0.tgz", "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "requires": { @@ -32666,7 +33137,7 @@ "dependencies": { "@babel/code-frame": { "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { @@ -32675,7 +33146,7 @@ }, "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { @@ -32687,7 +33158,7 @@ }, "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -32696,7 +33167,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -32706,7 +33177,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -32715,20 +33186,20 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, "globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "version": "13.24.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -32736,19 +33207,19 @@ }, "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -32757,7 +33228,7 @@ }, "type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true } @@ -32765,14 +33236,14 @@ }, "eslint-config-prettier": { "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", "dev": true, "requires": {} }, "eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { @@ -32782,7 +33253,7 @@ }, "eslint-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { @@ -32791,7 +33262,7 @@ "dependencies": { "eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true } @@ -32799,13 +33270,13 @@ }, "eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true }, "eslint-webpack-plugin": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-webpack-plugin/-/eslint-webpack-plugin-3.0.1.tgz", "integrity": "sha512-PAHHDjCg2yWBNoiBPYLZWcv+M83urkslQKER7XvK84lo5YLcihJK6qwnCH2Fkt3eVdX+G1iyGZRlKsIhTiczHw==", "dev": true, "requires": { @@ -32818,7 +33289,7 @@ "dependencies": { "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { @@ -32830,21 +33301,21 @@ }, "ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "requires": {} }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -32856,7 +33327,7 @@ }, "espree": { "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { @@ -32867,7 +33338,7 @@ "dependencies": { "eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true } @@ -32875,30 +33346,30 @@ }, "esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "requires": { "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } }, "esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { @@ -32906,61 +33377,58 @@ }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } }, "estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true }, "eventemitter-asyncresource": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", "dev": true }, "eventemitter3": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, "events": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/events/-/events-1.1.1.tgz", + "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==", "dev": true }, "eventsource": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", - "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", - "dev": true, - "requires": { - "original": "^1.0.0" - } + "version": "2.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "dev": true }, "execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { @@ -32977,14 +33445,14 @@ }, "exit": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", "dev": true, "requires": { "debug": "^2.3.3", @@ -32998,7 +33466,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { @@ -33007,8 +33475,8 @@ }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -33016,139 +33484,83 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" } }, - "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-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-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" } }, "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 - }, - "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==", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } }, "expect": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.3.1.tgz", - "integrity": "sha512-MrNXV2sL9iDRebWPGOGFdPQRl2eDQNu/uhxIMShjjx74T6kC6jFIkmQ6OqXDtevjGUkyB2IT56RzDBqXf/QPCg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", "dev": true, "requires": { - "@jest/types": "^27.2.5", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-regex-util": "^27.0.6" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" } }, "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "version": "4.18.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, "requires": { - "accepts": "~1.3.7", + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.0", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", + "proxy-addr": "~2.0.7", + "qs": "6.11.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", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -33156,111 +33568,129 @@ "dependencies": { "array-flatten": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "version": "0.5.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, + "destroy": { + "version": "1.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true + "version": "6.11.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } }, "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "version": "0.18.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "~1.7.2", + "http-errors": "2.0.0", "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", + "ms": "2.1.3", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "dependencies": { "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==", + "version": "2.1.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "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==", + "version": "1.15.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.1" + "send": "0.18.0" } }, "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true } } }, "extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "dev": true, "requires": { "assign-symbols": "^1.0.0", @@ -33269,7 +33699,7 @@ }, "external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { @@ -33280,7 +33710,7 @@ }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { @@ -33296,8 +33726,8 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, "requires": { "is-descriptor": "^1.0.0" @@ -33305,8 +33735,8 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -33314,34 +33744,34 @@ }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true } } }, "extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "dev": true }, "faker": { "version": "5.5.3", - "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/faker/-/faker-5.5.3.tgz", "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==", "dev": true }, "fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.3.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -33353,20 +33783,20 @@ }, "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.16.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -33374,7 +33804,7 @@ }, "faye-websocket": { "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, "requires": { @@ -33382,23 +33812,23 @@ } }, "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "requires": { "bser": "2.1.1" } }, "fecha": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", - "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==", + "version": "4.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", "dev": true }, "figures": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { @@ -33407,7 +33837,7 @@ }, "file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { @@ -33416,23 +33846,43 @@ }, "file-uri-to-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true, "optional": true }, "filelist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", - "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", + "version": "1.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, "fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "requires": { "to-regex-range": "^5.0.1" @@ -33440,8 +33890,8 @@ }, "finalhandler": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha512-ejnvM9ZXYzp6PUPUyQBMBf0Co5VX2gr5H2VQe2Ui2jWXNlxv+PYZo8wpAymJNJdLsG1R4p+M4aynF8KuoUEwRw==", "dev": true, "requires": { "debug": "2.6.9", @@ -33455,7 +33905,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { @@ -33464,15 +33914,15 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } }, "find-cache-dir": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-cache-dir/-/find-cache-dir-3.3.1.tgz", "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "dev": true, "requires": { @@ -33483,7 +33933,7 @@ }, "find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { @@ -33493,7 +33943,7 @@ }, "find-yarn-workspace-root2": { "version": "1.2.16", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", "dev": true, "requires": { @@ -33503,17 +33953,17 @@ }, "first-chunk-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", - "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "integrity": "sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==", "dev": true, "requires": { "readable-stream": "^2.0.2" }, "dependencies": { "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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -33525,9 +33975,15 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { @@ -33537,54 +33993,66 @@ } }, "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "requires": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" } }, "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "version": "3.2.9", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, "flatten": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/flatten/-/flatten-1.0.3.tgz", "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", "dev": true }, "fn.name": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fn.name/-/fn.name-1.1.0.tgz", "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", "dev": true }, + "folder-hash": { + "version": "4.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/folder-hash/-/folder-hash-4.0.1.tgz", + "integrity": "sha512-oF1MGtGAPezYJJRMRPzTwtDYwZdQ16UTnthsVAxjVZnlrQ36WuF6YxSgyZxnoUEK6JNPX+04FCFAkw5CzE5OMw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "graceful-fs": "~4.2.0", + "minimatch": "~3.0.4" + } + }, "follow-redirects": { - "version": "1.14.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz", - "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==", + "version": "1.15.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "dev": true }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "dev": true }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true }, "form-data": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/form-data/-/form-data-3.0.1.tgz", "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "dev": true, "requires": { @@ -33595,14 +34063,14 @@ }, "forwarded": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", "dev": true, "requires": { "map-cache": "^0.2.2" @@ -33610,14 +34078,14 @@ }, "fresh": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true }, "fs-extra": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -33627,7 +34095,7 @@ }, "fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "requires": { @@ -33635,37 +34103,43 @@ } }, "fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "version": "1.0.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", "dev": true }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "functional-red-black-tree": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", "dev": true, "requires": { "aproba": "^1.0.3", @@ -33680,14 +34154,14 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", "dev": true, "requires": { "number-is-nan": "^1.0.0" @@ -33695,8 +34169,8 @@ }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -33706,8 +34180,8 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -33717,7 +34191,7 @@ }, "generator-jhipster": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/generator-jhipster/-/generator-jhipster-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/generator-jhipster/-/generator-jhipster-7.2.0.tgz", "integrity": "sha512-ys3y8M70NfueQaTYPglYwOF5rqkZyguQPwTrMvGLE5DpDxG41m2XcuJA9OZjLk/E9G5vFljceYHOcyodfFFnMg==", "dev": true, "requires": { @@ -33760,7 +34234,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -33769,13 +34243,13 @@ }, "argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -33785,7 +34259,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -33794,19 +34268,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { @@ -33815,7 +34289,7 @@ }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -33826,47 +34300,48 @@ }, "gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" }, "get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.2.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" } }, "get-package-type": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, "get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, "get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", "dev": true }, "getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, "requires": { "assert-plus": "^1.0.0" @@ -33874,13 +34349,13 @@ }, "git-hooks-list": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/git-hooks-list/-/git-hooks-list-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/git-hooks-list/-/git-hooks-list-1.0.3.tgz", "integrity": "sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==", "dev": true }, "github-username": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/github-username/-/github-username-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/github-username/-/github-username-6.0.0.tgz", "integrity": "sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ==", "dev": true, "requires": { @@ -33889,7 +34364,7 @@ }, "glob": { "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob/-/glob-7.1.7.tgz", "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "requires": { "fs.realpath": "^1.0.0", @@ -33902,7 +34377,7 @@ }, "glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "requires": { "is-glob": "^4.0.1" @@ -33910,58 +34385,67 @@ }, "glob-to-regexp": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, "globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "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", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" }, "dependencies": { "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true } } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "version": "4.2.11", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "grouped-queue": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/grouped-queue/-/grouped-queue-2.0.0.tgz", "integrity": "sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==", "dev": true }, "growly": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/growly/-/growly-1.3.0.tgz", + "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", "dev": true }, "gulp-filter": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/gulp-filter/-/gulp-filter-7.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/gulp-filter/-/gulp-filter-7.0.0.tgz", "integrity": "sha512-ZGWtJo0j1mHfP77tVuhyqem4MRA5NfNRjoVe6VAkLGeQQ/QGo2VsFwp7zfPTGDsd1rwzBmoDHhxpE6f5B3Zuaw==", "dev": true, "requires": { @@ -33973,7 +34457,7 @@ }, "gzip-size": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, "requires": { @@ -33982,19 +34466,19 @@ }, "handle-thing": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "dev": true }, "har-validator": { "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "dev": true, "requires": { @@ -34004,7 +34488,7 @@ "dependencies": { "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { @@ -34016,24 +34500,16 @@ }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true } } }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -34041,15 +34517,15 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true } } }, "has-binary2": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-binary2/-/has-binary2-1.0.3.tgz", "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", "dev": true, "requires": { @@ -34058,32 +34534,47 @@ "dependencies": { "isarray": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==", "dev": true }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.2" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true }, "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "version": "1.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true }, "has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, "requires": { @@ -34092,14 +34583,14 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", "dev": true, "requires": { "get-value": "^2.0.6", @@ -34109,8 +34600,8 @@ }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", "dev": true, "requires": { "is-number": "^3.0.0", @@ -34119,8 +34610,8 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -34128,8 +34619,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -34139,8 +34630,8 @@ }, "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -34148,10 +34639,18 @@ } } }, + "hasown": { + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "requires": { + "function-bind": "^1.1.2" + } + }, "hdr-histogram-js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.1.tgz", - "integrity": "sha512-uPZxl1dAFnjUFHWLZmt93vUUvtHeaBay9nVNHu38SdOjMSF/4KqJUqa1Seuj08ptU1rEb6AHvB41X8n/zFZ74Q==", + "version": "2.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", "dev": true, "requires": { "@assemblyscript/loader": "^0.10.1", @@ -34161,23 +34660,40 @@ }, "hdr-histogram-percentiles-obj": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", "dev": true }, "hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "version": "4.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "requires": { "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "hpack.js": { "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, "requires": { "inherits": "^2.0.1", @@ -34187,9 +34703,9 @@ }, "dependencies": { "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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -34201,9 +34717,15 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { @@ -34214,7 +34736,7 @@ }, "html-encoding-sniffer": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", "dev": true, "requires": { @@ -34223,19 +34745,19 @@ }, "html-entities": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/html-entities/-/html-entities-1.4.0.tgz", "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", "dev": true }, "html-escaper": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, "http-basic": { "version": "8.1.3", - "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-basic/-/http-basic-8.1.3.tgz", "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", "dev": true, "requires": { @@ -34246,47 +34768,47 @@ } }, "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true }, "http-deceiver": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", "dev": true }, "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, "requires": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "dependencies": { "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true } } }, "http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "version": "0.5.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", "dev": true }, "http-proxy": { "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "requires": { @@ -34297,7 +34819,7 @@ }, "http-proxy-agent": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, "requires": { @@ -34308,7 +34830,7 @@ }, "http-proxy-middleware": { "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", "dev": true, "requires": { @@ -34320,7 +34842,7 @@ "dependencies": { "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { @@ -34338,8 +34860,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -34349,8 +34871,8 @@ }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -34361,8 +34883,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -34372,14 +34894,14 @@ }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -34387,8 +34909,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -34398,7 +34920,7 @@ }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { @@ -34419,8 +34941,8 @@ }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, "requires": { "is-number": "^3.0.0", @@ -34431,7 +34953,7 @@ }, "http-response-object": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-response-object/-/http-response-object-3.0.2.tgz", "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", "dev": true, "requires": { @@ -34440,7 +34962,7 @@ "dependencies": { "@types/node": { "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/node/-/node-10.17.60.tgz", "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", "dev": true } @@ -34448,8 +34970,8 @@ }, "http-signature": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "dev": true, "requires": { "assert-plus": "^1.0.0", @@ -34459,7 +34981,7 @@ }, "https-proxy-agent": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "requires": { @@ -34469,14 +34991,14 @@ }, "human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, "humanize-ms": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dev": true, "requires": { "ms": "^2.0.0" @@ -34484,7 +35006,7 @@ }, "iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { @@ -34493,26 +35015,26 @@ }, "icss-utils": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, "requires": {} }, "ieee754": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ieee754/-/ieee754-1.1.13.tgz", "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, "ignore": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "ignore-walk": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ignore-walk/-/ignore-walk-3.0.4.tgz", "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", "dev": true, "requires": { @@ -34521,20 +35043,20 @@ }, "image-size": { "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "dev": true, "optional": true }, "immutable": { "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", "dev": true }, "import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { @@ -34543,9 +35065,9 @@ } }, "import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", + "version": "3.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "requires": { "pkg-dir": "^4.2.0", @@ -34554,38 +35076,38 @@ }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, "indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", "dev": true }, "indexof": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", "dev": true }, "infer-owner": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "requires": { "once": "^1.3.0", "wrappy": "1" @@ -34593,18 +35115,18 @@ }, "inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true }, "inquirer": { "version": "8.1.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inquirer/-/inquirer-8.1.2.tgz", "integrity": "sha512-DHLKJwLPNgkfwNmsuEUKSejJFbkv0FMO9SMiQbjI3n5NQuCrSIBqP66ggqyz2a6t2qEolKrMjhQ3+W/xXgUQ+Q==", "dev": true, "requires": { @@ -34626,7 +35148,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -34635,7 +35157,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -34645,7 +35167,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -34654,45 +35176,39 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "version": "7.8.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "requires": { - "tslib": "~2.1.0" + "tslib": "^2.1.0" } }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } - }, - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true } } }, "insight": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/insight/-/insight-0.11.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/insight/-/insight-0.11.1.tgz", "integrity": "sha512-TBcZ0qC9dgdmcxL93OoqkY/RZXJtIi0i07phX/QyYk2ysmJtZex59dgTj4Doq50N9CG9dLRe/RIudc/5CCoFNw==", "dev": true, "requires": { @@ -34709,19 +35225,19 @@ "dependencies": { "ansi-escapes": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-escapes/-/ansi-escapes-3.2.0.tgz", "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true }, "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -34730,7 +35246,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -34740,8 +35256,8 @@ }, "cli-cursor": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", "dev": true, "requires": { "restore-cursor": "^2.0.0" @@ -34749,13 +35265,13 @@ }, "cli-width": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cli-width/-/cli-width-2.2.1.tgz", "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -34764,14 +35280,14 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "figures": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" @@ -34779,13 +35295,13 @@ }, "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "inquirer": { "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inquirer/-/inquirer-6.5.2.tgz", "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "dev": true, "requires": { @@ -34806,7 +35322,7 @@ "dependencies": { "ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { @@ -34815,7 +35331,7 @@ }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { @@ -34826,7 +35342,7 @@ }, "color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { @@ -34835,19 +35351,19 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { @@ -34858,26 +35374,26 @@ }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "mute-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", "dev": true }, "onetime": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", "dev": true, "requires": { "mimic-fn": "^1.0.0" @@ -34885,8 +35401,8 @@ }, "restore-cursor": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", "dev": true, "requires": { "onetime": "^2.0.0", @@ -34895,7 +35411,7 @@ }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { @@ -34904,15 +35420,15 @@ }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "3.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, "requires": { "ansi-regex": "^3.0.0" @@ -34922,7 +35438,7 @@ }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { @@ -34931,7 +35447,7 @@ }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -34942,7 +35458,7 @@ }, "internal-ip": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/internal-ip/-/internal-ip-4.3.0.tgz", "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", "dev": true, "requires": { @@ -34952,37 +35468,37 @@ }, "interpret": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, "invert-kv": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/invert-kv/-/invert-kv-3.0.1.tgz", "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==", "dev": true }, "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", "dev": true }, "ipaddr.js": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true }, "is-absolute": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-absolute/-/is-absolute-1.0.0.tgz", "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "dev": true, "requires": { @@ -34992,22 +35508,22 @@ }, "is-absolute-url": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-absolute-url/-/is-absolute-url-3.0.3.tgz", "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", "dev": true }, "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==", + "version": "1.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "hasown": "^2.0.0" } }, "is-arguments": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, "requires": { @@ -35017,13 +35533,13 @@ }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, "is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "requires": { "binary-extensions": "^2.0.0" @@ -35031,30 +35547,30 @@ }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "version": "2.13.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "requires": { - "has": "^1.0.3" + "hasown": "^2.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==", + "version": "1.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "hasown": "^2.0.0" } }, "is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, "requires": { @@ -35062,25 +35578,24 @@ } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "1.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" } }, "is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true }, "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { @@ -35089,23 +35604,23 @@ }, "is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" }, "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-generator-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true }, "is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { "is-extglob": "^2.1.1" @@ -35113,30 +35628,30 @@ }, "is-interactive": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true }, "is-lambda": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, "is-negated-glob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", "dev": true }, "is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-like": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-number-like/-/is-number-like-1.0.8.tgz", "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", "dev": true, "requires": { @@ -35145,19 +35660,19 @@ }, "is-obj": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", "dev": true, "requires": { @@ -35166,7 +35681,7 @@ }, "is-path-inside": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-path-inside/-/is-path-inside-2.1.0.tgz", "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", "dev": true, "requires": { @@ -35175,13 +35690,13 @@ }, "is-plain-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { @@ -35190,13 +35705,13 @@ }, "is-potential-custom-element-name": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, "is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { @@ -35206,22 +35721,16 @@ }, "is-relative": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-relative/-/is-relative-1.0.0.tgz", "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, "requires": { "is-unc-path": "^1.0.0" } }, - "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-scoped": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-scoped/-/is-scoped-2.1.0.tgz", "integrity": "sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==", "dev": true, "requires": { @@ -35230,19 +35739,19 @@ }, "is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, "is-unc-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-unc-path/-/is-unc-path-1.0.0.tgz", "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, "requires": { @@ -35251,31 +35760,31 @@ }, "is-unicode-supported": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", "dev": true }, "is-what": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", "dev": true }, "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "requires": { @@ -35284,43 +35793,43 @@ }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "version": "4.0.10", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", "dev": true }, "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "version": "3.2.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true }, "istanbul-lib-instrument": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, "requires": { @@ -35331,44 +35840,77 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "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==", + "version": "3.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "requires": { + "semver": "^7.5.3" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, "istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "requires": { @@ -35379,16 +35921,16 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "istanbul-reports": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", - "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", + "version": "3.1.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -35396,28 +35938,86 @@ } }, "jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "version": "10.8.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", "dev": true, "requires": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" }, "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "version": "3.2.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "java-parser": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/java-parser/-/java-parser-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/java-parser/-/java-parser-1.4.0.tgz", "integrity": "sha512-5r1Ez6D8SRprarqwXTYzu6Am//jw37USu8ie8a5166KfgTc2yKa0wlz08xKX1HXYRo/jbnODUfGMgd7gPhHLog==", "dev": true, "requires": { @@ -35427,7 +36027,7 @@ "dependencies": { "chevrotain": { "version": "6.5.0", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-6.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chevrotain/-/chevrotain-6.5.0.tgz", "integrity": "sha512-BwqQ/AgmKJ8jcMEjaSnfMybnKMgGTrtDKowfTP3pX4jwVy0kNjRsT/AP6h+wC3+3NC+X8X15VWBnTCQlX+wQFg==", "dev": true, "requires": { @@ -35436,7 +36036,7 @@ }, "regexp-to-ast": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regexp-to-ast/-/regexp-to-ast-0.4.0.tgz", "integrity": "sha512-4qf/7IsIKfSNHQXSwial1IFmfM1Cc/whNBQqRwe0V2stPe7KmN1U0tWQiIx6JiirgSrisjE0eECdNf7Tav1Ntw==", "dev": true } @@ -35444,7 +36044,7 @@ }, "jest": { "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest/-/jest-27.2.0.tgz", "integrity": "sha512-oUqVXyvh5YwEWl263KWdPUAqEzBFzGHdFLQ05hUnITr1tH+9SscEI9A/GH9eBClA+Nw1ct+KNuuOV6wlnmBPcg==", "dev": true, "requires": { @@ -35454,38 +36054,38 @@ } }, "jest-changed-files": { - "version": "27.3.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.3.0.tgz", - "integrity": "sha512-9DJs9garMHv4RhylUMZgbdCJ3+jHSkpL9aaVKp13xtXAD80qLTLrqcDZL1PHA9dYA0bCI86Nv2BhkLpLhrBcPg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", "dev": true, "requires": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "execa": "^5.0.0", "throat": "^6.0.1" } }, "jest-circus": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.3.1.tgz", - "integrity": "sha512-v1dsM9II6gvXokgqq6Yh2jHCpfg7ZqV4jWY66u7npz24JnhP3NHxI0sKT7+ZMQ7IrOWHYAaeEllOySbDbWsiXw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", "dev": true, "requires": { - "@jest/environment": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^0.7.0", - "expect": "^27.3.1", + "expect": "^27.5.1", "is-generator-fn": "^2.0.0", - "jest-each": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "pretty-format": "^27.3.1", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", "slash": "^3.0.0", "stack-utils": "^2.0.3", "throat": "^6.0.1" @@ -35493,7 +36093,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -35502,7 +36102,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -35512,7 +36112,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -35521,19 +36121,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -35543,28 +36143,28 @@ } }, "jest-cli": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.3.1.tgz", - "integrity": "sha512-WHnCqpfK+6EvT62me6WVs8NhtbjAS4/6vZJnk7/2+oOr50cwAzG4Wxt6RXX0hu6m1169ZGMlhYYUNeKBXCph/Q==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", "dev": true, "requires": { - "@jest/core": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", "chalk": "^4.0.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", "prompts": "^2.0.1", "yargs": "^16.2.0" }, "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -35573,7 +36173,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -35581,9 +36181,20 @@ "supports-color": "^7.1.0" } }, + "cliui": { + "version": "7.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -35592,48 +36203,51 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "jest-config": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.3.1.tgz", - "integrity": "sha512-KY8xOIbIACZ/vdYCKSopL44I0xboxC751IX+DXL2+Wx6DKNycyEfV3rryC3BPm5Uq/BBqDoMrKuqLEUNJmMKKg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", "dev": true, "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.3.1", - "@jest/types": "^27.2.5", - "babel-jest": "^27.3.1", + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-circus": "^27.3.1", - "jest-environment-jsdom": "^27.3.1", - "jest-environment-node": "^27.3.1", - "jest-get-type": "^27.3.1", - "jest-jasmine2": "^27.3.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.3.1", - "jest-runner": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", "micromatch": "^4.0.4", - "pretty-format": "^27.3.1" + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" } }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -35642,7 +36256,7 @@ }, "yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { @@ -35659,25 +36273,25 @@ }, "jest-date-mock": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/jest-date-mock/-/jest-date-mock-1.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-date-mock/-/jest-date-mock-1.0.8.tgz", "integrity": "sha512-0Lyp+z9xvuNmLbK+5N6FOhSiBeux05Lp5bbveFBmYo40Aggl2wwxFoIrZ+rOWC8nDNcLeBoDd2miQdEDSf3iQw==", "dev": true }, "jest-diff": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.3.1.tgz", - "integrity": "sha512-PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", "dev": true, "requires": { "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" }, "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -35686,7 +36300,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -35696,7 +36310,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -35705,19 +36319,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -35727,30 +36341,30 @@ } }, "jest-docblock": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", - "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", "dev": true, "requires": { "detect-newline": "^3.0.0" } }, "jest-each": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.3.1.tgz", - "integrity": "sha512-E4SwfzKJWYcvOYCjOxhZcxwL+AY0uFMvdCOwvzgutJiaiodFjkxQQDxHm8FQBeTqDnSmKsQWn7ldMRzTn2zJaQ==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", "dev": true, "requires": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "chalk": "^4.0.0", - "jest-get-type": "^27.3.1", - "jest-util": "^27.3.1", - "pretty-format": "^27.3.1" + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" }, "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -35759,7 +36373,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -35769,7 +36383,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -35778,19 +36392,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -35800,90 +36414,89 @@ } }, "jest-environment-jsdom": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.3.1.tgz", - "integrity": "sha512-3MOy8qMzIkQlfb3W1TfrD7uZHj+xx8Olix5vMENkj5djPmRqndMaXtpnaZkxmxM+Qc3lo+yVzJjzuXbCcZjAlg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", "dev": true, "requires": { - "@jest/environment": "^27.3.1", - "@jest/fake-timers": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", - "jest-mock": "^27.3.0", - "jest-util": "^27.3.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", "jsdom": "^16.6.0" } }, "jest-environment-node": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.3.1.tgz", - "integrity": "sha512-T89F/FgkE8waqrTSA7/ydMkcc52uYPgZZ6q8OaZgyiZkJb5QNNCF6oPZjH9IfPFfcc9uBWh1574N0kY0pSvTXw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", "dev": true, "requires": { - "@jest/environment": "^27.3.1", - "@jest/fake-timers": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", - "jest-mock": "^27.3.0", - "jest-util": "^27.3.1" + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" } }, "jest-get-type": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.3.1.tgz", - "integrity": "sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", "dev": true }, "jest-haste-map": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.3.1.tgz", - "integrity": "sha512-lYfNZIzwPccDJZIyk9Iz5iQMM/MH56NIIcGj7AFU1YyA4ewWFBl8z+YPJuSCRML/ee2cCt2y3W4K3VXPT6Nhzg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", "dev": true, "requires": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.3.1", - "jest-worker": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", "micromatch": "^4.0.4", "walker": "^1.0.7" } }, "jest-jasmine2": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.3.1.tgz", - "integrity": "sha512-WK11ZUetDQaC09w4/j7o4FZDUIp+4iYWH/Lik34Pv7ukL+DuXFGdnmmi7dT58J2ZYKFB5r13GyE0z3NPeyJmsg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", "dev": true, "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.3.1", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "expect": "^27.3.1", + "expect": "^27.5.1", "is-generator-fn": "^2.0.0", - "jest-each": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "pretty-format": "^27.3.1", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", "throat": "^6.0.1" }, "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -35892,7 +36505,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -35902,7 +36515,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -35911,19 +36524,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -35934,7 +36547,7 @@ }, "jest-junit": { "version": "12.2.0", - "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-12.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-junit/-/jest-junit-12.2.0.tgz", "integrity": "sha512-ecGzF3KEQwLbMP5xMO7wqmgmyZlY/5yWDvgE/vFa+/uIT0KsU5nluf0D2fjIlOKB+tb6DiuSSpZuGpsmwbf7Fw==", "dev": true, "requires": { @@ -35945,14 +36558,14 @@ }, "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==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { @@ -35962,30 +36575,30 @@ } }, "jest-leak-detector": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.3.1.tgz", - "integrity": "sha512-78QstU9tXbaHzwlRlKmTpjP9k4Pvre5l0r8Spo4SbFFVy/4Abg9I6ZjHwjg2QyKEAMg020XcjP+UgLZIY50yEg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", "dev": true, "requires": { - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" } }, "jest-matcher-utils": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.3.1.tgz", - "integrity": "sha512-hX8N7zXS4k+8bC1Aj0OWpGb7D3gIXxYvPNK1inP5xvE4ztbz3rc4AkI6jGVaerepBnfWB17FL5lWFJT3s7qo8w==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^27.3.1", - "jest-get-type": "^27.3.1", - "pretty-format": "^27.3.1" + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" }, "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -35994,7 +36607,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -36004,7 +36617,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -36013,19 +36626,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -36035,25 +36648,25 @@ } }, "jest-message-util": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.3.1.tgz", - "integrity": "sha512-bh3JEmxsTZ/9rTm0jQrPElbY2+y48Rw2t47uMfByNyUVR+OfPh4anuyKsGqsNkXk/TI4JbLRZx+7p7Hdt6q1yg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^27.3.1", + "pretty-format": "^27.5.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -36062,7 +36675,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -36072,7 +36685,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -36081,19 +36694,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -36103,25 +36716,25 @@ } }, "jest-mock": { - "version": "27.3.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.3.0.tgz", - "integrity": "sha512-ziZiLk0elZOQjD08bLkegBzv5hCABu/c8Ytx45nJKkysQwGaonvmTxwjLqEA4qGdasq9o2I8/HtdGMNnVsMTGw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", "dev": true, "requires": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "@types/node": "*" } }, "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "version": "1.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "requires": {} }, "jest-preset-angular": { "version": "9.0.7", - "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-9.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-preset-angular/-/jest-preset-angular-9.0.7.tgz", "integrity": "sha512-yK4TdbNBwO5Nq55nYq8uJqs8+xKWVXjBVv3glndm/gx4EjVMmxJO2FB5q7JJ8M5Uf/jxANSu0PjS65opti2DXA==", "dev": true, "requires": { @@ -36131,24 +36744,24 @@ } }, "jest-regex-util": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", - "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", "dev": true }, "jest-resolve": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.3.1.tgz", - "integrity": "sha512-Dfzt25CFSPo3Y3GCbxynRBZzxq9AdyNN+x/v2IqYx6KVT5Z6me2Z/PsSGFSv3cOSUZqJ9pHxilao/I/m9FouLw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", "dev": true, "requires": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", "resolve": "^1.20.0", "resolve.exports": "^1.1.0", "slash": "^3.0.0" @@ -36156,7 +36769,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -36165,7 +36778,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -36175,7 +36788,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -36184,19 +36797,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -36206,49 +36819,48 @@ } }, "jest-resolve-dependencies": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.3.1.tgz", - "integrity": "sha512-X7iLzY8pCiYOnvYo2YrK3P9oSE8/3N2f4pUZMJ8IUcZnT81vlSonya1KTO9ZfKGuC+svE6FHK/XOb8SsoRUV1A==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", "dev": true, "requires": { - "@jest/types": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.3.1" + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" } }, "jest-runner": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.3.1.tgz", - "integrity": "sha512-r4W6kBn6sPr3TBwQNmqE94mPlYVn7fLBseeJfo4E2uCTmAyDFm2O5DYAQAFP7Q3YfiA/bMwg8TVsciP7k0xOww==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", "dev": true, "requires": { - "@jest/console": "^27.3.1", - "@jest/environment": "^27.3.1", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.3.1", - "jest-environment-node": "^27.3.1", - "jest-haste-map": "^27.3.1", - "jest-leak-detector": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-resolve": "^27.3.1", - "jest-runtime": "^27.3.1", - "jest-util": "^27.3.1", - "jest-worker": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", "source-map-support": "^0.5.6", "throat": "^6.0.1" }, "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -36257,7 +36869,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -36267,7 +36879,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -36276,19 +36888,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -36298,42 +36910,38 @@ } }, "jest-runtime": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.3.1.tgz", - "integrity": "sha512-qtO6VxPbS8umqhEDpjA4pqTkKQ1Hy4ZSi9mDVeE9Za7LKBo2LdW2jmT+Iod3XFaJqINikZQsn2wEi0j9wPRbLg==", - "dev": true, - "requires": { - "@jest/console": "^27.3.1", - "@jest/environment": "^27.3.1", - "@jest/globals": "^27.3.1", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.3.1", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", - "@types/yargs": "^16.0.0", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "execa": "^5.0.0", - "exit": "^0.1.2", "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-mock": "^27.3.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.3.1", - "jest-snapshot": "^27.3.1", - "jest-util": "^27.3.1", - "jest-validate": "^27.3.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.2.0" + "strip-bom": "^4.0.0" }, "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -36342,7 +36950,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -36352,7 +36960,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -36361,87 +36969,70 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "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" - } } } }, "jest-serializer": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", - "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", "dev": true, "requires": { "@types/node": "*", - "graceful-fs": "^4.2.4" + "graceful-fs": "^4.2.9" } }, "jest-snapshot": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.3.1.tgz", - "integrity": "sha512-APZyBvSgQgOT0XumwfFu7X3G5elj6TGhCBLbBdn3R1IzYustPGPE38F51dBWMQ8hRXa9je0vAdeVDtqHLvB6lg==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", "dev": true, "requires": { "@babel/core": "^7.7.2", "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/traverse": "^7.7.2", "@babel/types": "^7.0.0", - "@jest/transform": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", "@types/babel__traverse": "^7.0.4", "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^27.3.1", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.3.1", - "jest-get-type": "^27.3.1", - "jest-haste-map": "^27.3.1", - "jest-matcher-utils": "^27.3.1", - "jest-message-util": "^27.3.1", - "jest-resolve": "^27.3.1", - "jest-util": "^27.3.1", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", "natural-compare": "^1.4.0", - "pretty-format": "^27.3.1", + "pretty-format": "^27.5.1", "semver": "^7.3.2" }, "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -36450,7 +37041,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -36460,7 +37051,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -36469,19 +37060,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -36492,7 +37083,7 @@ }, "jest-sonar-reporter": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jest-sonar-reporter/-/jest-sonar-reporter-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-sonar-reporter/-/jest-sonar-reporter-2.0.0.tgz", "integrity": "sha512-ZervDCgEX5gdUbdtWsjdipLN3bKJwpxbvhkYNXTAYvAckCihobSLr9OT/IuyNIRT1EZMDDwR6DroWtrq+IL64w==", "dev": true, "requires": { @@ -36500,22 +37091,22 @@ } }, "jest-util": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.3.1.tgz", - "integrity": "sha512-8fg+ifEH3GDryLQf/eKZck1DEs2YuVPBCMOaHQxVVLmQwl/CDhWzrvChTX4efLZxGrw+AA0mSXv78cyytBt/uw==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", "dev": true, "requires": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "picomatch": "^2.2.3" }, "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -36524,7 +37115,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -36534,7 +37125,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -36543,19 +37134,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -36565,22 +37156,22 @@ } }, "jest-validate": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.3.1.tgz", - "integrity": "sha512-3H0XCHDFLA9uDII67Bwi1Vy7AqwA5HqEEjyy934lgVhtJ3eisw6ShOF1MDmRPspyikef5MyExvIm0/TuLzZ86Q==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", "dev": true, "requires": { - "@jest/types": "^27.2.5", + "@jest/types": "^27.5.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^27.3.1", + "jest-get-type": "^27.5.1", "leven": "^3.1.0", - "pretty-format": "^27.3.1" + "pretty-format": "^27.5.1" }, "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -36588,14 +37179,14 @@ } }, "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -36605,7 +37196,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -36614,19 +37205,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -36636,23 +37227,23 @@ } }, "jest-watcher": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.3.1.tgz", - "integrity": "sha512-9/xbV6chABsGHWh9yPaAGYVVKurWoP3ZMCv6h+O1v9/+pkOroigs6WzZ0e9gLP/njokUwM7yQhr01LKJVMkaZA==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", "dev": true, "requires": { - "@jest/test-result": "^27.3.1", - "@jest/types": "^27.2.5", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^27.3.1", + "jest-util": "^27.5.1", "string-length": "^4.0.1" }, "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -36661,7 +37252,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -36671,7 +37262,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -36680,19 +37271,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -36702,9 +37293,9 @@ } }, "jest-worker": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz", - "integrity": "sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "requires": { "@types/node": "*", @@ -36714,13 +37305,13 @@ "dependencies": { "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { @@ -36731,37 +37322,37 @@ }, "jmespath": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w==", "dev": true }, "joi": { - "version": "17.4.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz", - "integrity": "sha512-Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw==", + "version": "17.11.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/joi/-/joi-17.11.0.tgz", + "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", "dev": true, "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.0", - "@sideway/formula": "^3.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } }, "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", + "version": "3.7.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", "peer": true }, "js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { @@ -36771,13 +37362,13 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", "dev": true }, "jsdom": { "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsdom/-/jsdom-16.7.0.tgz", "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", "dev": true, "requires": { @@ -36811,90 +37402,87 @@ }, "dependencies": { "acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "version": "8.11.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true } } }, "jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "version": "0.4.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", "dev": true }, "json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "json-schema-typed": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-typed/-/json-schema-typed-7.0.3.tgz", "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "json-stringify-nice": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==", "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==", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - } + "version": "2.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" }, "jsonc-parser": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsonc-parser/-/jsonc-parser-3.0.0.tgz", "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", "dev": true }, "jsonfile": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==", "dev": true, "requires": { "graceful-fs": "^4.1.6" @@ -36902,76 +37490,85 @@ }, "jsonparse": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true }, "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "version": "1.4.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.2.3", + "json-schema": "0.4.0", "verror": "1.10.0" } }, "just-diff": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/just-diff/-/just-diff-3.1.1.tgz", "integrity": "sha512-sdMWKjRq8qWZEjDcVA6llnUT8RDEBIfOiGpYFPYa9u+2c39JCsejktSP7mj5eRid5EIvTzIpQ2kDOCw1Nq9BjQ==", "dev": true }, "just-diff-apply": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-3.0.0.tgz", - "integrity": "sha512-K2MLc+ZC2DVxX4V61bIKPeMUUfj1YYZ3h0myhchDXOW1cKoPZMnjIoNCqv9bF2n5Oob1PFxuR2gVJxkxz4e58w==", + "version": "3.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/just-diff-apply/-/just-diff-apply-3.1.2.tgz", + "integrity": "sha512-TCa7ZdxCeq6q3Rgms2JCRHTCfWAETPZ8SzYUbkYF6KR3I03sN29DaOIC+xyWboIcMvjAsD5iG2u/RWzHD8XpgQ==", "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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" } }, + "keyv": { + "version": "4.5.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, "killable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "kleur": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "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==", + "version": "2.0.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true }, "kuler": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kuler/-/kuler-2.0.0.tgz", "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", "dev": true }, "lcid": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lcid/-/lcid-3.1.1.tgz", "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==", "dev": true, "requires": { @@ -36980,7 +37577,7 @@ }, "less": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/less/-/less-4.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/less/-/less-4.1.1.tgz", "integrity": "sha512-w09o8tZFPThBscl5d0Ggp3RcrKIouBoQscnOMgFH3n5V3kN/CXGHNfCkRPtxJk6nKryDXaV9aHLK55RXuH4sAw==", "dev": true, "requires": { @@ -36998,7 +37595,7 @@ "dependencies": { "make-dir": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "optional": true, @@ -37009,28 +37606,28 @@ }, "pify": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "optional": true }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "optional": true }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } @@ -37038,7 +37635,7 @@ }, "less-loader": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/less-loader/-/less-loader-10.0.1.tgz", "integrity": "sha512-Crln//HpW9M5CbtdfWm3IO66Cvx1WhZQvNybXgfB2dD/6Sav9ppw+IWqs/FQKPBFO4B6X0X28Z0WNznshgwUzA==", "dev": true, "requires": { @@ -37047,13 +37644,13 @@ }, "leven": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true }, "levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { @@ -37063,7 +37660,7 @@ }, "license-webpack-plugin": { "version": "2.3.20", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.20.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/license-webpack-plugin/-/license-webpack-plugin-2.3.20.tgz", "integrity": "sha512-AHVueg9clOKACSHkhmEI+PCC9x8+qsQVuKECZD3ETxETK5h/PCv5/MUzyG1gm8OMcip/s1tcNxqo9Qb7WhjGsg==", "dev": true, "requires": { @@ -37072,26 +37669,26 @@ } }, "lilconfig": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", - "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", + "version": "2.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true }, "limiter": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/limiter/-/limiter-1.1.5.tgz", "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", "dev": true }, "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "version": "1.2.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "load-yaml-file": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/load-yaml-file/-/load-yaml-file-0.2.0.tgz", "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", "dev": true, "requires": { @@ -37103,27 +37700,27 @@ "dependencies": { "pify": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true }, "strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true } } }, "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "version": "4.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true }, "loader-utils": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/loader-utils/-/loader-utils-2.0.0.tgz", "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "dev": true, "requires": { @@ -37134,7 +37731,7 @@ }, "localtunnel": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/localtunnel/-/localtunnel-2.0.2.tgz", "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", "dev": true, "requires": { @@ -37144,9 +37741,20 @@ "yargs": "17.1.1" }, "dependencies": { + "cliui": { + "version": "7.0.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "yargs": { "version": "17.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs/-/yargs-17.1.1.tgz", "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", "dev": true, "requires": { @@ -37163,7 +37771,7 @@ }, "locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { @@ -37172,54 +37780,48 @@ }, "lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "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.debounce": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "lodash.isfinite": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", - "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, "lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, "lodash.truncate": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, "lodash.uniq": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, "log-symbols": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "requires": { @@ -37229,7 +37831,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -37238,7 +37840,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -37248,7 +37850,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -37257,19 +37859,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -37279,41 +37881,42 @@ } }, "logform": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.3.0.tgz", - "integrity": "sha512-graeoWUH2knKbGthMtuG1EfaSPMZFZBIrhuJHhkS5ZseFBrc7DupCzihOQAzsK/qIKPQaPJ/lFQFctILUY5ARQ==", + "version": "2.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", "dev": true, "requires": { - "colors": "^1.2.1", + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", "fecha": "^4.2.0", "ms": "^2.1.1", - "safe-stable-stringify": "^1.1.0", + "safe-stable-stringify": "^2.3.1", "triple-beam": "^1.3.0" } }, "loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "version": "1.8.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/loglevel/-/loglevel-1.8.1.tgz", + "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", "dev": true }, "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==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "^4.0.0" + "yallist": "^3.0.2" } }, "macos-release": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.0.tgz", - "integrity": "sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g==", + "version": "2.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/macos-release/-/macos-release-2.5.1.tgz", + "integrity": "sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==", "dev": true }, "magic-string": { "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/magic-string/-/magic-string-0.25.7.tgz", "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", "requires": { "sourcemap-codec": "^1.4.4" @@ -37321,7 +37924,7 @@ }, "make-dir": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { @@ -37329,22 +37932,22 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "make-error": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, "make-fetch-happen": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, "requires": { @@ -37364,20 +37967,37 @@ "promise-retry": "^2.0.1", "socks-proxy-agent": "^6.0.0", "ssri": "^8.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "version": "1.0.12", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "requires": { - "tmpl": "1.0.x" + "tmpl": "1.0.5" } }, "map-age-cleaner": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, "requires": { @@ -37386,14 +38006,14 @@ }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", "dev": true, "requires": { "object-visit": "^1.0.0" @@ -37401,19 +38021,19 @@ }, "mdn-data": { "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true }, "mem": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/mem/-/mem-5.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mem/-/mem-5.1.1.tgz", "integrity": "sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==", "dev": true, "requires": { @@ -37424,19 +38044,19 @@ "dependencies": { "mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true } } }, "mem-fs": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-2.2.1.tgz", - "integrity": "sha512-yiAivd4xFOH/WXlUi6v/nKopBh1QLzwjFi36NK88cGt/PRXI8WeBASqY+YSjIVWvQTx3hR8zHKDBMV6hWmglNA==", + "version": "2.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mem-fs/-/mem-fs-2.3.0.tgz", + "integrity": "sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw==", "dev": true, "requires": { - "@types/node": "^15.6.1", + "@types/node": "^15.6.2", "@types/vinyl": "^2.0.4", "vinyl": "^2.0.1", "vinyl-file": "^3.0.0" @@ -37444,7 +38064,7 @@ "dependencies": { "@types/node": { "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/node/-/node-15.14.9.tgz", "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", "dev": true } @@ -37452,7 +38072,7 @@ }, "mem-fs-editor": { "version": "9.3.0", - "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-9.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mem-fs-editor/-/mem-fs-editor-9.3.0.tgz", "integrity": "sha512-QKFbPwGCh1ypmc2H8BUYpbapwT/x2AOCYZQogzSui4rUNes7WVMagQXsirPIfp18EarX0SSY9Fpg426nSjew4Q==", "dev": true, "requires": { @@ -37469,18 +38089,18 @@ } }, "memfs": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.3.0.tgz", - "integrity": "sha512-BEE62uMfKOavX3iG7GYX43QJ+hAeeWnwIAuJ/R6q96jaMtiLzhsxHJC8B1L7fK7Pt/vXDRwb3SG/yBpNGDPqzg==", + "version": "3.5.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", "dev": true, "requires": { - "fs-monkey": "1.0.3" + "fs-monkey": "^1.0.4" } }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", "dev": true, "requires": { "errno": "^0.1.3", @@ -37488,9 +38108,9 @@ }, "dependencies": { "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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -37502,9 +38122,15 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { @@ -37515,13 +38141,39 @@ }, "merge-descriptors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", "dev": true }, + "merge-jsons-webpack-plugin": { + "version": "1.0.21", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/merge-jsons-webpack-plugin/-/merge-jsons-webpack-plugin-1.0.21.tgz", + "integrity": "sha512-5Brw0DBi7tF48gm3BB21hu3qYWUMHuKWHKNqdZYmGTQlZQFTc63VFY/5LgonqusI/b0uvvjkpTdx1WrjInXreQ==", + "dev": true, + "requires": { + "es6-promise": "4.0.5", + "glob": "7.1.1" + }, + "dependencies": { + "glob": { + "version": "7.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-mRyN/EsN2SyNhKWykF3eEGhDpeNplMWaW18Bmh76tnOqk5TbELAVwFAYOCmKVssOYFrYvvLMguiA+NXO3ZTuVA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, "merge-source-map": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/merge-source-map/-/merge-source-map-1.1.0.tgz", "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "dev": true, "requires": { @@ -37530,7 +38182,7 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -37538,62 +38190,62 @@ }, "merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, "mime": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true }, "mime-db": { - "version": "1.50.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", - "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==", + "version": "1.52.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true }, "mime-types": { - "version": "2.1.33", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", - "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", + "version": "2.1.35", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "requires": { - "mime-db": "1.50.0" + "mime-db": "1.52.0" } }, "mimic-fn": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-3.1.0.tgz", "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", "dev": true }, "mini-css-extract-plugin": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mini-css-extract-plugin/-/mini-css-extract-plugin-2.2.1.tgz", "integrity": "sha512-A0GBXpz8WIPgh2HfASJ0EeY8grd2dGxmC4R8uTujFJXZY7zFy0nvYSYW6SKCLKlz7y45BdHONfaxZQMIZpeF/w==", "dev": true, "requires": { @@ -37602,7 +38254,7 @@ "dependencies": { "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { @@ -37614,21 +38266,21 @@ }, "ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "requires": {} }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -37640,35 +38292,43 @@ }, "minimalistic-assert": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "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==" + "version": "1.2.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, "minipass": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", - "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "version": "3.3.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "requires": { "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "minipass-collect": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, "requires": { @@ -37677,7 +38337,7 @@ }, "minipass-fetch": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-fetch/-/minipass-fetch-1.4.1.tgz", "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "dev": true, "requires": { @@ -37689,7 +38349,7 @@ }, "minipass-flush": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, "requires": { @@ -37698,7 +38358,7 @@ }, "minipass-json-stream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "dev": true, "requires": { @@ -37708,7 +38368,7 @@ }, "minipass-pipeline": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, "requires": { @@ -37717,7 +38377,7 @@ }, "minipass-sized": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, "requires": { @@ -37726,23 +38386,31 @@ }, "minizlib": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "mitt": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mitt/-/mitt-1.2.0.tgz", "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", "dev": true }, "mixin-deep": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "requires": { @@ -37752,13 +38420,13 @@ }, "mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, "mkdirp-infer-owner": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", "dev": true, "requires": { @@ -37767,14 +38435,20 @@ "mkdirp": "^1.0.3" } }, + "mrmime": { + "version": "1.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true + }, "ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multicast-dns": { "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/multicast-dns/-/multicast-dns-6.2.3.tgz", "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "dev": true, "requires": { @@ -37784,13 +38458,13 @@ }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", "dev": true }, "multimatch": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/multimatch/-/multimatch-5.0.0.tgz", "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", "dev": true, "requires": { @@ -37803,32 +38477,26 @@ }, "mute-stream": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "version": "2.18.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", "dev": true, "optional": true }, - "nanocolors": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz", - "integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==", - "dev": true - }, "nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "version": "3.3.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true }, "nanomatch": { "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { @@ -37847,13 +38515,13 @@ }, "natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "needle": { "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/needle/-/needle-2.9.1.tgz", "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", "dev": true, "optional": true, @@ -37865,7 +38533,7 @@ "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "optional": true, @@ -37874,29 +38542,29 @@ } }, "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "version": "1.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", "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==", + "version": "0.6.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true }, "neo-async": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, "ngx-infinite-scroll": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ngx-infinite-scroll/-/ngx-infinite-scroll-10.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ngx-infinite-scroll/-/ngx-infinite-scroll-10.0.1.tgz", "integrity": "sha512-7is0eJZ9kJPsaHohRmMhJ/QFHAW9jp9twO5HcHRvFM/Yl/R8QCiokgjwmH0/CR3MuxUanxfHZMfO3PbYTwlBEg==", "requires": { "@scarf/scarf": "^1.1.0", @@ -37905,7 +38573,7 @@ }, "ngx-webstorage": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ngx-webstorage/-/ngx-webstorage-8.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ngx-webstorage/-/ngx-webstorage-8.0.0.tgz", "integrity": "sha512-dpHgboSi6adnYpwiAQ2/PRJe8dcvSbM2qWTacTCUPVPeWlhLvTCtIl1GA9BNDiZzYuyA3dmXyqlcDl/Th9Pi2A==", "requires": { "tslib": "^2.0.0" @@ -37913,7 +38581,7 @@ }, "nice-napi": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nice-napi/-/nice-napi-1.0.2.tgz", "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", "dev": true, "optional": true, @@ -37924,21 +38592,21 @@ }, "nice-try": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "node-addon-api": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "dev": true, "optional": true }, "node-fetch": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", - "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "version": "2.7.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, "requires": { "whatwg-url": "^5.0.0" @@ -37946,20 +38614,20 @@ "dependencies": { "tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, "webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "requires": { "tr46": "~0.0.3", @@ -37970,13 +38638,13 @@ }, "node-forge": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-forge/-/node-forge-0.10.0.tgz", "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", "dev": true }, "node-gyp": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-gyp/-/node-gyp-7.1.2.tgz", "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", "dev": true, "requires": { @@ -37993,27 +38661,21 @@ } }, "node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "version": "4.7.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-gyp-build/-/node-gyp-build-4.7.1.tgz", + "integrity": "sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==", "dev": true, "optional": true }, "node-int64": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, "node-notifier": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-notifier/-/node-notifier-9.0.1.tgz", "integrity": "sha512-fPNFIp2hF/Dq7qLDzSg4vZ0J4e9v60gJR+Qx7RbjbWqzPDdEqeVpEx5CFeDAELIl+A/woaaNn1fQ5nEVerMxJg==", "dev": true, "requires": { @@ -38026,13 +38688,13 @@ } }, "node-releases": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.0.tgz", - "integrity": "sha512-aA87l0flFYMzCHpTM3DERFSYxc6lv/BltdbRTOMZuxZ0cwZCD3mejE5n9vLhSJCN++/eOqr77G1IO5uXxlQYWA==" + "version": "2.0.14", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, "nopt": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, "requires": { @@ -38041,7 +38703,7 @@ }, "normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { @@ -38053,38 +38715,38 @@ "dependencies": { "hosted-git-info": { "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true } } }, "normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "normalize-range": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true }, "normalize-url": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", "dev": true }, "npm-bundled": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-bundled/-/npm-bundled-1.1.2.tgz", "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", "dev": true, "requires": { @@ -38093,7 +38755,7 @@ }, "npm-install-checks": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-install-checks/-/npm-install-checks-4.0.0.tgz", "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", "dev": true, "requires": { @@ -38102,13 +38764,13 @@ }, "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-package-arg/-/npm-package-arg-8.1.5.tgz", "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", "dev": true, "requires": { @@ -38119,7 +38781,7 @@ }, "npm-packlist": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-packlist/-/npm-packlist-2.2.2.tgz", "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", "dev": true, "requires": { @@ -38131,7 +38793,7 @@ }, "npm-pick-manifest": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", "dev": true, "requires": { @@ -38143,7 +38805,7 @@ }, "npm-registry-fetch": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "dev": true, "requires": { @@ -38157,7 +38819,7 @@ }, "npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { @@ -38166,7 +38828,7 @@ }, "npmlog": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "requires": { @@ -38177,9 +38839,9 @@ } }, "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "version": "2.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, "requires": { "boolbase": "^1.0.0" @@ -38187,38 +38849,38 @@ }, "num2fraction": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", "dev": true }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "dev": true }, "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "version": "2.2.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", "dev": true }, "oauth-sign": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", "dev": true, "requires": { "copy-descriptor": "^0.1.0", @@ -38228,54 +38890,27 @@ "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, - "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" - } - }, - "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" - } - }, "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "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-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" } }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -38284,14 +38919,14 @@ } }, "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "version": "1.13.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true }, "object-is": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/object-is/-/object-is-1.1.5.tgz", "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", "dev": true, "requires": { @@ -38301,35 +38936,23 @@ }, "object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", "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.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "dev": true, "requires": { "isobject": "^3.0.1" @@ -38337,14 +38960,14 @@ }, "obuf": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, "requires": { "ee-first": "1.1.1" @@ -38352,21 +38975,21 @@ }, "on-headers": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "requires": { "wrappy": "1" } }, "one-time": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/one-time/-/one-time-1.0.0.tgz", "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", "dev": true, "requires": { @@ -38375,7 +38998,7 @@ }, "onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { @@ -38384,7 +39007,7 @@ "dependencies": { "mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true } @@ -38392,7 +39015,7 @@ }, "open": { "version": "8.2.1", - "resolved": "https://registry.npmjs.org/open/-/open-8.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/open/-/open-8.2.1.tgz", "integrity": "sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ==", "dev": true, "requires": { @@ -38403,24 +39026,24 @@ }, "opencollective-postinstall": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" }, "opener": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true }, "openurl": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", - "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==", "dev": true }, "opn": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/opn/-/opn-5.3.0.tgz", "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", "dev": true, "requires": { @@ -38429,29 +39052,29 @@ "dependencies": { "is-wsl": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", "dev": true } } }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", "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" + "type-check": "^0.4.0" } }, "ora": { "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, "requires": { @@ -38468,7 +39091,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -38477,7 +39100,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -38487,7 +39110,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -38496,19 +39119,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -38517,18 +39140,9 @@ } } }, - "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-locale": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/os-locale/-/os-locale-5.0.0.tgz", "integrity": "sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==", "dev": true, "requires": { @@ -38539,7 +39153,7 @@ "dependencies": { "execa": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/execa/-/execa-4.1.0.tgz", "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "requires": { @@ -38556,7 +39170,7 @@ }, "get-stream": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { @@ -38565,7 +39179,7 @@ }, "human-signals": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true } @@ -38573,7 +39187,7 @@ }, "os-name": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/os-name/-/os-name-4.0.1.tgz", "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", "dev": true, "requires": { @@ -38583,31 +39197,31 @@ }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true }, "p-defer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", "dev": true }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true }, "p-is-promise": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-is-promise/-/p-is-promise-2.1.0.tgz", "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", "dev": true }, "p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { @@ -38616,7 +39230,7 @@ }, "p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { @@ -38625,7 +39239,7 @@ "dependencies": { "p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { @@ -38636,7 +39250,7 @@ }, "p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "requires": { @@ -38645,7 +39259,7 @@ }, "p-queue": { "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-queue/-/p-queue-6.6.2.tgz", "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", "dev": true, "requires": { @@ -38655,7 +39269,7 @@ }, "p-retry": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-retry/-/p-retry-3.0.1.tgz", "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", "dev": true, "requires": { @@ -38664,7 +39278,7 @@ }, "p-timeout": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-timeout/-/p-timeout-3.2.0.tgz", "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "dev": true, "requires": { @@ -38673,13 +39287,13 @@ }, "p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "pacote": { "version": "11.3.5", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pacote/-/pacote-11.3.5.tgz", "integrity": "sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==", "dev": true, "requires": { @@ -38706,13 +39320,13 @@ }, "pako": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, "parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { @@ -38721,13 +39335,13 @@ }, "parse-cache-control": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", "dev": true }, "parse-conflict-json": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz", "integrity": "sha512-4gySviBiW5TRl7XHvp1agcS7SOe0KZOjC//71dzZVWJrY9hCrgtvl5v3SyIxCZ4fZF47TxD9nfzmxcx76xmbUw==", "dev": true, "requires": { @@ -38738,13 +39352,13 @@ }, "parse-gitignore": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-gitignore/-/parse-gitignore-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-gitignore/-/parse-gitignore-1.0.1.tgz", "integrity": "sha512-UGyowyjtx26n65kdAMWhm6/3uy5uSrpcuH7tt+QEVudiBoVS+eqHxD5kbi9oWVRwj7sCzXqwuM+rUGw7earl6A==", "dev": true }, "parse-json": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "requires": { @@ -38756,19 +39370,19 @@ }, "parse-node-version": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true }, "parse5": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, "parse5-html-rewriting-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", "dev": true, "requires": { @@ -38778,7 +39392,7 @@ }, "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", "dev": true, "requires": { @@ -38787,7 +39401,7 @@ }, "parse5-sax-parser": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", "dev": true, "requires": { @@ -38796,123 +39410,121 @@ }, "parseqs": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/parseuri/-/parseuri-0.0.6.tgz", "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", "dev": true }, "parseurl": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", "dev": true }, "path-dirname": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", "dev": true }, "path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "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=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", "dev": true }, "path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", "dev": true }, "path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, "performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", "dev": true }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "0.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "version": "2.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, "requires": { "pinkie": "^2.0.0" } }, "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } + "version": "4.0.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true }, "piscina": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/piscina/-/piscina-3.1.0.tgz", "integrity": "sha512-KTW4sjsCD34MHrUbx9eAAbuUSpVj407hQSgk/6Epkg0pbRBmv4a3UX7Sr8wxm9xYqQLnsN4mFOjqGDzHAdgKQg==", "dev": true, "requires": { @@ -38924,7 +39536,7 @@ }, "pkg-dir": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { @@ -38933,7 +39545,7 @@ }, "pkg-up": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pkg-up/-/pkg-up-3.1.0.tgz", "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "dev": true, "requires": { @@ -38942,7 +39554,7 @@ "dependencies": { "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { @@ -38951,7 +39563,7 @@ }, "locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { @@ -38961,7 +39573,7 @@ }, "p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { @@ -38970,7 +39582,7 @@ }, "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { @@ -38979,15 +39591,15 @@ }, "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true } } }, "plugin-error": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/plugin-error/-/plugin-error-1.0.1.tgz", "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", "dev": true, "requires": { @@ -38999,7 +39611,7 @@ "dependencies": { "ansi-colors": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-colors/-/ansi-colors-1.1.0.tgz", "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", "dev": true, "requires": { @@ -39010,30 +39622,30 @@ }, "pluralize": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true }, "popper.js": { "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/popper.js/-/popper.js-1.16.1.tgz", "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", "peer": true }, "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "version": "1.0.32", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", "dev": true, "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" }, "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { @@ -39041,20 +39653,20 @@ } }, "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "requires": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" } } } }, "portscanner": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz", - "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/portscanner/-/portscanner-2.1.1.tgz", + "integrity": "sha512-CUxI7PHXrWJTIPmQs1YJFyD4uesS3om2jVcgS3T1eYPyd60s1l0m7tf35Fn5KRAtV51SAD7BmImaOGf6vwhiFQ==", "dev": true, "requires": { "async": "1.5.2", @@ -39063,21 +39675,21 @@ "dependencies": { "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", "dev": true } } }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", "dev": true }, "postcss": { "version": "8.3.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-8.3.6.tgz", "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", "dev": true, "requires": { @@ -39088,7 +39700,7 @@ }, "postcss-attribute-case-insensitive": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", "dev": true, "requires": { @@ -39096,15 +39708,9 @@ "postcss-selector-parser": "^6.0.2" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39114,25 +39720,25 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "postcss-calc": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz", - "integrity": "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==", + "version": "8.2.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", "dev": true, "requires": { - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" } }, "postcss-color-functional-notation": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", "dev": true, "requires": { @@ -39140,15 +39746,9 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39158,7 +39758,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39166,7 +39766,7 @@ }, "postcss-color-gray": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", "dev": true, "requires": { @@ -39175,15 +39775,9 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39193,7 +39787,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39201,7 +39795,7 @@ }, "postcss-color-hex-alpha": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", "dev": true, "requires": { @@ -39209,15 +39803,9 @@ "postcss-values-parser": "^2.0.1" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39227,7 +39815,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39235,7 +39823,7 @@ }, "postcss-color-mod-function": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", "dev": true, "requires": { @@ -39244,15 +39832,9 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39262,7 +39844,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39270,7 +39852,7 @@ }, "postcss-color-rebeccapurple": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", "dev": true, "requires": { @@ -39278,15 +39860,9 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39296,51 +39872,46 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "postcss-colormin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.0.tgz", - "integrity": "sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw==", + "version": "5.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", "dev": true, "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", - "colord": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" } }, "postcss-convert-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz", - "integrity": "sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg==", + "version": "5.1.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0" + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" } }, "postcss-custom-media": { "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", "dev": true, "requires": { "postcss": "^7.0.14" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39350,7 +39921,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39358,7 +39929,7 @@ }, "postcss-custom-properties": { "version": "8.0.11", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", "dev": true, "requires": { @@ -39366,15 +39937,9 @@ "postcss-values-parser": "^2.0.1" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39384,7 +39949,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39392,7 +39957,7 @@ }, "postcss-custom-selectors": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", "dev": true, "requires": { @@ -39402,19 +39967,13 @@ "dependencies": { "cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39424,7 +39983,7 @@ }, "postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "requires": { @@ -39435,7 +39994,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39443,7 +40002,7 @@ }, "postcss-dir-pseudo-class": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", "dev": true, "requires": { @@ -39453,19 +40012,13 @@ "dependencies": { "cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39475,7 +40028,7 @@ }, "postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "requires": { @@ -39486,43 +40039,43 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "postcss-discard-comments": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz", - "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==", + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", "dev": true, "requires": {} }, "postcss-discard-duplicates": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz", - "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", "dev": true, "requires": {} }, "postcss-discard-empty": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz", - "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", "dev": true, "requires": {} }, "postcss-discard-overridden": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", - "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", "dev": true, "requires": {} }, "postcss-double-position-gradients": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", "dev": true, "requires": { @@ -39530,15 +40083,9 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39548,7 +40095,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39556,7 +40103,7 @@ }, "postcss-env-function": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-env-function/-/postcss-env-function-2.0.2.tgz", "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", "dev": true, "requires": { @@ -39564,15 +40111,9 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39582,7 +40123,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39590,22 +40131,16 @@ }, "postcss-focus-visible": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39615,7 +40150,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39623,22 +40158,16 @@ }, "postcss-focus-within": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39648,7 +40177,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39656,22 +40185,16 @@ }, "postcss-font-variant": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39681,7 +40204,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39689,22 +40212,16 @@ }, "postcss-gap-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39714,7 +40231,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39722,7 +40239,7 @@ }, "postcss-image-set-function": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", "dev": true, "requires": { @@ -39730,15 +40247,9 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39748,7 +40259,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39756,7 +40267,7 @@ }, "postcss-import": { "version": "14.0.2", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-import/-/postcss-import-14.0.2.tgz", "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", "dev": true, "requires": { @@ -39767,22 +40278,16 @@ }, "postcss-initial": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-initial/-/postcss-initial-3.0.4.tgz", "integrity": "sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39792,7 +40297,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39800,7 +40305,7 @@ }, "postcss-lab-function": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", "dev": true, "requires": { @@ -39809,15 +40314,9 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39827,7 +40326,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39835,7 +40334,7 @@ }, "postcss-loader": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-loader/-/postcss-loader-6.1.1.tgz", "integrity": "sha512-lBmJMvRh1D40dqpWKr9Rpygwxn8M74U9uaCSeYGNKLGInbk9mXBt1ultHf2dH9Ghk6Ue4UXlXWwGMH9QdUJ5ug==", "dev": true, "requires": { @@ -39846,22 +40345,16 @@ }, "postcss-logical": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-logical/-/postcss-logical-3.0.0.tgz", "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39871,7 +40364,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -39879,22 +40372,16 @@ }, "postcss-media-minmax": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -39904,90 +40391,85 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "postcss-merge-longhand": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz", - "integrity": "sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw==", + "version": "5.1.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", "dev": true, "requires": { - "css-color-names": "^1.0.1", - "postcss-value-parser": "^4.1.0", - "stylehacks": "^5.0.1" + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" } }, "postcss-merge-rules": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz", - "integrity": "sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg==", + "version": "5.1.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", "dev": true, "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", - "cssnano-utils": "^2.0.1", - "postcss-selector-parser": "^6.0.5", - "vendors": "^1.0.3" + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" } }, "postcss-minify-font-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz", - "integrity": "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-minify-gradients": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.2.tgz", - "integrity": "sha512-7Do9JP+wqSD6Prittitt2zDLrfzP9pqKs2EcLX7HJYxsxCOwrrcLt4x/ctQTsiOw+/8HYotAoqNkrzItL19SdQ==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", "dev": true, "requires": { - "colord": "^2.6", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" } }, "postcss-minify-params": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz", - "integrity": "sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw==", + "version": "5.1.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", "dev": true, "requires": { - "alphanum-sort": "^1.0.2", - "browserslist": "^4.16.0", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0", - "uniqs": "^2.0.0" + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" } }, "postcss-minify-selectors": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz", - "integrity": "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==", + "version": "5.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", "dev": true, "requires": { - "alphanum-sort": "^1.0.2", "postcss-selector-parser": "^6.0.5" } }, "postcss-modules-extract-imports": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", "dev": true, "requires": {} }, "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "version": "4.0.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", "dev": true, "requires": { "icss-utils": "^5.0.0", @@ -39996,9 +40478,9 @@ } }, "postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "version": "3.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-modules-scope/-/postcss-modules-scope-3.1.0.tgz", + "integrity": "sha512-SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg==", "dev": true, "requires": { "postcss-selector-parser": "^6.0.4" @@ -40006,7 +40488,7 @@ }, "postcss-modules-values": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, "requires": { @@ -40015,22 +40497,16 @@ }, "postcss-nesting": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-nesting/-/postcss-nesting-7.0.1.tgz", "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -40040,125 +40516,115 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "postcss-normalize-charset": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz", - "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", "dev": true, "requires": {} }, "postcss-normalize-display-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz", - "integrity": "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", "dev": true, "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-positions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz", - "integrity": "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-repeat-style": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz", - "integrity": "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", "dev": true, "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-string": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz", - "integrity": "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-timing-functions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz", - "integrity": "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", "dev": true, "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-unicode": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz", - "integrity": "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", "dev": true, "requires": { - "browserslist": "^4.16.0", - "postcss-value-parser": "^4.1.0" + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-url": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz", - "integrity": "sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", "dev": true, "requires": { - "is-absolute-url": "^3.0.3", "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-whitespace": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz", - "integrity": "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-ordered-values": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz", - "integrity": "sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==", + "version": "5.1.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", "dev": true, "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" } }, "postcss-overflow-shorthand": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -40168,7 +40634,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -40176,22 +40642,16 @@ }, "postcss-page-break": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-page-break/-/postcss-page-break-2.0.0.tgz", "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -40201,7 +40661,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -40209,7 +40669,7 @@ }, "postcss-place": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-place/-/postcss-place-4.0.1.tgz", "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", "dev": true, "requires": { @@ -40217,15 +40677,9 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -40235,7 +40689,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -40243,7 +40697,7 @@ }, "postcss-preset-env": { "version": "6.7.0", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", "dev": true, "requires": { @@ -40286,15 +40740,9 @@ "postcss-selector-not": "^4.0.0" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -40304,7 +40752,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -40312,7 +40760,7 @@ }, "postcss-pseudo-class-any-link": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", "dev": true, "requires": { @@ -40322,19 +40770,13 @@ "dependencies": { "cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -40344,7 +40786,7 @@ }, "postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "requires": { @@ -40355,50 +40797,43 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "postcss-reduce-initial": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz", - "integrity": "sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw==", + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", "dev": true, "requires": { - "browserslist": "^4.16.0", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" } }, "postcss-reduce-transforms": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz", - "integrity": "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", "dev": true, "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-replace-overflow-wrap": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -40408,7 +40843,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -40416,7 +40851,7 @@ }, "postcss-selector-matches": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", "dev": true, "requires": { @@ -40424,15 +40859,9 @@ "postcss": "^7.0.2" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -40442,7 +40871,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -40450,7 +40879,7 @@ }, "postcss-selector-not": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", "dev": true, "requires": { @@ -40458,15 +40887,9 @@ "postcss": "^7.0.2" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -40476,16 +40899,16 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "version": "6.0.14", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-selector-parser/-/postcss-selector-parser-6.0.14.tgz", + "integrity": "sha512-65xXYsT40i9GyWzlHQ5ShZoK7JZdySeOozi/tz2EezDo6c04q6+ckYMeoY7idaie1qp2dT5KoYQ2yky6JuoHnA==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -40493,35 +40916,33 @@ } }, "postcss-svgo": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.2.tgz", - "integrity": "sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A==", + "version": "5.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0", - "svgo": "^2.3.0" + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" } }, "postcss-unique-selectors": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz", - "integrity": "sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", "dev": true, "requires": { - "alphanum-sort": "^1.0.2", - "postcss-selector-parser": "^6.0.5", - "uniqs": "^2.0.0" + "postcss-selector-parser": "^6.0.5" } }, "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==", + "version": "4.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, "postcss-values-parser": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", "dev": true, "requires": { @@ -40531,9 +40952,9 @@ } }, "preferred-pm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz", - "integrity": "sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==", + "version": "3.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/preferred-pm/-/preferred-pm-3.1.2.tgz", + "integrity": "sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==", "dev": true, "requires": { "find-up": "^5.0.0", @@ -40544,7 +40965,7 @@ "dependencies": { "find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { @@ -40554,7 +40975,7 @@ }, "locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { @@ -40563,7 +40984,7 @@ }, "p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { @@ -40574,19 +40995,19 @@ }, "prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "prettier": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier/-/prettier-2.4.0.tgz", "integrity": "sha512-DsEPLY1dE5HF3BxCRBmD4uYZ+5DCbvatnolqTqcxEgKVZnL2kUfyu7b8pPQ5+hTBkdhU9SLUmK0/pHb07RE4WQ==", "dev": true }, "prettier-plugin-java": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/prettier-plugin-java/-/prettier-plugin-java-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier-plugin-java/-/prettier-plugin-java-1.4.0.tgz", "integrity": "sha512-Yie1yn4OdEF5Qey+3bChv8OuvMkzoMv07R6s/j1sn9HfZQxpw0eCSaXLOPyS7B6vVlaF1cr2TD1NsNSvxjVU1g==", "dev": true, "requires": { @@ -40597,7 +41018,7 @@ "dependencies": { "prettier": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier/-/prettier-2.3.1.tgz", "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", "dev": true } @@ -40605,7 +41026,7 @@ }, "prettier-plugin-packagejson": { "version": "2.2.11", - "resolved": "https://registry.npmjs.org/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.2.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.2.11.tgz", "integrity": "sha512-oJCBCEkHIKScEv6qNQC47S39NXlevbzwvoJE3gflmBB8/3BEsC6ZRi+hwFVajw32b4tDI9hFXPIzmVd/T8Rm9w==", "dev": true, "requires": { @@ -40614,17 +41035,16 @@ }, "pretty-bytes": { "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true }, "pretty-format": { - "version": "27.3.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.3.1.tgz", - "integrity": "sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA==", + "version": "27.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, "requires": { - "@jest/types": "^27.2.5", "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" @@ -40632,7 +41052,7 @@ "dependencies": { "ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true } @@ -40640,26 +41060,26 @@ }, "proc-log": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/proc-log/-/proc-log-1.0.0.tgz", "integrity": "sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==", "dev": true }, "process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, "progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, "promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "version": "8.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "dev": true, "requires": { "asap": "~2.0.6" @@ -40667,25 +41087,25 @@ }, "promise-all-reject-late": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==", "dev": true }, "promise-call-limit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-1.0.1.tgz", - "integrity": "sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q==", + "version": "1.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-call-limit/-/promise-call-limit-1.0.2.tgz", + "integrity": "sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==", "dev": true }, "promise-inflight": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", "dev": true }, "promise-retry": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, "requires": { @@ -40695,7 +41115,7 @@ }, "prompts": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, "requires": { @@ -40705,7 +41125,7 @@ }, "proxy-addr": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, "requires": { @@ -40715,19 +41135,19 @@ }, "prr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "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==", + "version": "1.9.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, "pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { @@ -40736,38 +41156,38 @@ } }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true }, "qs": { "version": "6.2.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", - "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/qs/-/qs-6.2.3.tgz", + "integrity": "sha512-AY4g8t3LMboim0t6XWFdz6J5OuJ1ZNYu54SXihS/OMpgyCqYmcAJnWqkNSOjSjWmq3xxy+GF9uWQI2lI/7tKIA==", "dev": true }, "querystring": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", "dev": true }, "querystringify": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, "queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, "randexp": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.5.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/randexp/-/randexp-0.5.3.tgz", "integrity": "sha512-U+5l2KrcMNOUPYvazA3h5ekF80FHTUG+87SEAmHZmolh1M+i/WyTCxVzmi+tidIa1tM4BSe8g2Y/D3loWDjj+w==", "dev": true, "requires": { @@ -40777,7 +41197,7 @@ }, "randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { @@ -40786,32 +41206,32 @@ }, "range-parser": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true }, "raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "version": "2.5.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.3", + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } }, "react-is": { "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, "read-cache": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "dev": true, "requires": { "pify": "^2.3.0" @@ -40819,13 +41239,13 @@ }, "read-cmd-shim": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", "integrity": "sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==", "dev": true }, "read-package-json-fast": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", "dev": true, "requires": { @@ -40835,7 +41255,7 @@ }, "read-pkg": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { @@ -40847,7 +41267,7 @@ "dependencies": { "type-fest": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.6.0.tgz", "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true } @@ -40855,7 +41275,7 @@ }, "read-pkg-up": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/read-pkg-up/-/read-pkg-up-7.0.1.tgz", "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "requires": { @@ -40866,16 +41286,16 @@ "dependencies": { "type-fest": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true } } }, "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==", + "version": "3.6.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -40885,7 +41305,7 @@ }, "readdir-scoped-modules": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", "dev": true, "requires": { @@ -40897,7 +41317,7 @@ }, "readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "requires": { "picomatch": "^2.2.1" @@ -40905,28 +41325,28 @@ }, "rechoir": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, "requires": { "resolve": "^1.1.6" } }, "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==" + "version": "0.1.14", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==" }, "regenerate": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, "regenerate-unicode-properties": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", - "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", + "version": "10.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, "requires": { "regenerate": "^1.4.2" @@ -40934,14 +41354,14 @@ }, "regenerator-runtime": { "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", "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==", + "version": "0.15.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" @@ -40949,7 +41369,7 @@ }, "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { @@ -40959,56 +41379,51 @@ }, "regex-parser": { "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regex-parser/-/regex-parser-2.2.11.tgz", "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", "dev": true }, "regexp-to-ast": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==", "dev": true }, "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "version": "1.5.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" } }, "regexpp": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "regexpu-core": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", - "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", + "version": "5.3.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "requires": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.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.7.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", - "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", + "version": "0.9.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -41016,39 +41431,39 @@ "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", "dev": true }, "repeat-element": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/repeat-element/-/repeat-element-1.1.4.tgz", "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true }, "replace-ext": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/replace-ext/-/replace-ext-1.0.1.tgz", "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "dev": true }, "request": { "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "dev": true, "requires": { @@ -41076,7 +41491,7 @@ "dependencies": { "form-data": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { @@ -41086,14 +41501,14 @@ } }, "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "version": "6.5.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "dev": true }, "tough-cookie": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { @@ -41103,7 +41518,7 @@ }, "uuid": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true } @@ -41111,30 +41526,30 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" }, "require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, "require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, "resolve": { "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve/-/resolve-1.20.0.tgz", "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "requires": { "is-core-module": "^2.2.0", @@ -41143,7 +41558,7 @@ }, "resolve-cwd": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "requires": { @@ -41152,7 +41567,7 @@ "dependencies": { "resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true } @@ -41160,19 +41575,19 @@ }, "resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", "dev": true }, "resolve-url-loader": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", "dev": true, "requires": { @@ -41183,15 +41598,9 @@ "source-map": "0.6.1" }, "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { @@ -41201,22 +41610,22 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "version": "1.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", "dev": true }, "resp-modifier": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", - "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==", "dev": true, "requires": { "debug": "^2.2.0", @@ -41225,7 +41634,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { @@ -41234,15 +41643,15 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } }, "restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { @@ -41252,25 +41661,25 @@ }, "ret": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ret/-/ret-0.2.2.tgz", "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", "dev": true }, "retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true }, "reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, "rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { @@ -41279,13 +41688,13 @@ }, "run-async": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true }, "run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "requires": { @@ -41294,13 +41703,13 @@ }, "rx": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rx/-/rx-4.1.0.tgz", + "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", "dev": true }, "rxjs": { "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "requires": { "tslib": "^1.9.0" @@ -41308,20 +41717,21 @@ "dependencies": { "tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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==" + "version": "5.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", "dev": true, "requires": { "ret": "~0.1.10" @@ -41329,27 +41739,27 @@ "dependencies": { "ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true } } }, "safe-stable-stringify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz", - "integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==", + "version": "2.4.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", "dev": true }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "sass": { "version": "1.36.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.36.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sass/-/sass-1.36.0.tgz", "integrity": "sha512-fQzEjipfOv5kh930nu3Imzq3ie/sGDc/4KtQMJlt7RRdrkQSfe37Bwi/Rf/gfuYHsIuE1fIlDMvpyMcEwjnPvg==", "dev": true, "requires": { @@ -41358,7 +41768,7 @@ }, "sass-loader": { "version": "12.1.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sass-loader/-/sass-loader-12.1.0.tgz", "integrity": "sha512-FVJZ9kxVRYNZTIe2xhw93n3xJNYZADr+q69/s98l9nTCrWASo+DR2Ot0s5xTKQDDEosUkatsGeHxcH4QBp5bSg==", "dev": true, "requires": { @@ -41368,13 +41778,13 @@ }, "sax": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sax/-/sax-1.2.1.tgz", + "integrity": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==", "dev": true }, "saxes": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", "dev": true, "requires": { @@ -41383,7 +41793,7 @@ }, "schema-utils": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-2.7.1.tgz", "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, "requires": { @@ -41394,7 +41804,7 @@ "dependencies": { "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { @@ -41406,14 +41816,14 @@ }, "ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "requires": {} }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true } @@ -41421,20 +41831,20 @@ }, "scoped-regex": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/scoped-regex/-/scoped-regex-2.1.0.tgz", "integrity": "sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==", "dev": true }, "select-hose": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", "dev": true }, "selfsigned": { - "version": "1.10.11", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", - "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", + "version": "1.10.14", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/selfsigned/-/selfsigned-1.10.14.tgz", + "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==", "dev": true, "requires": { "node-forge": "^0.10.0" @@ -41442,15 +41852,30 @@ }, "semver": { "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "requires": { "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } } }, "send": { "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/send/-/send-0.16.2.tgz", "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "dev": true, "requires": { @@ -41471,17 +41896,23 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, + "depd": { + "version": "1.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, "requires": { "depd": "~1.1.2", @@ -41492,40 +41923,40 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, "mime": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mime/-/mime-1.4.1.tgz", "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", "dev": true }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "setprototypeof": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, "statuses": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/statuses/-/statuses-1.4.0.tgz", "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", "dev": true } } }, "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -41533,8 +41964,8 @@ }, "serve-index": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, "requires": { "accepts": "~1.3.4", @@ -41548,17 +41979,23 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, + "depd": { + "version": "1.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, "requires": { "depd": "~1.1.2", @@ -41569,33 +42006,33 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "setprototypeof": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, "statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true } } }, "serve-static": { "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { @@ -41607,19 +42044,42 @@ }, "server-destroy": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", - "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", "dev": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, + "set-function-length": { + "version": "1.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "requires": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "set-function-name": { + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + } + }, "set-value": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { @@ -41631,8 +42091,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -41640,21 +42100,21 @@ }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true } } }, "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "version": "1.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, "shallow-clone": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "requires": { @@ -41663,7 +42123,7 @@ }, "shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { @@ -41672,13 +42132,13 @@ }, "shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "shelljs": { "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shelljs/-/shelljs-0.8.4.tgz", "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", "dev": true, "requires": { @@ -41689,13 +42149,13 @@ }, "shellwords": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/shellwords/-/shellwords-0.1.1.tgz", "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", "dev": true }, "side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "requires": { @@ -41705,14 +42165,14 @@ } }, "signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", + "version": "3.0.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "simple-git": { "version": "2.45.1", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-2.45.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/simple-git/-/simple-git-2.45.1.tgz", "integrity": "sha512-NmEoThiLTJxl26WNtZxtJTue18ReTcSrf3so5vJG/O8KY9uMxH+yAhXV/DElBJyOYZrrBbVsH8JOFxgENdc9Xg==", "dev": true, "requires": { @@ -41723,8 +42183,8 @@ }, "simple-swizzle": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", "dev": true, "requires": { "is-arrayish": "^0.3.1" @@ -41732,46 +42192,38 @@ "dependencies": { "is-arrayish": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-arrayish/-/is-arrayish-0.3.2.tgz", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "dev": true } } }, "sirv": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.18.tgz", - "integrity": "sha512-f2AOPogZmXgJ9Ma2M22ZEhc1dNtRIzcEkiflMFeVTRq+OViOZMvH1IPMVOwrKaxpSaHioBJiDR0SluRqGa7atA==", + "version": "1.0.19", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", "dev": true, "requires": { "@polka/url": "^1.0.0-next.20", - "mime": "^2.3.1", + "mrmime": "^1.0.0", "totalist": "^1.0.0" - }, - "dependencies": { - "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true - } } }, "sisteransi": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true }, "slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { @@ -41782,7 +42234,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -41791,7 +42243,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -41800,7 +42252,7 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true } @@ -41808,13 +42260,13 @@ }, "smart-buffer": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true }, "snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { @@ -41830,7 +42282,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { @@ -41839,8 +42291,8 @@ }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -41848,91 +42300,44 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" } }, - "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-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-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" } }, "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 - }, - "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==", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true }, "source-map-resolve": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { @@ -41947,7 +42352,7 @@ }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { @@ -41958,8 +42363,8 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, "requires": { "is-descriptor": "^1.0.0" @@ -41969,7 +42374,7 @@ }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { @@ -41978,8 +42383,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -41989,7 +42394,7 @@ }, "socket.io": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socket.io/-/socket.io-2.4.0.tgz", "integrity": "sha512-9UPJ1UTvKayuQfVv2IQ3k7tCQC/fboDyIK62i99dAQIyHKaBsNdTpwHLgKJ6guRWxRtC9H+138UwpaGuQO9uWQ==", "dev": true, "requires": { @@ -42001,80 +42406,159 @@ "socket.io-parser": "~3.4.0" }, "dependencies": { + "component-emitter": { + "version": "1.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true + }, "debug": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } + }, + "engine.io-client": { + "version": "3.5.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/engine.io-client/-/engine.io-client-3.5.3.tgz", + "integrity": "sha512-qsgyc/CEhJ6cgMUwxRRtOndGVhIu5hpL5tR4umSpmX/MvkFoIxUTM7oFMDQumHNzlNLwSVy6qhstFPoWTf7dOw==", + "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": "~7.4.2", + "xmlhttprequest-ssl": "~1.6.2", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==", + "dev": true + }, + "socket.io-client": { + "version": "2.4.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socket.io-client/-/socket.io-client-2.4.0.tgz", + "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "engine.io-client": "~3.5.0", + "has-binary2": "~1.0.2", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "socket.io-parser": { + "version": "3.3.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socket.io-parser/-/socket.io-parser-3.3.3.tgz", + "integrity": "sha512-qOg87q1PMWWTeO01768Yh9ogn7chB9zkKtQnya41Y355S0UmpXgpcrFwAgjYJxu9BdKug5r5e9YtVSeWhKBUZg==", + "dev": true, + "requires": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + } + } + }, + "ws": { + "version": "7.4.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, + "requires": {} + }, + "xmlhttprequest-ssl": { + "version": "1.6.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz", + "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==", + "dev": true } } }, "socket.io-adapter": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", "dev": true }, "socket.io-client": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", - "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", + "version": "4.7.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socket.io-client/-/socket.io-client-4.7.2.tgz", + "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==", "dev": true, "requires": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "engine.io-client": "~3.5.0", - "has-binary2": "~1.0.2", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.5.2", + "socket.io-parser": "~4.2.4" }, "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" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "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.3.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", - "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", + "version": "4.2.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, "requires": { - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "isarray": "2.0.1" + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" } } } }, "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==", + "version": "3.4.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socket.io-parser/-/socket.io-parser-3.4.3.tgz", + "integrity": "sha512-1rE4dZN3kCI/E5wixd393hmbqa78vVpkKmnEJhLeWoS/C5hbFYAbcSfnWoaVH43u9ToUVtzKjguxEZq+1XZfCQ==", "dev": true, "requires": { "component-emitter": "1.2.1", @@ -42082,15 +42566,9 @@ "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { @@ -42099,48 +42577,39 @@ }, "isarray": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==", "dev": true } } }, "sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", - "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "version": "0.3.24", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "requires": { "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", + "uuid": "^8.3.2", "websocket-driver": "^0.7.4" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "sockjs-client": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.2.tgz", - "integrity": "sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ==", + "version": "1.6.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sockjs-client/-/sockjs-client-1.6.1.tgz", + "integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==", "dev": true, "requires": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", + "debug": "^3.2.7", + "eventsource": "^2.0.2", + "faye-websocket": "^0.11.4", "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.3" + "url-parse": "^1.5.10" }, "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { @@ -42150,35 +42619,46 @@ } }, "socks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "version": "2.7.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" } }, "socks-proxy-agent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.0.tgz", - "integrity": "sha512-57e7lwCN4Tzt3mXz25VxOErJKXlPfXmkMLnk310v/jwW20jWRVcgsOit+xNkN3eIEdB47GwnfAEBLacZ/wVIKg==", + "version": "6.2.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", "dev": true, "requires": { "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + } } }, "sort-object-keys": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sort-object-keys/-/sort-object-keys-1.1.3.tgz", "integrity": "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==", "dev": true }, "sort-package-json": { "version": "1.50.0", - "resolved": "https://registry.npmjs.org/sort-package-json/-/sort-package-json-1.50.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sort-package-json/-/sort-package-json-1.50.0.tgz", "integrity": "sha512-qZpqhMU9XTntebgAgc4hv/D6Fzhh7kFnwvV6a7+q8y8J5JoaDqPYQnvXPf7BBqG95tdE8X6JVNo7/jDzcbdfUg==", "dev": true, "requires": { @@ -42192,7 +42672,7 @@ "dependencies": { "globby": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/globby/-/globby-10.0.0.tgz", "integrity": "sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==", "dev": true, "requires": { @@ -42207,34 +42687,34 @@ } }, "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true } } }, "source-list-map": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true }, "source-map-js": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map-js/-/source-map-js-0.6.2.tgz", "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", "dev": true }, "source-map-loader": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map-loader/-/source-map-loader-3.0.0.tgz", "integrity": "sha512-GKGWqWvYr04M7tn8dryIWvb0s8YM41z82iQv01yBtIylgxax0CwvSy6gc2Y02iuXwEfGWRlMicH0nvms9UZphw==", "dev": true, "requires": { @@ -42245,7 +42725,7 @@ "dependencies": { "iconv-lite": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "requires": { @@ -42256,7 +42736,7 @@ }, "source-map-resolve": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map-resolve/-/source-map-resolve-0.6.0.tgz", "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", "dev": true, "requires": { @@ -42266,7 +42746,7 @@ }, "source-map-support": { "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "requires": { @@ -42276,7 +42756,7 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -42284,25 +42764,25 @@ }, "source-map-url": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "dev": true }, "sourcemap-codec": { "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" }, "spawn-command": { "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", "dev": true }, "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -42311,13 +42791,13 @@ }, "spdx-exceptions": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { @@ -42326,14 +42806,14 @@ } }, "spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "version": "3.0.16", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", "dev": true }, "spdy": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, "requires": { @@ -42346,7 +42826,7 @@ }, "spdy-transport": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, "requires": { @@ -42360,7 +42840,7 @@ }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { @@ -42369,14 +42849,14 @@ }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "version": "1.18.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, "requires": { "asn1": "~0.2.3", @@ -42392,7 +42872,7 @@ }, "ssri": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, "requires": { @@ -42401,20 +42881,20 @@ }, "stable": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", "dev": true }, "stack-trace": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", "dev": true }, "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "version": "2.0.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "requires": { "escape-string-regexp": "^2.0.0" @@ -42422,7 +42902,7 @@ "dependencies": { "escape-string-regexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true } @@ -42430,8 +42910,8 @@ }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", "dev": true, "requires": { "define-property": "^0.2.5", @@ -42440,82 +42920,35 @@ "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, - "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-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-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" } - }, - "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 } } }, "statuses": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg==", "dev": true }, "stream-throttle": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", - "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", "dev": true, "requires": { "commander": "^2.2.0", @@ -42524,7 +42957,7 @@ "dependencies": { "commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true } @@ -42532,7 +42965,7 @@ }, "streamfilter": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/streamfilter/-/streamfilter-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/streamfilter/-/streamfilter-3.0.0.tgz", "integrity": "sha512-kvKNfXCmUyC8lAXSSHCIXBUlo/lhsLcCU/OmzACZYpRUdtKIH68xYhm/+HI15jFJYtNJGYtCgn2wmIiExY1VwA==", "dev": true, "requires": { @@ -42541,24 +42974,16 @@ }, "string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "requires": { "safe-buffer": "~5.2.0" - }, - "dependencies": { - "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 - } } }, "string-length": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "requires": { @@ -42568,7 +42993,7 @@ }, "string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", @@ -42578,7 +43003,7 @@ }, "strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { "ansi-regex": "^5.0.1" @@ -42586,14 +43011,14 @@ }, "strip-bom": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true }, "strip-bom-buf": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", - "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", + "integrity": "sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==", "dev": true, "requires": { "is-utf8": "^0.2.1" @@ -42601,8 +43026,8 @@ }, "strip-bom-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", - "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "integrity": "sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==", "dev": true, "requires": { "first-chunk-stream": "^2.0.0", @@ -42611,8 +43036,8 @@ "dependencies": { "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", "dev": true, "requires": { "is-utf8": "^0.2.0" @@ -42622,42 +43047,42 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", "dev": true }, "strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, "strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "style-loader": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/style-loader/-/style-loader-3.2.1.tgz", "integrity": "sha512-1k9ZosJCRFaRbY6hH49JFlRB0fVSbmnyq1iTPjNxUmGVjBNEmwrrHPenhlp+Lgo51BojHSf6pl2FcqYaN3PfVg==", "dev": true, "requires": {} }, "stylehacks": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz", - "integrity": "sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==", + "version": "5.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", "dev": true, "requires": { - "browserslist": "^4.16.0", + "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" } }, "stylus": { "version": "0.54.8", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stylus/-/stylus-0.54.8.tgz", "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", "dev": true, "requires": { @@ -42673,7 +43098,7 @@ "dependencies": { "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { @@ -42682,27 +43107,27 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "sax": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } }, "stylus-loader": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/stylus-loader/-/stylus-loader-6.1.0.tgz", "integrity": "sha512-qKO34QCsOtSJrXxQQmXsPeaVHh6hMumBAFIoJTcsSr2VzrA6o/CW9HCGR8spCjzJhN8oKQHdj/Ytx0wwXyElkw==", "dev": true, "requires": { @@ -42713,16 +43138,16 @@ }, "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { "has-flag": "^3.0.0" } }, "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "version": "2.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", "dev": true, "requires": { "has-flag": "^4.0.0", @@ -42731,13 +43156,13 @@ "dependencies": { "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -42747,9 +43172,9 @@ } }, "svgo": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.7.0.tgz", - "integrity": "sha512-aDLsGkre4fTDCWvolyW+fs8ZJFABpzLXbtdK1y71CKnHzAnpDxKXPj2mNKj+pyOXUCzFHzuxRJ94XOFygOWV3w==", + "version": "2.8.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", "dev": true, "requires": { "@trysound/sax": "0.2.0", @@ -42757,43 +43182,48 @@ "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", - "nanocolors": "^0.1.12", + "picocolors": "^1.0.0", "stable": "^0.1.8" }, "dependencies": { "commander": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true } } }, "swagger-ui-dist": { "version": "3.52.2", - "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.52.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/swagger-ui-dist/-/swagger-ui-dist-3.52.2.tgz", "integrity": "sha512-k6QsJqDxfkMlelFUobIKRggR9y5BPvhr/ok9IUPlpnAQsytCx8SSKtNOFkf+W5yZi1Zh6X8GAz2picmmvZBSIw==" }, "symbol-observable": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/symbol-observable/-/symbol-observable-4.0.0.tgz", "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", "dev": true }, "symbol-tree": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, "table": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", - "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==", + "version": "6.8.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", "dev": true, "requires": { "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.3", @@ -42802,27 +43232,41 @@ }, "tapable": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "version": "6.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "5.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "terminal-link": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/terminal-link/-/terminal-link-2.1.1.tgz", "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", "dev": true, "requires": { @@ -42832,7 +43276,7 @@ }, "terser": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/terser/-/terser-5.7.1.tgz", "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", "dev": true, "requires": { @@ -42843,7 +43287,7 @@ "dependencies": { "commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true } @@ -42851,7 +43295,7 @@ }, "terser-webpack-plugin": { "version": "5.1.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==", "dev": true, "requires": { @@ -42865,7 +43309,7 @@ "dependencies": { "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { @@ -42877,21 +43321,21 @@ }, "ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "requires": {} }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -42901,7 +43345,7 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -42909,7 +43353,7 @@ }, "test-exclude": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "requires": { @@ -42920,25 +43364,25 @@ }, "text-hex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/text-hex/-/text-hex-1.0.0.tgz", "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", "dev": true }, "text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "textextensions": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-5.14.0.tgz", - "integrity": "sha512-4cAYwNFNYlIAHBUo7p6zw8POUvWbZor+/R0Tanv+rIhsauEyV9QSrEXL40pI+GfTQxKX8k6Tyw6CmdSDSmASrg==", + "version": "5.16.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/textextensions/-/textextensions-5.16.0.tgz", + "integrity": "sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==", "dev": true }, "tfunk": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tfunk/-/tfunk-4.0.0.tgz", "integrity": "sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ==", "dev": true, "requires": { @@ -42948,20 +43392,20 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, "requires": { "ansi-styles": "^2.2.1", @@ -42973,8 +43417,8 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -42982,15 +43426,15 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true } } }, "then-request": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/then-request/-/then-request-6.0.2.tgz", "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", "dev": true, "requires": { @@ -43009,13 +43453,13 @@ "dependencies": { "@types/node": { "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/node/-/node-8.10.66.tgz", "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", "dev": true }, "form-data": { "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/form-data/-/form-data-2.5.1.tgz", "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", "dev": true, "requires": { @@ -43025,9 +43469,9 @@ } }, "qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "version": "6.11.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dev": true, "requires": { "side-channel": "^1.0.4" @@ -43036,32 +43480,26 @@ } }, "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "version": "6.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", "dev": true }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "thunky": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { @@ -43070,14 +43508,14 @@ }, "tmpl": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, "to-absolute-glob": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", "dev": true, "requires": { "is-absolute": "^1.0.0", @@ -43086,19 +43524,19 @@ }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==", "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=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -43106,8 +43544,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -43117,7 +43555,7 @@ }, "to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { @@ -43129,38 +43567,47 @@ }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "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==", + "version": "1.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true }, "totalist": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/totalist/-/totalist-1.1.0.tgz", "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", "dev": true }, "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "version": "4.1.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, "requires": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.1.2" + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "dependencies": { + "universalify": { + "version": "0.2.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true + } } }, "tr46": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tr46/-/tr46-2.1.0.tgz", "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", "dev": true, "requires": { @@ -43169,25 +43616,25 @@ }, "tree-kill": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true }, "treeverse": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-1.0.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/treeverse/-/treeverse-1.0.4.tgz", "integrity": "sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==", "dev": true }, "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", + "version": "1.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", "dev": true }, "ts-jest": { "version": "27.0.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ts-jest/-/ts-jest-27.0.5.tgz", "integrity": "sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w==", "dev": true, "requires": { @@ -43202,21 +43649,21 @@ } }, "tsconfig-paths": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", - "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", + "version": "3.15.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "requires": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", + "json5": "^1.0.2", + "minimist": "^1.2.6", "strip-bom": "^3.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==", + "version": "1.0.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "requires": { "minimist": "^1.2.0" @@ -43224,21 +43671,21 @@ }, "strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true } } }, "tslib": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tslib/-/tslib-2.3.1.tgz", "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, "requires": { "safe-buffer": "^5.0.1" @@ -43246,13 +43693,13 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", "dev": true }, "type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { @@ -43261,19 +43708,19 @@ }, "type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, "type-fest": { "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true }, "type-is": { "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "requires": { @@ -43283,13 +43730,13 @@ }, "typedarray": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, "typedarray-to-buffer": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "requires": { @@ -43298,30 +43745,30 @@ }, "typescript": { "version": "4.3.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/typescript/-/typescript-4.3.5.tgz", "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==" }, "ua-parser-js": { - "version": "0.7.28", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", - "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==", + "version": "0.7.37", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", "dev": true }, "unc-path-regex": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", "dev": true }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true }, "unicode-match-property-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "requires": { @@ -43330,20 +43777,20 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true }, "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "version": "2.1.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true }, "union-value": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "requires": { @@ -43355,27 +43802,21 @@ "dependencies": { "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true } } }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", "dev": true }, "unique-filename": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "requires": { @@ -43384,7 +43825,7 @@ }, "unique-slug": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, "requires": { @@ -43392,27 +43833,27 @@ } }, "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "version": "6.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", "dev": true }, "universalify": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", "dev": true, "requires": { "has-value": "^0.3.1", @@ -43421,8 +43862,8 @@ "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", "dev": true, "requires": { "get-value": "^2.0.3", @@ -43432,8 +43873,8 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", "dev": true, "requires": { "isarray": "1.0.0" @@ -43443,27 +43884,43 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", "dev": true } } }, "untildify": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/untildify/-/untildify-4.0.0.tgz", "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true }, "upath": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true }, + "update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "dependencies": { + "picocolors": { + "version": "1.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + } + } + }, "uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { @@ -43472,14 +43929,14 @@ }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", "dev": true }, "url": { "version": "0.10.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/url/-/url-0.10.3.tgz", + "integrity": "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==", "dev": true, "requires": { "punycode": "1.3.2", @@ -43488,16 +43945,16 @@ "dependencies": { "punycode": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", "dev": true } } }, "url-parse": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", + "version": "1.5.10", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, "requires": { "querystringify": "^2.1.1", @@ -43506,38 +43963,44 @@ }, "use": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "utils-merge": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true }, "uuid": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true }, "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "version": "2.4.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", + "dev": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, "v8-to-istanbul": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", - "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", + "version": "8.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -43547,7 +44010,7 @@ }, "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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { @@ -43557,8 +44020,8 @@ }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", "dev": true, "requires": { "builtins": "^1.0.3" @@ -43566,20 +44029,14 @@ }, "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==", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true }, "verror": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, "requires": { "assert-plus": "^1.0.0", @@ -43589,7 +44046,7 @@ }, "vinyl": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/vinyl/-/vinyl-2.2.1.tgz", "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", "dev": true, "requires": { @@ -43603,16 +44060,16 @@ "dependencies": { "clone": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true } } }, "vinyl-file": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz", - "integrity": "sha1-sQTZ5ECf+jJfqt1SBkLQo7SIs2U=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/vinyl-file/-/vinyl-file-3.0.0.tgz", + "integrity": "sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -43624,7 +44081,7 @@ }, "w3c-hr-time": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", "dev": true, "requires": { @@ -43633,7 +44090,7 @@ }, "w3c-xmlserializer": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", "dev": true, "requires": { @@ -43642,7 +44099,7 @@ }, "wait-on": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wait-on/-/wait-on-6.0.0.tgz", "integrity": "sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw==", "dev": true, "requires": { @@ -43654,41 +44111,35 @@ }, "dependencies": { "rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "version": "7.8.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "requires": { - "tslib": "~2.1.0" + "tslib": "^2.1.0" } - }, - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true } } }, "walk-up-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/walk-up-path/-/walk-up-path-1.0.0.tgz", "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==", "dev": true }, "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "version": "1.0.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, "requires": { - "makeerror": "1.0.x" + "makeerror": "1.0.12" } }, "watchpack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", - "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", + "version": "2.4.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", @@ -43697,7 +44148,7 @@ }, "wbuf": { "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { @@ -43706,8 +44157,8 @@ }, "wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, "requires": { "defaults": "^1.0.3" @@ -43715,13 +44166,13 @@ }, "webidl-conversions": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webidl-conversions/-/webidl-conversions-6.1.0.tgz", "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", "dev": true }, "webpack": { "version": "5.50.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.50.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack/-/webpack-5.50.0.tgz", "integrity": "sha512-hqxI7t/KVygs0WRv/kTgUW8Kl3YC81uyWQSo/7WUs5LsuRw0htH/fCwbVBGCuiX/t4s7qzjXFcf41O8Reiypag==", "dev": true, "requires": { @@ -43751,22 +44202,28 @@ "webpack-sources": "^3.2.0" }, "dependencies": { + "@types/estree": { + "version": "0.0.50", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, "acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "version": "8.11.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true }, "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "version": "1.9.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true, "requires": {} }, "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { @@ -43778,27 +44235,27 @@ }, "ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "requires": {} }, "events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -43807,16 +44264,16 @@ } }, "webpack-sources": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.1.tgz", - "integrity": "sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA==", + "version": "3.2.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true } } }, "webpack-bundle-analyzer": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz", "integrity": "sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ==", "dev": true, "requires": { @@ -43832,20 +44289,20 @@ }, "dependencies": { "acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "version": "8.11.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true }, "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/acorn-walk/-/acorn-walk-8.3.1.tgz", + "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", "dev": true }, "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -43854,7 +44311,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -43864,7 +44321,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -43873,25 +44330,25 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "commander": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-6.2.1.tgz", "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true }, "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -43902,7 +44359,7 @@ }, "webpack-dev-middleware": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-dev-middleware/-/webpack-dev-middleware-5.0.0.tgz", "integrity": "sha512-9zng2Z60pm6A98YoRcA0wSxw1EYn7B7y5owX/Tckyt9KGyULTkLtiavjaXlWqOMkM0YtqGgL3PvMOFgyFLq8vw==", "dev": true, "requires": { @@ -43916,7 +44373,7 @@ "dependencies": { "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { @@ -43928,20 +44385,20 @@ }, "ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "requires": {} }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "mem": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mem/-/mem-8.1.1.tgz", "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", "dev": true, "requires": { @@ -43950,9 +44407,9 @@ } }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -43964,7 +44421,7 @@ }, "webpack-dev-server": { "version": "3.11.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", "dev": true, "requires": { @@ -44005,7 +44462,7 @@ "dependencies": { "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { @@ -44017,20 +44474,20 @@ }, "ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "requires": {} }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true }, "anymatch": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { @@ -44040,8 +44497,8 @@ "dependencies": { "normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, "requires": { "remove-trailing-separator": "^1.0.1" @@ -44051,13 +44508,13 @@ }, "binary-extensions": { "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/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", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { @@ -44075,8 +44532,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -44086,7 +44543,7 @@ }, "chokidar": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { @@ -44106,7 +44563,7 @@ }, "cliui": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { @@ -44116,14 +44573,14 @@ }, "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==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { @@ -44134,14 +44591,14 @@ }, "emoji-regex": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -44152,8 +44609,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -44163,7 +44620,7 @@ }, "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { @@ -44172,7 +44629,7 @@ }, "fsevents": { "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, "optional": true, @@ -44183,8 +44640,8 @@ }, "glob-parent": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", "dev": true, "requires": { "is-glob": "^3.1.0", @@ -44193,8 +44650,8 @@ "dependencies": { "is-glob": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", "dev": true, "requires": { "is-extglob": "^2.1.0" @@ -44204,7 +44661,7 @@ }, "import-local": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/import-local/-/import-local-2.0.0.tgz", "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", "dev": true, "requires": { @@ -44212,10 +44669,16 @@ "resolve-cwd": "^2.0.0" } }, + "ip": { + "version": "1.1.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", "dev": true, "requires": { "binary-extensions": "^1.0.0" @@ -44223,20 +44686,20 @@ }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -44244,8 +44707,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -44255,19 +44718,19 @@ }, "is-wsl": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", "dev": true }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { @@ -44277,7 +44740,7 @@ }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { @@ -44297,23 +44760,23 @@ } }, "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "version": "2.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true }, "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "requires": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" } }, "opn": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/opn/-/opn-5.5.0.tgz", "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", "dev": true, "requires": { @@ -44322,7 +44785,7 @@ }, "p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { @@ -44331,7 +44794,7 @@ }, "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { @@ -44340,13 +44803,13 @@ }, "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true }, "pkg-dir": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "requires": { @@ -44354,15 +44817,24 @@ } }, "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "version": "1.4.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, + "qs": { + "version": "6.11.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, "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==", + "version": "2.3.8", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -44376,7 +44848,7 @@ }, "readdirp": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "requires": { @@ -44387,8 +44859,8 @@ }, "resolve-cwd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", "dev": true, "requires": { "resolve-from": "^3.0.0" @@ -44396,13 +44868,19 @@ }, "resolve-from": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "schema-utils": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { @@ -44412,14 +44890,14 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { @@ -44428,7 +44906,7 @@ }, "string-width": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { @@ -44438,14 +44916,14 @@ }, "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==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { @@ -44456,8 +44934,8 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -44465,7 +44943,7 @@ }, "supports-color": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { @@ -44474,8 +44952,8 @@ }, "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=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, "requires": { "is-number": "^3.0.0", @@ -44483,18 +44961,18 @@ } }, "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "version": "0.11.3", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", "dev": true, "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "punycode": "^1.4.1", + "qs": "^6.11.2" } }, "webpack-dev-middleware": { "version": "3.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", "dev": true, "requires": { @@ -44507,7 +44985,7 @@ }, "wrap-ansi": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { @@ -44517,14 +44995,14 @@ }, "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==", + "version": "4.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { @@ -44535,7 +45013,7 @@ }, "ws": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ws/-/ws-6.2.2.tgz", "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", "dev": true, "requires": { @@ -44544,13 +45022,13 @@ }, "y18n": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yargs": { "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { @@ -44568,7 +45046,7 @@ }, "yargs-parser": { "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { @@ -44580,7 +45058,7 @@ }, "webpack-log": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-log/-/webpack-log-2.0.0.tgz", "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", "dev": true, "requires": { @@ -44590,13 +45068,13 @@ "dependencies": { "ansi-colors": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-colors/-/ansi-colors-3.2.4.tgz", "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true }, "uuid": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true } @@ -44604,7 +45082,7 @@ }, "webpack-merge": { "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-merge/-/webpack-merge-5.8.0.tgz", "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "requires": { @@ -44614,7 +45092,7 @@ }, "webpack-notifier": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.13.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-notifier/-/webpack-notifier-1.13.0.tgz", "integrity": "sha512-QLk6l/TZKGhyN6Hd1zobaiYno7S9YPX3wH86+YOSufHes77SegGhnGdj+4vrLDFK5A4ZKoQD5GRXXFnM0h0N8A==", "dev": true, "requires": { @@ -44624,7 +45102,7 @@ }, "webpack-sources": { "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dev": true, "requires": { @@ -44634,7 +45112,7 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -44642,7 +45120,7 @@ }, "webpack-subresource-integrity": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.2.tgz", "integrity": "sha512-GBWYBoyalbo5YClwWop9qe6Zclp8CIXYGIz12OPclJhIrSplDxs1Ls1JDMH8xBPPrg1T6ISaTW9Y6zOrwEiAzw==", "dev": true, "requires": { @@ -44651,7 +45129,7 @@ }, "websocket-driver": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, "requires": { @@ -44662,13 +45140,13 @@ }, "websocket-extensions": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, "whatwg-encoding": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "dev": true, "requires": { @@ -44677,13 +45155,13 @@ }, "whatwg-mimetype": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", "dev": true }, "whatwg-url": { "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/whatwg-url/-/whatwg-url-8.7.0.tgz", "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", "dev": true, "requires": { @@ -44694,7 +45172,7 @@ }, "which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { @@ -44702,14 +45180,14 @@ } }, "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "dev": true }, "which-pm": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/which-pm/-/which-pm-2.0.0.tgz", "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", "dev": true, "requires": { @@ -44719,7 +45197,7 @@ }, "wide-align": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, "requires": { @@ -44727,14 +45205,14 @@ } }, "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "version": "2.0.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true }, "windows-release": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/windows-release/-/windows-release-4.0.0.tgz", "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", "dev": true, "requires": { @@ -44743,7 +45221,7 @@ "dependencies": { "execa": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/execa/-/execa-4.1.0.tgz", "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "requires": { @@ -44760,7 +45238,7 @@ }, "get-stream": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { @@ -44769,7 +45247,7 @@ }, "human-signals": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true } @@ -44777,7 +45255,7 @@ }, "winston": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/winston/-/winston-3.3.3.tgz", "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", "dev": true, "requires": { @@ -44793,58 +45271,27 @@ }, "dependencies": { "async": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", - "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==", + "version": "3.2.5", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true } } }, "winston-transport": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", - "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", + "version": "4.6.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/winston-transport/-/winston-transport-4.6.0.tgz", + "integrity": "sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==", "dev": true, "requires": { - "readable-stream": "^2.3.7", - "triple-beam": "^1.2.0" - }, - "dependencies": { - "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" - } - }, - "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" - } - } + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, "wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "requires": { "ansi-styles": "^4.0.0", @@ -44854,7 +45301,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { "color-convert": "^2.0.1" @@ -44862,7 +45309,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { "color-name": "~1.1.4" @@ -44870,19 +45317,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" } } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "write-file-atomic": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { @@ -44893,27 +45340,27 @@ } }, "ws": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", + "version": "7.5.9", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "dev": true, "requires": {} }, "xml": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", "dev": true }, "xml-name-validator": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, "xml2js": { "version": "0.4.19", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xml2js/-/xml2js-0.4.19.tgz", "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", "dev": true, "requires": { @@ -44923,66 +45370,74 @@ }, "xmlbuilder": { "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==", "dev": true }, "xmlchars": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, "xmlhttprequest-ssl": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz", - "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==", + "version": "2.0.0", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", "dev": true }, "y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" }, "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "version": "3.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "yaml": { "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true }, "yargs": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.2.1.tgz", - "integrity": "sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==", + "version": "17.7.2", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "requires": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" + }, + "dependencies": { + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + } } }, "yargs-parser": { "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true }, "yeast": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==", "dev": true }, "yeoman-environment": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.6.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yeoman-environment/-/yeoman-environment-3.6.0.tgz", "integrity": "sha512-X16N9lhzRdUKFT8MZrpwjLDKsdgAUqh4VPR2wAXeAqjJJaUxYBxCQGFxtZVTf3vbyNuIHXPunwOLtK60bpapbg==", "dev": true, "requires": { @@ -45024,7 +45479,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -45033,7 +45488,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -45043,7 +45498,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -45052,25 +45507,25 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "commander": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/commander/-/commander-7.1.0.tgz", "integrity": "sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==", "dev": true }, "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, "find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { @@ -45080,13 +45535,13 @@ }, "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { @@ -45095,7 +45550,7 @@ }, "p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { @@ -45104,7 +45559,7 @@ }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -45115,7 +45570,7 @@ }, "yeoman-generator": { "version": "5.4.2", - "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-5.4.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yeoman-generator/-/yeoman-generator-5.4.2.tgz", "integrity": "sha512-xgS3A4r5VoEYq3vPdk1fWPVZ30y5NHlT2hn0OEyhKG79xojCtPkPkfWcKQamgvC9QLhaotVGvambBxwxwBeDTg==", "dev": true, "requires": { @@ -45135,7 +45590,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -45144,7 +45599,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -45154,7 +45609,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -45163,13 +45618,13 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "execa": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/execa/-/execa-4.1.0.tgz", "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "requires": { @@ -45186,7 +45641,7 @@ }, "get-stream": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { @@ -45195,19 +45650,19 @@ }, "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "human-signals": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -45218,19 +45673,19 @@ }, "yn": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true }, "yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true }, "zone.js": { "version": "0.11.4", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.4.tgz", + "resolved": "https://npmjs.cache.192.168.56.1.nip.io/zone.js/-/zone.js-0.11.4.tgz", "integrity": "sha512-DDh2Ab+A/B+9mJyajPjHFPWfYU1H+pdun4wnnk0OcQTNjem1XQSZ2CDW+rfZEUDjv5M19SBqAkjZi0x5wuB5Qw==", "requires": { "tslib": "^2.0.0" diff --git a/git/sh-gateway/package.json b/git/sh-gateway/package.json index e800077277ec3e97936045caa829937ecf6db2f9..aac12ca1520418d83005b04ad7c3f0649312a5e7 100644 --- a/git/sh-gateway/package.json +++ b/git/sh-gateway/package.json @@ -1,8 +1,8 @@ { - "name": "self-healing-gateway", + "name": "sh-gateway", "version": "0.0.1-SNAPSHOT", "private": true, - "description": "Description for selfHealingGateway", + "description": "Description for shGateway", "license": "UNLICENSED", "scripts": { "prettier:check": "prettier --check \"{,src/**/,webpack/}*.{md,json,yml,html,cjs,mjs,js,ts,tsx,css,scss,java}\"", @@ -32,7 +32,7 @@ "docker:db:down": "docker-compose -f src/main/docker/mysql.yml down -v --remove-orphans", "docker:jhipster-registry:up": "docker-compose -f src/main/docker/jhipster-registry.yml up -d", "docker:jhipster-registry:down": "docker-compose -f src/main/docker/jhipster-registry.yml down -v --remove-orphans", - "docker:app:up": "docker-compose -f src/main/docker/app.yml up -d self-healing-gateway-app", + "docker:app:up": "docker-compose -f src/main/docker/app.yml up -d sh-gateway-app", "docker:others:await": "echo \"Waiting for jhipster-registry to start\" && wait-on http-get://localhost:8761/management/health && echo \"jhipster-registry started\"", "predocker:others:up": "", "docker:others:up": "npm run docker:jhipster-registry:up", @@ -84,6 +84,8 @@ "@fortawesome/fontawesome-svg-core": "1.2.36", "@fortawesome/free-solid-svg-icons": "5.15.4", "@ng-bootstrap/ng-bootstrap": "10.0.0", + "@ngx-translate/core": "13.0.0", + "@ngx-translate/http-loader": "6.0.0", "bootstrap": "4.6.0", "dayjs": "1.10.7", "ngx-infinite-scroll": "10.0.1", @@ -112,12 +114,14 @@ "eslint": "7.32.0", "eslint-config-prettier": "8.3.0", "eslint-webpack-plugin": "3.0.1", + "folder-hash": "4.0.1", "generator-jhipster": "7.2.0", "jest": "27.2.0", "jest-date-mock": "1.0.8", "jest-junit": "12.2.0", "jest-preset-angular": "9.0.7", "jest-sonar-reporter": "2.0.0", + "merge-jsons-webpack-plugin": "1.0.21", "prettier": "2.4.0", "prettier-plugin-java": "1.4.0", "prettier-plugin-packagejson": "2.2.11", diff --git a/git/sh-gateway/pom.xml b/git/sh-gateway/pom.xml index 68a535153193bc3e3e53a9e029e237b5cf613376..78d7cd77a2c47b25804bb63f334e3dd3aa19b954 100644 --- a/git/sh-gateway/pom.xml +++ b/git/sh-gateway/pom.xml @@ -6,10 +6,10 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.piacere.selfhealing.gateway</groupId> - <artifactId>self-healing-gateway</artifactId> + <artifactId>sh-gateway</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> - <name>Self Healing Gateway</name> + <name>Sh Gateway</name> <repositories> <!-- jhipster-needle-maven-repository --> @@ -33,7 +33,7 @@ <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target> - <start-class>com.piacere.selfhealing.gateway.SelfHealingGatewayApp</start-class> + <start-class>com.piacere.selfhealing.gateway.ShGatewayApp</start-class> <argLine>-Djava.security.egd=file:/dev/./urandom -Xmx256m</argLine> <m2e.apt.activation>jdt_apt</m2e.apt.activation> <run.addResources>false</run.addResources> @@ -660,7 +660,7 @@ </platforms> </from> <to> - <image>selfhealinggateway:latest</image> + <image>shgateway:latest</image> </to> <container> <entrypoint> diff --git a/git/sh-gateway/selfHealingService-application.jdl b/git/sh-gateway/selfHealingService-application.jdl new file mode 100644 index 0000000000000000000000000000000000000000..dc1481522fa12961a3a47437252ba7a19c71d39e --- /dev/null +++ b/git/sh-gateway/selfHealingService-application.jdl @@ -0,0 +1,33 @@ +// https://www.jhipster.tech/jdl/applications#available-application-configuration-options +application { + config { + applicationType gateway + authenticationType jwt + baseName shGateway + buildTool maven + cacheProvider no + clientFramework angularX + clientPackageManager npm + clientTheme none + databaseType sql + devDatabaseType mysql + dtoSuffix DTO + jhiPrefix jhi + jwtSecretKey "MDBhMjI4YTczOWZlZjFhOTMzMDMyNmI1OGFiODViZjFkMzlkMzI1ZDJjZmNiOGM1YmVlNDJjNDhkNDQ3Mzk4YjEyZmIxZmYzODRhMWZmMDE0MDZlYjViOTNlNjk1Y2I1M2ZjYWQ3NmJkOGZlOWVhNDRjZTZkODgyZDNlOWRjZDI=" + languages [en] + messageBroker false + nativeLanguage en + packageName com.piacere.selfhealing.gateway + prodDatabaseType mysql + reactive true + searchEngine false + serverPort 8080 + serviceDiscoveryType eureka + skipClient false + skipServer false + skipUserManagement false + testFrameworks [] + websocket false + } + entities * +} diff --git a/git/sh-gateway/selfHealingService-entities.jdl b/git/sh-gateway/selfHealingService-entities.jdl new file mode 100644 index 0000000000000000000000000000000000000000..b4d1efb3105a8e892b9e226345213e8747a2beaf --- /dev/null +++ b/git/sh-gateway/selfHealingService-entities.jdl @@ -0,0 +1,72 @@ +enum Status { + PENDING("Pending") + PROCESSED("Processed") + IGNORED("Ignored") + ERROR("Error") +} +/** +* Messages received definition https://www.jhipster.tech/jdl/entities-fields#field-types-and-validations +* +* @author Tecnalia +*/ + +entity SelfHealingMessage { + timestamp Instant /** message timestamp */ + origin String required /** message origin component */ + deploymentId String /** id of app related to message */ + status Status /** status of the message */ + error TextBlob /** error description if status error */ +} + +/** +* type of events managed by self-healing +* +* @author Tecnalia +*/ +entity EventType { + code String required unique /** event type code */ + description String /** event type description */ +} + +/** +* strategys managed by self-healing +* +* @author Tecnalia +*/ +entity Strategy { + code String required unique /** strategy code */ + description String /** strategy description */ + configuration TextBlob /** business process modelling annotation to propose*/ +} + +/** +* deployment of self-healing +* +* @author Tecnalia +*/ +entity Deployment { + deploymentId String required unique /** deployment id */ + bundle Blob required /** information about the deployment zip bundle */ +} + +/** +* strategyApplication of self-healing +* +* @author Tecnalia +*/ +entity StrategyApplication { + timestamp Instant /** strategyApplication timestamp */ + summary TextBlob /** json with summary of strategyApplication */ + bundle Blob /** optional bundle with strategyApplication resources */ +} + +relationship ManyToOne { + SelfHealingMessage{eventType(code)} to EventType + StrategyApplication{strategy(code)} to Strategy + StrategyApplication{deployment(deploymentId)} to Deployment + EventType{strategy(code)} to Strategy + EventType{deployment(deploymentId)} to Deployment + Strategy{deployment(deploymentId)} to Deployment +} + +microservice * with shBackend diff --git a/git/sh-gateway/selfHealingService-entities.png b/git/sh-gateway/selfHealingService-entities.png new file mode 100644 index 0000000000000000000000000000000000000000..f8952f76e6392ab58a69fe525850ea9875c1df53 Binary files /dev/null and b/git/sh-gateway/selfHealingService-entities.png differ diff --git a/git/sh-gateway/selfHealingService.jdl b/git/sh-gateway/selfHealingService.jdl deleted file mode 100644 index f330f019825489f6b82bfe35a571a056b23cb178..0000000000000000000000000000000000000000 --- a/git/sh-gateway/selfHealingService.jdl +++ /dev/null @@ -1,50 +0,0 @@ -enum Status { - PENDING("Pending") - PROCESSED("Processed") - ERROR("Error") -} -/** -* Messages received definition -* -* @author Tecnalia -*/ -entity SelfHealingMessage { - origin String required /** message origin component */ - applicationId String /** id of app related to message */ - timestamp Instant /** message timestamp */ - status Status /** status of the message */ - error String /** error description if status error */ -} - -/** -* type of events managed by self-healing -* -* @author Tecnalia -*/ -entity EventType { - code String required /** event type code */ - description String /** event type description */ -} - -/** -* strategys managed by self-healing -* -* @author Tecnalia -*/ -entity Strategy { - code String required /** strategy code */ - description String /** strategy description */ - bpmn String /** business process modelling annotation to propose*/ -} - -relationship ManyToOne { - SelfHealingMessage{eventType(code)} to EventType -} - -relationship OneToMany { - Strategy{eventType(code)} to EventType{strategy(code)} -} - -skipServer * -microservice SelfHealingMessage, EventType, Strategy with shBackend -clientRootFolder SelfHealingMessage with shBackend diff --git a/git/sh-gateway/selfHealingService.png b/git/sh-gateway/selfHealingService.png deleted file mode 100644 index 8c1ca0f975919a624a05bb470a85c913223146db..0000000000000000000000000000000000000000 Binary files a/git/sh-gateway/selfHealingService.png and /dev/null differ diff --git a/git/sh-gateway/sonar-project.properties b/git/sh-gateway/sonar-project.properties index cedc728cc499642bbc2aa0617bd1e9eace85e304..a227b95a4e221758788209aeecc93bffa92c6654 100644 --- a/git/sh-gateway/sonar-project.properties +++ b/git/sh-gateway/sonar-project.properties @@ -1,5 +1,5 @@ -sonar.projectKey=selfHealingGateway -sonar.projectName=selfHealingGateway generated by jhipster +sonar.projectKey=shGateway +sonar.projectName=shGateway generated by jhipster sonar.projectVersion=1.0 sonar.sources=src/main/ diff --git a/git/sh-gateway/src/main/docker/app.yml b/git/sh-gateway/src/main/docker/app.yml index c638358b5ebf879db55808d0587a79a8b69197ee..aaa7a959b9a3e05b3c8571e051983196960e9009 100644 --- a/git/sh-gateway/src/main/docker/app.yml +++ b/git/sh-gateway/src/main/docker/app.yml @@ -1,28 +1,28 @@ # This configuration is intended for development purpose, it's **your** responsibility to harden it for production version: '3.8' services: - selfhealinggateway-app: - image: selfhealinggateway + shgateway-app: + image: shgateway environment: - _JAVA_OPTIONS=-Xmx512m -Xms256m - SPRING_PROFILES_ACTIVE=prod,api-docs - MANAGEMENT_METRICS_EXPORT_PROMETHEUS_ENABLED=true - EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=http://admin:$${jhipster.registry.password}@jhipster-registry:8761/eureka - SPRING_CLOUD_CONFIG_URI=http://admin:$${jhipster.registry.password}@jhipster-registry:8761/config - - SPRING_R2DBC_URL=r2dbc:mysql://selfhealinggateway-mysql:3306/selfhealinggateway?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true - - SPRING_LIQUIBASE_URL=jdbc:mysql://selfhealinggateway-mysql:3306/selfhealinggateway?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true + - SPRING_R2DBC_URL=r2dbc:mysql://shgateway-mysql:3306/shgateway?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true + - SPRING_LIQUIBASE_URL=jdbc:mysql://shgateway-mysql:3306/shgateway?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true - JHIPSTER_SLEEP=30 # gives time for other services to boot before the application # If you want to expose these ports outside your dev PC, # remove the "127.0.0.1:" prefix ports: - 127.0.0.1:8080:8080 - selfhealinggateway-mysql: + shgateway-mysql: image: mysql:8.0.26 # volumes: - # - ~/volumes/jhipster/selfHealingGateway/mysql/:/var/lib/mysql/ + # - ~/volumes/jhipster/shGateway/mysql/:/var/lib/mysql/ environment: - MYSQL_ALLOW_EMPTY_PASSWORD=yes - - MYSQL_DATABASE=selfhealinggateway + - MYSQL_DATABASE=shgateway # If you want to expose these ports outside your dev PC, # remove the "127.0.0.1:" prefix ports: diff --git a/git/sh-gateway/src/main/docker/jib/entrypoint.sh b/git/sh-gateway/src/main/docker/jib/entrypoint.sh index 3ff4ca9b19fb326bc3776e980c2b21aec4c174cc..c04a910d694e7d0d557b052d4293e3f0fdd04194 100644 --- a/git/sh-gateway/src/main/docker/jib/entrypoint.sh +++ b/git/sh-gateway/src/main/docker/jib/entrypoint.sh @@ -1,4 +1,4 @@ #!/bin/sh echo "The application will start in ${JHIPSTER_SLEEP}s..." && sleep ${JHIPSTER_SLEEP} -exec java ${JAVA_OPTS} -noverify -XX:+AlwaysPreTouch -Djava.security.egd=file:/dev/./urandom -cp /app/resources/:/app/classes/:/app/libs/* "com.piacere.selfhealing.gateway.SelfHealingGatewayApp" "$@" +exec java ${JAVA_OPTS} -noverify -XX:+AlwaysPreTouch -Djava.security.egd=file:/dev/./urandom -cp /app/resources/:/app/classes/:/app/libs/* "com.piacere.selfhealing.gateway.ShGatewayApp" "$@" diff --git a/git/sh-gateway/src/main/docker/monitoring.yml b/git/sh-gateway/src/main/docker/monitoring.yml index dcb66c40df2fb05338d3e1ac4d564f2598b8539b..e0593544054ac11d92c28104bab1d44712744c2d 100644 --- a/git/sh-gateway/src/main/docker/monitoring.yml +++ b/git/sh-gateway/src/main/docker/monitoring.yml @@ -1,7 +1,7 @@ # This configuration is intended for development purpose, it's **your** responsibility to harden it for production version: '3.8' services: - selfhealinggateway-prometheus: + shgateway-prometheus: image: prom/prometheus:v2.29.2 volumes: - ./prometheus/:/etc/prometheus/ @@ -14,7 +14,7 @@ services: # On MacOS, remove next line and replace localhost by host.docker.internal in prometheus/prometheus.yml and # grafana/provisioning/datasources/datasource.yml network_mode: 'host' # to test locally running service - selfhealinggateway-grafana: + shgateway-grafana: image: grafana/grafana:8.1.3 volumes: - ./grafana/provisioning/:/etc/grafana/provisioning/ diff --git a/git/sh-gateway/src/main/docker/mysql.yml b/git/sh-gateway/src/main/docker/mysql.yml index 843423a3bc39ccc9e0843a40761901ca07d363d3..b25c073dd0c5a2074402a5a5697125b4d13c34e4 100644 --- a/git/sh-gateway/src/main/docker/mysql.yml +++ b/git/sh-gateway/src/main/docker/mysql.yml @@ -1,13 +1,13 @@ # This configuration is intended for development purpose, it's **your** responsibility to harden it for production version: '3.8' services: - selfhealinggateway-mysql: + shgateway-mysql: image: mysql:8.0.26 # volumes: - # - ~/volumes/jhipster/selfHealingGateway/mysql/:/var/lib/mysql/ + # - ~/volumes/jhipster/shGateway/mysql/:/var/lib/mysql/ environment: - MYSQL_ALLOW_EMPTY_PASSWORD=yes - - MYSQL_DATABASE=selfhealinggateway + - MYSQL_DATABASE=shgateway # If you want to expose these ports outside your dev PC, # remove the "127.0.0.1:" prefix ports: diff --git a/git/sh-gateway/src/main/docker/sonar.yml b/git/sh-gateway/src/main/docker/sonar.yml index 97c12330a24770da3c145473646c40a37d92b280..454744cad7f526a4595070de98ac1e69f56f55b8 100644 --- a/git/sh-gateway/src/main/docker/sonar.yml +++ b/git/sh-gateway/src/main/docker/sonar.yml @@ -1,7 +1,7 @@ # This configuration is intended for development purpose, it's **your** responsibility to harden it for production version: '3.8' services: - selfhealinggateway-sonar: + shgateway-sonar: image: sonarqube:8.9.2-community # Authentication is turned off for out of the box experience while trying out SonarQube # For real use cases delete sonar.forceAuthentication variable or set sonar.forceAuthentication=true diff --git a/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/SelfHealingGatewayApp.java b/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/ShGatewayApp.java similarity index 93% rename from git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/SelfHealingGatewayApp.java rename to git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/ShGatewayApp.java index 3908ca639f4f2d0819c26a56223b1bd84a8d8ad7..4b33d7ab1fda6ce3284a23ea22e0c06fadeb4e64 100644 --- a/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/SelfHealingGatewayApp.java +++ b/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/ShGatewayApp.java @@ -20,18 +20,18 @@ import tech.jhipster.config.JHipsterConstants; @SpringBootApplication @EnableConfigurationProperties({ LiquibaseProperties.class, ApplicationProperties.class }) -public class SelfHealingGatewayApp { +public class ShGatewayApp { - private static final Logger log = LoggerFactory.getLogger(SelfHealingGatewayApp.class); + private static final Logger log = LoggerFactory.getLogger(ShGatewayApp.class); private final Environment env; - public SelfHealingGatewayApp(Environment env) { + public ShGatewayApp(Environment env) { this.env = env; } /** - * Initializes selfHealingGateway. + * Initializes shGateway. * <p> * Spring profiles can be configured with a program argument --spring.profiles.active=your-active-profile * <p> @@ -64,7 +64,7 @@ public class SelfHealingGatewayApp { * @param args the command line arguments. */ public static void main(String[] args) { - SpringApplication app = new SpringApplication(SelfHealingGatewayApp.class); + SpringApplication app = new SpringApplication(ShGatewayApp.class); DefaultProfileUtil.addDefaultProfile(app); Environment env = app.run(args).getEnvironment(); logApplicationStartup(env); diff --git a/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/config/ApplicationProperties.java b/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/config/ApplicationProperties.java index 136f074de2837689733bd633163ef588fe2e0329..22da110a249458a6455fc8281cab7625c408810e 100644 --- a/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/config/ApplicationProperties.java +++ b/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/config/ApplicationProperties.java @@ -3,7 +3,7 @@ package com.piacere.selfhealing.gateway.config; import org.springframework.boot.context.properties.ConfigurationProperties; /** - * Properties specific to Self Healing Gateway. + * Properties specific to Sh Gateway. * <p> * Properties are configured in the {@code application.yml} file. * See {@link tech.jhipster.config.JHipsterProperties} for a good example. diff --git a/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/config/SecurityConfiguration.java b/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/config/SecurityConfiguration.java index 949c669d18a96ecbbbccb937d4b5d212d917c474..52681864682206802697c49947c961af4b5db2be 100644 --- a/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/config/SecurityConfiguration.java +++ b/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/config/SecurityConfiguration.java @@ -102,7 +102,7 @@ public class SecurityConfiguration { .pathMatchers("/api/admin/**").hasAuthority(AuthoritiesConstants.ADMIN) .pathMatchers("/api/**").authenticated() .pathMatchers("/services/*/v3/api-docs").permitAll() - .pathMatchers("/services/**").authenticated() + .pathMatchers("/services/**").permitAll() .pathMatchers("/management/health").permitAll() .pathMatchers("/management/health/**").permitAll() .pathMatchers("/management/info").permitAll() diff --git a/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/config/apidocs/GatewaySwaggerResourcesProvider.java b/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/config/apidocs/GatewaySwaggerResourcesProvider.java index 3688d95f756ef5e1ee380f9a3e6c85897cb6d6cf..10f9e46e12aa70636275fe2a9ea5a6637a29c11c 100644 --- a/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/config/apidocs/GatewaySwaggerResourcesProvider.java +++ b/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/config/apidocs/GatewaySwaggerResourcesProvider.java @@ -24,7 +24,7 @@ import tech.jhipster.config.JHipsterConstants; @Configuration public class GatewaySwaggerResourcesProvider implements SwaggerResourcesProvider { - @Value("${eureka.instance.appname:selfhealinggateway}") + @Value("${eureka.instance.appname:shgateway}") private String gatewayName; private final RouteLocator routeLocator; diff --git a/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/security/jwt/JWTRelayGatewayFilterFactory.java b/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/security/jwt/JWTRelayGatewayFilterFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..30f8bf6d83e520e0e03efb1f3515971c117894f3 --- /dev/null +++ b/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/security/jwt/JWTRelayGatewayFilterFactory.java @@ -0,0 +1,43 @@ +package com.piacere.selfhealing.gateway.security.jwt; + +import static com.piacere.selfhealing.gateway.security.jwt.JWTFilter.AUTHORIZATION_HEADER; + +import org.springframework.cloud.gateway.filter.GatewayFilter; +import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; + +@Component +public class JWTRelayGatewayFilterFactory extends AbstractGatewayFilterFactory<Object> { + + private final TokenProvider tokenProvider; + + public JWTRelayGatewayFilterFactory(TokenProvider tokenProvider) { + this.tokenProvider = tokenProvider; + } + + @Override + public GatewayFilter apply(Object config) { + return (exchange, chain) -> { + String token = this.extractJWTToken(exchange.getRequest()); + if (StringUtils.hasText(token) && this.tokenProvider.validateToken(token)) { + ServerHttpRequest request = exchange.getRequest().mutate().header(AUTHORIZATION_HEADER, "Bearer " + token).build(); + + return chain.filter(exchange.mutate().request(request).build()); + } + return chain.filter(exchange); + }; + } + + private String extractJWTToken(ServerHttpRequest request) { + String bearerToken = request.getHeaders().getFirst(AUTHORIZATION_HEADER); + if (bearerToken == null) { + return null; + } + if (StringUtils.hasText(bearerToken) && bearerToken.startsWith("Bearer ")) { + return bearerToken.substring(7); + } + throw new IllegalArgumentException("Invalid token in Authorization header"); + } +} diff --git a/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/web/filter/ModifyServersOpenApiFilter.java b/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/web/filter/ModifyServersOpenApiFilter.java index 5e67cd4f2e6503d742a98e4ba407f3aed40a29b2..56954c9cba4e727af895f560bc0299f73a1bceab 100644 --- a/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/web/filter/ModifyServersOpenApiFilter.java +++ b/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/web/filter/ModifyServersOpenApiFilter.java @@ -110,7 +110,7 @@ public class ModifyServersOpenApiFilter implements GlobalFilter, Ordered { JsonNode jsonBody = mapper.readTree(strBody); ObjectNode serversToJson = mapper.createObjectNode(); serversToJson.set("url", mapper.valueToTree(path.replace("/v3/api-docs", ""))); - serversToJson.set("description", mapper.valueToTree("Piacere self-healing microservice url")); + serversToJson.set("description", mapper.valueToTree("added by global filter")); // add custom server ArrayNode servers = mapper.createArrayNode(); diff --git a/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/web/rest/errors/ExceptionTranslator.java b/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/web/rest/errors/ExceptionTranslator.java index 6d42742a77bec758423d31e8d7db1ea60d3a91ee..2276ea9dc176021843f12e20b0ad20fcf36ddef4 100644 --- a/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/web/rest/errors/ExceptionTranslator.java +++ b/git/sh-gateway/src/main/java/com/piacere/selfhealing/gateway/web/rest/errors/ExceptionTranslator.java @@ -124,7 +124,7 @@ public class ExceptionTranslator implements ProblemHandling, SecurityAdviceTrait return create( problem, request, - HeaderUtil.createFailureAlert(applicationName, false, problem.getEntityName(), problem.getErrorKey(), problem.getMessage()) + HeaderUtil.createFailureAlert(applicationName, true, problem.getEntityName(), problem.getErrorKey(), problem.getMessage()) ); } @@ -137,7 +137,7 @@ public class ExceptionTranslator implements ProblemHandling, SecurityAdviceTrait return create( problem, request, - HeaderUtil.createFailureAlert(applicationName, false, problem.getEntityName(), problem.getErrorKey(), problem.getMessage()) + HeaderUtil.createFailureAlert(applicationName, true, problem.getEntityName(), problem.getErrorKey(), problem.getMessage()) ); } @@ -154,7 +154,7 @@ public class ExceptionTranslator implements ProblemHandling, SecurityAdviceTrait return create( ex, request, - HeaderUtil.createFailureAlert(applicationName, false, ex.getEntityName(), ex.getErrorKey(), ex.getMessage()) + HeaderUtil.createFailureAlert(applicationName, true, ex.getEntityName(), ex.getErrorKey(), ex.getMessage()) ); } diff --git a/git/sh-gateway/src/main/resources/config/application-dev.yml b/git/sh-gateway/src/main/resources/config/application-dev.yml index b48c3863a6a70f4906df2bf0a8c2b54dbea288a6..f70e9a705dbd911c6413089853ba14c312ca81af 100644 --- a/git/sh-gateway/src/main/resources/config/application-dev.yml +++ b/git/sh-gateway/src/main/resources/config/application-dev.yml @@ -25,7 +25,7 @@ eureka: prefer-ip-address: true client: service-url: - defaultZone: http://admin:${jhipster.registry.password}@${selfhealinggateway.jhipster.registry.host}/eureka/ + defaultZone: ${global.registry.url}/eureka/ spring: devtools: @@ -37,18 +37,10 @@ spring: jackson: serialization: indent-output: true - cloud: - config: - uri: http://admin:${jhipster.registry.password}@${selfhealinggateway.jhipster.registry.host}/config - # name of the config server's property source (file.yml) that we want to use - name: selfHealingGateway - profile: dev - label: main # toggle to switch to a different version of the configuration as stored in git - # it can be set to any label, branch or commit of the configuration source Git repository liquibase: # Remove 'faker' if you do not want the sample data to be loaded automatically contexts: dev, faker - url: jdbc:mysql://${selfhealinggateway.mysql.host}/selfHealingGateway?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true + url: jdbc:mysql://localhost:3306/shGateway?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true mail: host: localhost port: 25 @@ -57,7 +49,7 @@ spring: messages: cache-duration: PT1S # 1 second, see the ISO 8601 standard r2dbc: - url: r2dbc:mysql://${selfhealinggateway.mysql.host}/selfHealingGateway?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true + url: r2dbc:mysql://localhost:3306/shGateway?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true username: root password: thymeleaf: @@ -87,8 +79,6 @@ jhipster: enabled: false limit: 100000 duration-in-seconds: 3600 - registry: - password: admin # CORS is only enabled by default with the "dev" profile cors: # Allow Ionic for JHipster by default (* no longer allowed in Spring Boot 2.4+) @@ -102,7 +92,7 @@ jhipster: authentication: jwt: # This token must be encoded using Base64 and be at least 256 bits long (you can type `openssl rand -base64 64` on your command line to generate a 512 bits one) - base64-secret: MDczODYyNzM4OThhMmNhYmUwNzk2OTNiYzFlYTQ0ZTJhNzkyMTczZjE2YzMzNWJhZWQ3MTBhNGFlYzU4OTM5MTNhNDU3YmI2NzJjMzMyY2E4ZGM3NWNjYjljZTc5ZjZiZmU0M2FmODExYzMyZDRkNDNiYWFiYzI3Zjk5MGM5YmI= + base64-secret: MDBhMjI4YTczOWZlZjFhOTMzMDMyNmI1OGFiODViZjFkMzlkMzI1ZDJjZmNiOGM1YmVlNDJjNDhkNDQ3Mzk4YjEyZmIxZmYzODRhMWZmMDE0MDZlYjViOTNlNjk1Y2I1M2ZjYWQ3NmJkOGZlOWVhNDRjZTZkODgyZDNlOWRjZDI= # Token is valid 24 hours token-validity-in-seconds: 86400 token-validity-in-seconds-for-remember-me: 2592000 diff --git a/git/sh-gateway/src/main/resources/config/application-prod.yml b/git/sh-gateway/src/main/resources/config/application-prod.yml new file mode 100644 index 0000000000000000000000000000000000000000..52e909bd6e3c3e2a916ec45f61e5dbfd8226bd6a --- /dev/null +++ b/git/sh-gateway/src/main/resources/config/application-prod.yml @@ -0,0 +1,132 @@ +# =================================================================== +# Spring Boot configuration for the "prod" profile. +# +# This configuration overrides the application.yml file. +# +# More information on profiles: https://www.jhipster.tech/profiles/ +# More information on configuration properties: https://www.jhipster.tech/common-application-properties/ +# =================================================================== + +# =================================================================== +# Standard Spring Boot properties. +# Full reference is available at: +# http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html +# =================================================================== + +logging: + level: + ROOT: INFO + tech.jhipster: INFO + com.piacere.selfhealing.gateway: INFO + +eureka: + instance: + prefer-ip-address: true + client: + service-url: + defaultZone: ${global.registry.url}/eureka/ + +management: + metrics: + export: + prometheus: + enabled: false + +spring: + devtools: + restart: + enabled: false + livereload: + enabled: false + liquibase: + contexts: prod + url: jdbc:mysql://localhost:3306/shGateway?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true + mail: + host: localhost + port: 25 + username: + password: + r2dbc: + url: r2dbc:mysql://localhost:3306/shGateway?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true + username: root + password: + thymeleaf: + cache: true + sleuth: + sampler: + probability: 1 # report 100% of traces + zipkin: # Use the "zipkin" Maven profile to have the Spring Cloud Zipkin dependencies + base-url: http://localhost:9411 + enabled: false + locator: + discovery: + enabled: true + +# =================================================================== +# To enable TLS in production, generate a certificate using: +# keytool -genkey -alias shgateway -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650 +# +# You can also use Let's Encrypt: +# https://maximilian-boehm.com/hp2121/Create-a-Java-Keystore-JKS-from-Let-s-Encrypt-Certificates.htm +# +# Then, modify the server.ssl properties so your "server" configuration looks like: +# +# server: +# port: 443 +# ssl: +# key-store: classpath:config/tls/keystore.p12 +# key-store-password: password +# key-store-type: PKCS12 +# key-alias: selfsigned +# # The ciphers suite enforce the security by deactivating some old and deprecated SSL cipher, this list was tested against SSL Labs (https://www.ssllabs.com/ssltest/) +# ciphers: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 ,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 ,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,TLS_RSA_WITH_CAMELLIA_128_CBC_SHA +# =================================================================== +server: + port: 8080 + shutdown: graceful # see https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-graceful-shutdown + compression: + enabled: true + mime-types: text/html,text/xml,text/plain,text/css, application/javascript, application/json + min-response-size: 1024 + +# =================================================================== +# JHipster specific properties +# +# Full reference is available at: https://www.jhipster.tech/common-application-properties/ +# =================================================================== + +jhipster: + http: + cache: # Used by the CachingHttpHeadersFilter + timeToLiveInDays: 1461 + security: + authentication: + jwt: + # This token must be encoded using Base64 and be at least 256 bits long (you can type `openssl rand -base64 64` on your command line to generate a 512 bits one) + # As this is the PRODUCTION configuration, you MUST change the default key, and store it securely: + # - In the JHipster Registry (which includes a Spring Cloud Config server) + # - In a separate `application-prod.yml` file, in the same folder as your executable JAR file + # - In the `JHIPSTER_SECURITY_AUTHENTICATION_JWT_BASE64_SECRET` environment variable + base64-secret: MDBhMjI4YTczOWZlZjFhOTMzMDMyNmI1OGFiODViZjFkMzlkMzI1ZDJjZmNiOGM1YmVlNDJjNDhkNDQ3Mzk4YjEyZmIxZmYzODRhMWZmMDE0MDZlYjViOTNlNjk1Y2I1M2ZjYWQ3NmJkOGZlOWVhNDRjZTZkODgyZDNlOWRjZDI= + # Token is valid 24 hours + token-validity-in-seconds: 86400 + token-validity-in-seconds-for-remember-me: 2592000 + mail: # specific JHipster mail property, for standard properties see MailProperties + base-url: http://my-server-url-to-change # Modify according to your server's URL + logging: + use-json-format: false # By default, logs are not in Json format + logstash: # Forward logs to logstash over a socket, used by LoggingConfiguration + enabled: false + host: localhost + port: 5000 + queue-size: 512 +# =================================================================== +# Application specific properties +# Add your own application properties here, see the ApplicationProperties class +# to have type-safe configuration, like in the JHipsterProperties above +# +# More documentation is available at: +# https://www.jhipster.tech/common-application-properties/ +# =================================================================== + +# application: diff --git a/git/sh-gateway/src/main/resources/config/application.yml b/git/sh-gateway/src/main/resources/config/application.yml index b2cd57f0b5a7eafd637a0decab5f6fe18d307408..2051504d71ef31005447b901afa29e11707d1733 100644 --- a/git/sh-gateway/src/main/resources/config/application.yml +++ b/git/sh-gateway/src/main/resources/config/application.yml @@ -24,8 +24,8 @@ eureka: instance-info-replication-interval-seconds: 10 registry-fetch-interval-seconds: 10 instance: - appname: shfrontend - instanceId: shfrontend:${spring.application.instance-id:${random.value}} + appname: shgateway + instanceId: shgateway:${spring.application.instance-id:${random.value}} lease-renewal-interval-in-seconds: 5 lease-expiration-duration-in-seconds: 10 status-page-url-path: ${management.endpoints.web.base-path}/info @@ -101,9 +101,11 @@ management: spring: application: - name: shfrontend + name: shGateway cloud: gateway: + # default-filters: + # - JWTRelay discovery: locator: enabled: true @@ -139,13 +141,13 @@ spring: allow-bean-definition-overriding: true task: execution: - thread-name-prefix: self-healing-gateway-task- + thread-name-prefix: sh-gateway-task- pool: core-size: 2 max-size: 50 queue-capacity: 10000 scheduling: - thread-name-prefix: self-healing-gateway-scheduling- + thread-name-prefix: sh-gateway-scheduling- pool: size: 2 thymeleaf: @@ -173,7 +175,7 @@ info: jhipster: clientApp: - name: 'shfrontend' + name: 'shGatewayApp' # By default CORS is disabled. Uncomment to enable. # cors: # allowed-origins: "http://localhost:8100,http://localhost:9000" @@ -183,12 +185,12 @@ jhipster: # allow-credentials: true # max-age: 1800 mail: - from: shfrontend@localhost + from: shGateway@localhost api-docs: default-include-pattern: ${server.servlet.context-path:}/api/.* management-include-pattern: ${server.servlet.context-path:}/management/.* - title: shfrontend API - description: shfrontend API documentation + title: shGateway API + description: shGateway API documentation version: 0.0.1 terms-of-service-url: contact-name: diff --git a/git/sh-gateway/src/main/resources/config/bootstrap-prod.yml b/git/sh-gateway/src/main/resources/config/bootstrap-prod.yml index 7cc336ac0618d27b5432dd546de065f23999a963..99d05a349504e37e06c8880de37469faa16d584d 100644 --- a/git/sh-gateway/src/main/resources/config/bootstrap-prod.yml +++ b/git/sh-gateway/src/main/resources/config/bootstrap-prod.yml @@ -1,36 +1,12 @@ # =================================================================== -# Spring Cloud Config bootstrap configuration for the "dev" profile -# In prod profile, properties will be overwritten by the ones defined in bootstrap-prod.yml +# Spring Cloud Config bootstrap configuration for the "prod" profile # =================================================================== -global: - password: ${GLOBAL_PASSWORD:admin} - registry: - url: ${GLOBAL_REGISTRY_URL:http://admin:${global.password}@jhipster-registry:8761} - # GBE we create this extra variable because eureka.client.service-url.defaultZone cannot be stablished using environment variables because is cammelcase https://github.com/spring-cloud/spring-cloud-netflix/issues/2541 - spring: cloud: config: - fail-fast: true # fail if no config server is found in production + fail-fast: true retry: initial-interval: 1000 max-interval: 2000 max-attempts: 100 - uri: ${global.registry.url}/config - # name of the config server's property source (file.yml) that we want to use - name: shGateway - profile: prod - label: sh # toggle to switch to a different version of the configuration as stored in git - # it can be set to any label, branch or commit of the configuration source Git repository - -selfhealinggateway: - mysql: - host: sh-mysql:3306 - jhipster: - registry: - host: jhipster-registry:8761 - -jhipster: - registry: - password: admin diff --git a/git/sh-gateway/src/main/resources/config/bootstrap.yml b/git/sh-gateway/src/main/resources/config/bootstrap.yml index 8edb418d22c03a25da98399d99ec20aef3dd207f..bb28568c5fd767430b9d728effdbb2d23d3dee63 100644 --- a/git/sh-gateway/src/main/resources/config/bootstrap.yml +++ b/git/sh-gateway/src/main/resources/config/bootstrap.yml @@ -6,5 +6,27 @@ global: password: ${GLOBAL_PASSWORD:admin} registry: - url: http://admin:${global.password}@localhost:8761 + url: ${GLOBAL_REGISTRY_URL:http://admin:${global.password}@jhipster-registry:8761} # GBE we create this extra variable because eureka.client.service-url.defaultZone cannot be stablished using environment variables because is cammelcase https://github.com/spring-cloud/spring-cloud-netflix/issues/2541 + +jhipster: + registry: + password: ${global.password} + +spring: + application: + name: shGateway + profiles: + # The commented value for `active` can be replaced with valid Spring profiles to load. + # Otherwise, it will be filled in by maven when building the JAR file + # Either way, it can be overridden by `--spring.profiles.active` value passed in the commandline or `-Dspring.profiles.active` set in `JAVA_OPTS` + active: #spring.profiles.active# + cloud: + config: + fail-fast: false # if not in "prod" profile, do not force to use Spring Cloud Config + uri: ${global.registry.url}/config + # name of the config server's property source (file.yml) that we want to use + name: shGateway + profile: dev # profile(s) of the property source + label: sh # toggle to switch to a different version of the configuration as stored in git + # it can be set to any label, branch or commit of the configuration source Git repository diff --git a/git/sh-gateway/src/main/resources/config/tls/keystore.p12 b/git/sh-gateway/src/main/resources/config/tls/keystore.p12 index d227d621134c5ea64096ab897fff974032e899b4..f0cb59270a507e1d50ded9a5cfddd509813dc2bc 100644 Binary files a/git/sh-gateway/src/main/resources/config/tls/keystore.p12 and b/git/sh-gateway/src/main/resources/config/tls/keystore.p12 differ diff --git a/git/sh-gateway/src/main/resources/i18n/messages.properties b/git/sh-gateway/src/main/resources/i18n/messages.properties index a53c81426b6c475ad3c58e74fde0a7b8ee12e733..74049d332f1614d4bdab94941acfc3e2c924383b 100644 --- a/git/sh-gateway/src/main/resources/i18n/messages.properties +++ b/git/sh-gateway/src/main/resources/i18n/messages.properties @@ -5,17 +5,17 @@ error.status=Status: error.message=Message: # Activation email -email.activation.title=selfHealingGateway account activation is required +email.activation.title=shGateway account activation is required email.activation.greeting=Dear {0} -email.activation.text1=Your selfHealingGateway account has been created, please click on the URL below to activate it: +email.activation.text1=Your shGateway account has been created, please click on the URL below to activate it: email.activation.text2=Regards, -email.signature=selfHealingGateway Team. +email.signature=shGateway Team. # Creation email -email.creation.text1=Your selfHealingGateway account has been created, please click on the URL below to access it: +email.creation.text1=Your shGateway account has been created, please click on the URL below to access it: # Reset email -email.reset.title=selfHealingGateway password reset +email.reset.title=shGateway password reset email.reset.greeting=Dear {0} -email.reset.text1=For your selfHealingGateway account a password reset was requested, please click on the URL below to reset it: +email.reset.text1=For your shGateway account a password reset was requested, please click on the URL below to reset it: email.reset.text2=Regards, diff --git a/git/sh-gateway/src/main/resources/i18n/messages_en.properties b/git/sh-gateway/src/main/resources/i18n/messages_en.properties new file mode 100644 index 0000000000000000000000000000000000000000..bf6cc9a8b299a64f153613b765bcd7c5aaf1ad47 --- /dev/null +++ b/git/sh-gateway/src/main/resources/i18n/messages_en.properties @@ -0,0 +1,21 @@ +# Error page +error.title=Your request cannot be processed +error.subtitle=Sorry, an error has occurred. +error.status=Status: +error.message=Message: + +# Activation email +email.activation.title=shGateway account activation +email.activation.greeting=Dear {0} +email.activation.text1=Your shGateway account has been created, please click on the URL below to activate it: +email.activation.text2=Regards, +email.signature=shGateway Team. + +# Creation email +email.creation.text1=Your shGateway account has been created, please click on the URL below to access it: + +# Reset email +email.reset.title=shGateway password reset +email.reset.greeting=Dear {0} +email.reset.text1=For your shGateway account a password reset was requested, please click on the URL below to reset it: +email.reset.text2=Regards, diff --git a/git/sh-gateway/src/main/webapp/app/account/activate/activate.component.html b/git/sh-gateway/src/main/webapp/app/account/activate/activate.component.html index 08be3fd2d04214bbddbf1876fde1441495a6312b..46a5b4085e19e071dd3187b4aa9e136b1ba5a7f4 100644 --- a/git/sh-gateway/src/main/webapp/app/account/activate/activate.component.html +++ b/git/sh-gateway/src/main/webapp/app/account/activate/activate.component.html @@ -1,14 +1,14 @@ <div> <div class="row justify-content-center"> <div class="col-md-8"> - <h1>Activation</h1> + <h1 jhiTranslate="activate.title">Activation</h1> <div class="alert alert-success" *ngIf="success"> - <span><strong>Your user account has been activated.</strong> Please </span> - <a class="alert-link" routerLink="/login">sign in</a>. + <span jhiTranslate="activate.messages.success"><strong>Your user account has been activated.</strong> Please </span> + <a class="alert-link" routerLink="/login" jhiTranslate="global.messages.info.authenticated.link">sign in</a>. </div> - <div class="alert alert-danger" *ngIf="error"> + <div class="alert alert-danger" *ngIf="error" jhiTranslate="activate.messages.error"> <strong>Your user could not be activated.</strong> Please use the registration form to sign up. </div> </div> diff --git a/git/sh-gateway/src/main/webapp/app/account/activate/activate.route.ts b/git/sh-gateway/src/main/webapp/app/account/activate/activate.route.ts index 745f18da5020749b5e7de9f971cf10687ea8d5a5..8da1b6d5ced50d02a4d7ad56218ba74d0a4c292c 100644 --- a/git/sh-gateway/src/main/webapp/app/account/activate/activate.route.ts +++ b/git/sh-gateway/src/main/webapp/app/account/activate/activate.route.ts @@ -6,6 +6,6 @@ export const activateRoute: Route = { path: 'activate', component: ActivateComponent, data: { - pageTitle: 'Activation', + pageTitle: 'activate.title', }, }; diff --git a/git/sh-gateway/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html b/git/sh-gateway/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html index b7a34811a577fb2df82172b43099c20fd3a759b8..3431d36c2f18a3cddc867ca4a85b16407fd7fde1 100644 --- a/git/sh-gateway/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html +++ b/git/sh-gateway/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html @@ -1,37 +1,41 @@ <div> <div class="row justify-content-center"> <div class="col-md-4"> - <h1>Reset password</h1> + <h1 jhiTranslate="reset.finish.title">Reset password</h1> - <div class="alert alert-danger" *ngIf="initialized && !key"> + <div class="alert alert-danger" jhiTranslate="reset.finish.messages.keymissing" *ngIf="initialized && !key"> <strong>The password reset key is missing.</strong> </div> <div class="alert alert-warning" *ngIf="key && !success"> - <span>Choose a new password</span> + <span jhiTranslate="reset.finish.messages.info">Choose a new password</span> </div> <div class="alert alert-danger" *ngIf="error"> - <span>Your password couldn't be reset. Remember a password request is only valid for 24 hours.</span> + <span jhiTranslate="reset.finish.messages.error" + >Your password couldn't be reset. Remember a password request is only valid for 24 hours.</span + > </div> <div class="alert alert-success" *ngIf="success"> - <span><strong>Your password has been reset.</strong> Please </span> - <a class="alert-link" routerLink="/login">sign in</a>. + <span jhiTranslate="reset.finish.messages.success"><strong>Your password has been reset.</strong> Please </span> + <a class="alert-link" routerLink="/login" jhiTranslate="global.messages.info.authenticated.link">sign in</a>. </div> - <div class="alert alert-danger" *ngIf="doNotMatch">The password and its confirmation do not match!</div> + <div class="alert alert-danger" *ngIf="doNotMatch" jhiTranslate="global.messages.error.dontmatch"> + The password and its confirmation do not match! + </div> <div *ngIf="key && !success"> <form name="form" role="form" (ngSubmit)="finishReset()" [formGroup]="passwordForm"> <div class="form-group"> - <label class="form-control-label" for="newPassword">New password</label> + <label class="form-control-label" for="newPassword" jhiTranslate="global.form.newpassword.label">New password</label> <input type="password" class="form-control" id="newPassword" name="newPassword" - placeholder="New password" + placeholder="{{ 'global.form.newpassword.placeholder' | translate }}" formControlName="newPassword" data-cy="resetPassword" #newPassword @@ -43,15 +47,27 @@ (passwordForm.get('newPassword')!.dirty || passwordForm.get('newPassword')!.touched) " > - <small class="form-text text-danger" *ngIf="passwordForm.get('newPassword')?.errors?.required"> + <small + class="form-text text-danger" + *ngIf="passwordForm.get('newPassword')?.errors?.required" + jhiTranslate="global.messages.validate.newpassword.required" + > Your password is required. </small> - <small class="form-text text-danger" *ngIf="passwordForm.get('newPassword')?.errors?.minlength"> + <small + class="form-text text-danger" + *ngIf="passwordForm.get('newPassword')?.errors?.minlength" + jhiTranslate="global.messages.validate.newpassword.minlength" + > Your password is required to be at least 4 characters. </small> - <small class="form-text text-danger" *ngIf="passwordForm.get('newPassword')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="passwordForm.get('newPassword')?.errors?.maxlength" + jhiTranslate="global.messages.validate.newpassword.maxlength" + > Your password cannot be longer than 50 characters. </small> </div> @@ -60,13 +76,15 @@ </div> <div class="form-group"> - <label class="form-control-label" for="confirmPassword">New password confirmation</label> + <label class="form-control-label" for="confirmPassword" jhiTranslate="global.form.confirmpassword.label" + >New password confirmation</label + > <input type="password" class="form-control" id="confirmPassword" name="confirmPassword" - placeholder="Confirm the new password" + placeholder="{{ 'global.form.confirmpassword.placeholder' | translate }}" formControlName="confirmPassword" data-cy="confirmResetPassword" /> @@ -77,21 +95,41 @@ (passwordForm.get('confirmPassword')!.dirty || passwordForm.get('confirmPassword')!.touched) " > - <small class="form-text text-danger" *ngIf="passwordForm.get('confirmPassword')?.errors?.required"> + <small + class="form-text text-danger" + *ngIf="passwordForm.get('confirmPassword')?.errors?.required" + jhiTranslate="global.messages.validate.confirmpassword.required" + > Your password confirmation is required. </small> - <small class="form-text text-danger" *ngIf="passwordForm.get('confirmPassword')?.errors?.minlength"> + <small + class="form-text text-danger" + *ngIf="passwordForm.get('confirmPassword')?.errors?.minlength" + jhiTranslate="global.messages.validate.confirmpassword.minlength" + > Your password confirmation is required to be at least 4 characters. </small> - <small class="form-text text-danger" *ngIf="passwordForm.get('confirmPassword')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="passwordForm.get('confirmPassword')?.errors?.maxlength" + jhiTranslate="global.messages.validate.confirmpassword.maxlength" + > Your password confirmation cannot be longer than 50 characters. </small> </div> </div> - <button type="submit" [disabled]="passwordForm.invalid" class="btn btn-primary" data-cy="submit">Reset Password</button> + <button + type="submit" + [disabled]="passwordForm.invalid" + class="btn btn-primary" + jhiTranslate="reset.finish.form.button" + data-cy="submit" + > + Reset Password + </button> </form> </div> </div> diff --git a/git/sh-gateway/src/main/webapp/app/account/password-reset/finish/password-reset-finish.route.ts b/git/sh-gateway/src/main/webapp/app/account/password-reset/finish/password-reset-finish.route.ts index 680e774d97f7b7a83f126262298265920d2c06b6..3786df7413b70fa093f34af202814abab42962a5 100644 --- a/git/sh-gateway/src/main/webapp/app/account/password-reset/finish/password-reset-finish.route.ts +++ b/git/sh-gateway/src/main/webapp/app/account/password-reset/finish/password-reset-finish.route.ts @@ -6,6 +6,6 @@ export const passwordResetFinishRoute: Route = { path: 'reset/finish', component: PasswordResetFinishComponent, data: { - pageTitle: 'Password', + pageTitle: 'global.menu.account.password', }, }; diff --git a/git/sh-gateway/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html b/git/sh-gateway/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html index 2fc7a27f16ebf8e1c1c29b95b951d1a1daccccb9..98bb427a043bea74652ab3587cc19799f4cdf068 100644 --- a/git/sh-gateway/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html +++ b/git/sh-gateway/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html @@ -1,27 +1,27 @@ <div> <div class="row justify-content-center"> <div class="col-md-8"> - <h1>Reset your password</h1> + <h1 jhiTranslate="reset.request.title">Reset your password</h1> <jhi-alert-error></jhi-alert-error> <div class="alert alert-warning" *ngIf="!success"> - <span>Enter the email address you used to register.</span> + <span jhiTranslate="reset.request.messages.info">Enter the email address you used to register.</span> </div> <div class="alert alert-success" *ngIf="success"> - <span>Check your emails for details on how to reset your password.</span> + <span jhiTranslate="reset.request.messages.success">Check your emails for details on how to reset your password.</span> </div> <form *ngIf="!success" name="form" role="form" (ngSubmit)="requestReset()" [formGroup]="resetRequestForm"> <div class="form-group"> - <label class="form-control-label" for="email">Email</label> + <label class="form-control-label" for="email" jhiTranslate="global.form.email.label">Email</label> <input type="email" class="form-control" id="email" name="email" - placeholder="Your email" + placeholder="{{ 'global.form.email.placeholder' | translate }}" formControlName="email" data-cy="emailResetPassword" #email @@ -32,21 +32,49 @@ resetRequestForm.get('email')!.invalid && (resetRequestForm.get('email')!.dirty || resetRequestForm.get('email')!.touched) " > - <small class="form-text text-danger" *ngIf="resetRequestForm.get('email')?.errors?.required"> Your email is required. </small> + <small + class="form-text text-danger" + *ngIf="resetRequestForm.get('email')?.errors?.required" + jhiTranslate="global.messages.validate.email.required" + > + Your email is required. + </small> - <small class="form-text text-danger" *ngIf="resetRequestForm.get('email')?.errors?.email"> Your email is invalid. </small> + <small + class="form-text text-danger" + *ngIf="resetRequestForm.get('email')?.errors?.email" + jhiTranslate="global.messages.validate.email.invalid" + > + Your email is invalid. + </small> - <small class="form-text text-danger" *ngIf="resetRequestForm.get('email')?.errors?.minlength"> + <small + class="form-text text-danger" + *ngIf="resetRequestForm.get('email')?.errors?.minlength" + jhiTranslate="global.messages.validate.email.minlength" + > Your email is required to be at least 5 characters. </small> - <small class="form-text text-danger" *ngIf="resetRequestForm.get('email')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="resetRequestForm.get('email')?.errors?.maxlength" + jhiTranslate="global.messages.validate.email.maxlength" + > Your email cannot be longer than 100 characters. </small> </div> </div> - <button type="submit" [disabled]="resetRequestForm.invalid" class="btn btn-primary" data-cy="submit">Reset</button> + <button + type="submit" + [disabled]="resetRequestForm.invalid" + class="btn btn-primary" + jhiTranslate="reset.request.form.button" + data-cy="submit" + > + Reset + </button> </form> </div> </div> diff --git a/git/sh-gateway/src/main/webapp/app/account/password-reset/init/password-reset-init.route.ts b/git/sh-gateway/src/main/webapp/app/account/password-reset/init/password-reset-init.route.ts index 36c28c2d096bb487738133f5e52ac296c00aabeb..6ba92a41e78636576ce7a28ec241c7d022d49eff 100644 --- a/git/sh-gateway/src/main/webapp/app/account/password-reset/init/password-reset-init.route.ts +++ b/git/sh-gateway/src/main/webapp/app/account/password-reset/init/password-reset-init.route.ts @@ -6,6 +6,6 @@ export const passwordResetInitRoute: Route = { path: 'reset/request', component: PasswordResetInitComponent, data: { - pageTitle: 'Password', + pageTitle: 'global.menu.account.password', }, }; diff --git a/git/sh-gateway/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.html b/git/sh-gateway/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.html index c7c72dc6e509859c68f0787620b37719f025cb8b..244da088fab28d530cc685c9465d2f9a5202bdaa 100644 --- a/git/sh-gateway/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.html +++ b/git/sh-gateway/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.html @@ -1,5 +1,5 @@ <div id="strength"> - <small>Password strength:</small> + <small jhiTranslate="global.messages.validate.newpassword.strength">Password strength:</small> <ul id="strengthBar"> <li class="point"></li> <li class="point"></li> diff --git a/git/sh-gateway/src/main/webapp/app/account/password/password.component.html b/git/sh-gateway/src/main/webapp/app/account/password/password.component.html index 2bab74a4097a62f3322cdfd885e07b0494430361..f83162472b14664fddf834477705a529e5b4ab0f 100644 --- a/git/sh-gateway/src/main/webapp/app/account/password/password.component.html +++ b/git/sh-gateway/src/main/webapp/app/account/password/password.component.html @@ -1,28 +1,32 @@ <div> <div class="row justify-content-center"> <div class="col-md-8" *ngIf="account$ | async as account"> - <h2> + <h2 jhiTranslate="password.title" [translateValues]="{ username: account.login }"> Password for [<strong>{{ account.login }}</strong >] </h2> - <div class="alert alert-success" *ngIf="success"> + <div class="alert alert-success" *ngIf="success" jhiTranslate="password.messages.success"> <strong>Password changed!</strong> </div> - <div class="alert alert-danger" *ngIf="error"><strong>An error has occurred!</strong> The password could not be changed.</div> + <div class="alert alert-danger" *ngIf="error" jhiTranslate="password.messages.error"> + <strong>An error has occurred!</strong> The password could not be changed. + </div> - <div class="alert alert-danger" *ngIf="doNotMatch">The password and its confirmation do not match!</div> + <div class="alert alert-danger" *ngIf="doNotMatch" jhiTranslate="global.messages.error.dontmatch"> + The password and its confirmation do not match! + </div> <form name="form" role="form" (ngSubmit)="changePassword()" [formGroup]="passwordForm"> <div class="form-group"> - <label class="form-control-label" for="currentPassword">Current password</label> + <label class="form-control-label" for="currentPassword" jhiTranslate="global.form.currentpassword.label">Current password</label> <input type="password" class="form-control" id="currentPassword" name="currentPassword" - placeholder="Current password" + placeholder="{{ 'global.form.currentpassword.placeholder' | translate }}" formControlName="currentPassword" data-cy="currentPassword" /> @@ -33,20 +37,24 @@ (passwordForm.get('currentPassword')!.dirty || passwordForm.get('currentPassword')!.touched) " > - <small class="form-text text-danger" *ngIf="passwordForm.get('currentPassword')?.errors?.required"> + <small + class="form-text text-danger" + *ngIf="passwordForm.get('currentPassword')?.errors?.required" + jhiTranslate="global.messages.validate.newpassword.required" + > Your password is required. </small> </div> </div> <div class="form-group"> - <label class="form-control-label" for="newPassword">New password</label> + <label class="form-control-label" for="newPassword" jhiTranslate="global.form.newpassword.label">New password</label> <input type="password" class="form-control" id="newPassword" name="newPassword" - placeholder="New password" + placeholder="{{ 'global.form.newpassword.placeholder' | translate }}" formControlName="newPassword" data-cy="newPassword" /> @@ -57,15 +65,27 @@ (passwordForm.get('newPassword')!.dirty || passwordForm.get('newPassword')!.touched) " > - <small class="form-text text-danger" *ngIf="passwordForm.get('newPassword')?.errors?.required"> + <small + class="form-text text-danger" + *ngIf="passwordForm.get('newPassword')?.errors?.required" + jhiTranslate="global.messages.validate.newpassword.required" + > Your password is required. </small> - <small class="form-text text-danger" *ngIf="passwordForm.get('newPassword')?.errors?.minlength"> + <small + class="form-text text-danger" + *ngIf="passwordForm.get('newPassword')?.errors?.minlength" + jhiTranslate="global.messages.validate.newpassword.minlength" + > Your password is required to be at least 4 characters. </small> - <small class="form-text text-danger" *ngIf="passwordForm.get('newPassword')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="passwordForm.get('newPassword')?.errors?.maxlength" + jhiTranslate="global.messages.validate.newpassword.maxlength" + > Your password cannot be longer than 50 characters. </small> </div> @@ -74,13 +94,15 @@ </div> <div class="form-group"> - <label class="form-control-label" for="confirmPassword">New password confirmation</label> + <label class="form-control-label" for="confirmPassword" jhiTranslate="global.form.confirmpassword.label" + >New password confirmation</label + > <input type="password" class="form-control" id="confirmPassword" name="confirmPassword" - placeholder="Confirm the new password" + placeholder="{{ 'global.form.confirmpassword.placeholder' | translate }}" formControlName="confirmPassword" data-cy="confirmPassword" /> @@ -91,21 +113,41 @@ (passwordForm.get('confirmPassword')!.dirty || passwordForm.get('confirmPassword')!.touched) " > - <small class="form-text text-danger" *ngIf="passwordForm.get('confirmPassword')?.errors?.required"> + <small + class="form-text text-danger" + *ngIf="passwordForm.get('confirmPassword')?.errors?.required" + jhiTranslate="global.messages.validate.confirmpassword.required" + > Your confirmation password is required. </small> - <small class="form-text text-danger" *ngIf="passwordForm.get('confirmPassword')?.errors?.minlength"> + <small + class="form-text text-danger" + *ngIf="passwordForm.get('confirmPassword')?.errors?.minlength" + jhiTranslate="global.messages.validate.confirmpassword.minlength" + > Your confirmation password is required to be at least 4 characters. </small> - <small class="form-text text-danger" *ngIf="passwordForm.get('confirmPassword')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="passwordForm.get('confirmPassword')?.errors?.maxlength" + jhiTranslate="global.messages.validate.confirmpassword.maxlength" + > Your confirmation password cannot be longer than 50 characters. </small> </div> </div> - <button type="submit" [disabled]="passwordForm.invalid" class="btn btn-primary" data-cy="submit">Save</button> + <button + type="submit" + [disabled]="passwordForm.invalid" + class="btn btn-primary" + jhiTranslate="password.form.button" + data-cy="submit" + > + Save + </button> </form> </div> </div> diff --git a/git/sh-gateway/src/main/webapp/app/account/password/password.route.ts b/git/sh-gateway/src/main/webapp/app/account/password/password.route.ts index f287f1d48bc556b366c65db1e0c326ce49b48fce..174b54f507bd31b41f17177b29e302b4dc7f2816 100644 --- a/git/sh-gateway/src/main/webapp/app/account/password/password.route.ts +++ b/git/sh-gateway/src/main/webapp/app/account/password/password.route.ts @@ -7,7 +7,7 @@ export const passwordRoute: Route = { path: 'password', component: PasswordComponent, data: { - pageTitle: 'Password', + pageTitle: 'global.menu.account.password', }, canActivate: [UserRouteAccessService], }; diff --git a/git/sh-gateway/src/main/webapp/app/account/register/register.component.html b/git/sh-gateway/src/main/webapp/app/account/register/register.component.html index 92bcd0d574e5bd4e5e3946ff26e01475a6341732..dc2157bd32049f7216fdd7cf8dddcf74a82fe4bd 100644 --- a/git/sh-gateway/src/main/webapp/app/account/register/register.component.html +++ b/git/sh-gateway/src/main/webapp/app/account/register/register.component.html @@ -1,19 +1,27 @@ <div> <div class="row justify-content-center"> <div class="col-md-8"> - <h1 data-cy="registerTitle">Registration</h1> + <h1 jhiTranslate="register.title" data-cy="registerTitle">Registration</h1> - <div class="alert alert-success" *ngIf="success"><strong>Registration saved!</strong> Please check your email for confirmation.</div> + <div class="alert alert-success" *ngIf="success" jhiTranslate="register.messages.success"> + <strong>Registration saved!</strong> Please check your email for confirmation. + </div> - <div class="alert alert-danger" *ngIf="error"><strong>Registration failed!</strong> Please try again later.</div> + <div class="alert alert-danger" *ngIf="error" jhiTranslate="register.messages.error.fail"> + <strong>Registration failed!</strong> Please try again later. + </div> - <div class="alert alert-danger" *ngIf="errorUserExists"> + <div class="alert alert-danger" *ngIf="errorUserExists" jhiTranslate="register.messages.error.userexists"> <strong>Login name already registered!</strong> Please choose another one. </div> - <div class="alert alert-danger" *ngIf="errorEmailExists"><strong>Email is already in use!</strong> Please choose another one.</div> + <div class="alert alert-danger" *ngIf="errorEmailExists" jhiTranslate="register.messages.error.emailexists"> + <strong>Email is already in use!</strong> Please choose another one. + </div> - <div class="alert alert-danger" *ngIf="doNotMatch">The password and its confirmation do not match!</div> + <div class="alert alert-danger" *ngIf="doNotMatch" jhiTranslate="global.messages.error.dontmatch"> + The password and its confirmation do not match! + </div> </div> </div> @@ -21,70 +29,108 @@ <div class="col-md-8"> <form name="form" role="form" (ngSubmit)="register()" [formGroup]="registerForm" *ngIf="!success"> <div class="form-group"> - <label class="form-control-label" for="login">Username</label> + <label class="form-control-label" for="login" jhiTranslate="global.form.username.label">Username</label> <input type="text" class="form-control" id="login" name="login" - placeholder="Your username" + placeholder="{{ 'global.form.username.placeholder' | translate }}" formControlName="login" data-cy="username" #login /> <div *ngIf="registerForm.get('login')!.invalid && (registerForm.get('login')!.dirty || registerForm.get('login')!.touched)"> - <small class="form-text text-danger" *ngIf="registerForm.get('login')?.errors?.required"> Your username is required. </small> + <small + class="form-text text-danger" + *ngIf="registerForm.get('login')?.errors?.required" + jhiTranslate="register.messages.validate.login.required" + > + Your username is required. + </small> - <small class="form-text text-danger" *ngIf="registerForm.get('login')?.errors?.minlength"> + <small + class="form-text text-danger" + *ngIf="registerForm.get('login')?.errors?.minlength" + jhiTranslate="register.messages.validate.login.minlength" + > Your username is required to be at least 1 character. </small> - <small class="form-text text-danger" *ngIf="registerForm.get('login')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="registerForm.get('login')?.errors?.maxlength" + jhiTranslate="register.messages.validate.login.maxlength" + > Your username cannot be longer than 50 characters. </small> - <small class="form-text text-danger" *ngIf="registerForm.get('login')?.errors?.pattern"> + <small + class="form-text text-danger" + *ngIf="registerForm.get('login')?.errors?.pattern" + jhiTranslate="register.messages.validate.login.pattern" + > Your username can only contain letters and digits. </small> </div> </div> <div class="form-group"> - <label class="form-control-label" for="email">Email</label> + <label class="form-control-label" for="email" jhiTranslate="global.form.email.label">Email</label> <input type="email" class="form-control" id="email" name="email" - placeholder="Your email" + placeholder="{{ 'global.form.email.placeholder' | translate }}" formControlName="email" data-cy="email" /> <div *ngIf="registerForm.get('email')!.invalid && (registerForm.get('email')!.dirty || registerForm.get('email')!.touched)"> - <small class="form-text text-danger" *ngIf="registerForm.get('email')?.errors?.required"> Your email is required. </small> + <small + class="form-text text-danger" + *ngIf="registerForm.get('email')?.errors?.required" + jhiTranslate="global.messages.validate.email.required" + > + Your email is required. + </small> - <small class="form-text text-danger" *ngIf="registerForm.get('email')?.errors?.invalid"> Your email is invalid. </small> + <small + class="form-text text-danger" + *ngIf="registerForm.get('email')?.errors?.invalid" + jhiTranslate="global.messages.validate.email.invalid" + > + Your email is invalid. + </small> - <small class="form-text text-danger" *ngIf="registerForm.get('email')?.errors?.minlength"> + <small + class="form-text text-danger" + *ngIf="registerForm.get('email')?.errors?.minlength" + jhiTranslate="global.messages.validate.email.minlength" + > Your email is required to be at least 5 characters. </small> - <small class="form-text text-danger" *ngIf="registerForm.get('email')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="registerForm.get('email')?.errors?.maxlength" + jhiTranslate="global.messages.validate.email.maxlength" + > Your email cannot be longer than 100 characters. </small> </div> </div> <div class="form-group"> - <label class="form-control-label" for="password">New password</label> + <label class="form-control-label" for="password" jhiTranslate="global.form.newpassword.label">New password</label> <input type="password" class="form-control" id="password" name="password" - placeholder="New password" + placeholder="{{ 'global.form.newpassword.placeholder' | translate }}" formControlName="password" data-cy="firstPassword" /> @@ -92,13 +138,27 @@ <div *ngIf="registerForm.get('password')!.invalid && (registerForm.get('password')!.dirty || registerForm.get('password')!.touched)" > - <small class="form-text text-danger" *ngIf="registerForm.get('password')?.errors?.required"> Your password is required. </small> + <small + class="form-text text-danger" + *ngIf="registerForm.get('password')?.errors?.required" + jhiTranslate="global.messages.validate.newpassword.required" + > + Your password is required. + </small> - <small class="form-text text-danger" *ngIf="registerForm.get('password')?.errors?.minlength"> + <small + class="form-text text-danger" + *ngIf="registerForm.get('password')?.errors?.minlength" + jhiTranslate="global.messages.validate.newpassword.minlength" + > Your password is required to be at least 4 characters. </small> - <small class="form-text text-danger" *ngIf="registerForm.get('password')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="registerForm.get('password')?.errors?.maxlength" + jhiTranslate="global.messages.validate.newpassword.maxlength" + > Your password cannot be longer than 50 characters. </small> </div> @@ -107,13 +167,15 @@ </div> <div class="form-group"> - <label class="form-control-label" for="confirmPassword">New password confirmation</label> + <label class="form-control-label" for="confirmPassword" jhiTranslate="global.form.confirmpassword.label" + >New password confirmation</label + > <input type="password" class="form-control" id="confirmPassword" name="confirmPassword" - placeholder="Confirm the new password" + placeholder="{{ 'global.form.confirmpassword.placeholder' | translate }}" formControlName="confirmPassword" data-cy="secondPassword" /> @@ -124,27 +186,47 @@ (registerForm.get('confirmPassword')!.dirty || registerForm.get('confirmPassword')!.touched) " > - <small class="form-text text-danger" *ngIf="registerForm.get('confirmPassword')?.errors?.required"> + <small + class="form-text text-danger" + *ngIf="registerForm.get('confirmPassword')?.errors?.required" + jhiTranslate="global.messages.validate.confirmpassword.required" + > Your confirmation password is required. </small> - <small class="form-text text-danger" *ngIf="registerForm.get('confirmPassword')?.errors?.minlength"> + <small + class="form-text text-danger" + *ngIf="registerForm.get('confirmPassword')?.errors?.minlength" + jhiTranslate="global.messages.validate.confirmpassword.minlength" + > Your confirmation password is required to be at least 4 characters. </small> - <small class="form-text text-danger" *ngIf="registerForm.get('confirmPassword')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="registerForm.get('confirmPassword')?.errors?.maxlength" + jhiTranslate="global.messages.validate.confirmpassword.maxlength" + > Your confirmation password cannot be longer than 50 characters. </small> </div> </div> - <button type="submit" [disabled]="registerForm.invalid" class="btn btn-primary" data-cy="submit">Register</button> + <button + type="submit" + [disabled]="registerForm.invalid" + class="btn btn-primary" + jhiTranslate="register.form.button" + data-cy="submit" + > + Register + </button> </form> <div class="mt-3 alert alert-warning"> - <span>If you want to </span> - <a class="alert-link" routerLink="/login">sign in</a - ><span + <span jhiTranslate="global.messages.info.authenticated.prefix">If you want to </span> + <a class="alert-link" routerLink="/login" jhiTranslate="global.messages.info.authenticated.link">sign in</a + ><span jhiTranslate="global.messages.info.authenticated.suffix" >, you can try the default accounts:<br />- Administrator (login="admin" and password="admin") <br />- User (login="user" and password="user").</span > diff --git a/git/sh-gateway/src/main/webapp/app/account/register/register.component.spec.ts b/git/sh-gateway/src/main/webapp/app/account/register/register.component.spec.ts index 32ff62344dd511785af77e11dd86cb5ce8981f6e..e2238c97fd08548914471e7b825c3c3d624ffb8b 100644 --- a/git/sh-gateway/src/main/webapp/app/account/register/register.component.spec.ts +++ b/git/sh-gateway/src/main/webapp/app/account/register/register.component.spec.ts @@ -1,7 +1,10 @@ +jest.mock('@ngx-translate/core'); + import { ComponentFixture, TestBed, waitForAsync, inject, tick, fakeAsync } from '@angular/core/testing'; import { HttpClientTestingModule } from '@angular/common/http/testing'; import { FormBuilder } from '@angular/forms'; import { of, throwError } from 'rxjs'; +import { TranslateService } from '@ngx-translate/core'; import { EMAIL_ALREADY_USED_TYPE, LOGIN_ALREADY_USED_TYPE } from 'app/config/error.constants'; @@ -18,7 +21,7 @@ describe('Component Tests', () => { TestBed.configureTestingModule({ imports: [HttpClientTestingModule], declarations: [RegisterComponent], - providers: [FormBuilder], + providers: [FormBuilder, TranslateService], }) .overrideTemplate(RegisterComponent, '') .compileComponents(); @@ -42,9 +45,10 @@ describe('Component Tests', () => { }); it('should update success to true after creating an account', inject( - [RegisterService], - fakeAsync((service: RegisterService) => { + [RegisterService, TranslateService], + fakeAsync((service: RegisterService, mockLanguageService: TranslateService) => { jest.spyOn(service, 'save').mockReturnValue(of({})); + mockLanguageService.currentLang = 'en'; comp.registerForm.patchValue({ password: 'password', confirmPassword: 'password', diff --git a/git/sh-gateway/src/main/webapp/app/account/register/register.component.ts b/git/sh-gateway/src/main/webapp/app/account/register/register.component.ts index 4a9cdfa30bd98810404f34ff735fc0669f0ec492..282b4d3e6edeb052b0add786bb89a328e446269b 100644 --- a/git/sh-gateway/src/main/webapp/app/account/register/register.component.ts +++ b/git/sh-gateway/src/main/webapp/app/account/register/register.component.ts @@ -1,6 +1,7 @@ import { Component, AfterViewInit, ElementRef, ViewChild } from '@angular/core'; import { HttpErrorResponse } from '@angular/common/http'; import { FormBuilder, Validators } from '@angular/forms'; +import { TranslateService } from '@ngx-translate/core'; import { EMAIL_ALREADY_USED_TYPE, LOGIN_ALREADY_USED_TYPE } from 'app/config/error.constants'; import { RegisterService } from './register.service'; @@ -34,7 +35,7 @@ export class RegisterComponent implements AfterViewInit { confirmPassword: ['', [Validators.required, Validators.minLength(4), Validators.maxLength(50)]], }); - constructor(private registerService: RegisterService, private fb: FormBuilder) {} + constructor(private translateService: TranslateService, private registerService: RegisterService, private fb: FormBuilder) {} ngAfterViewInit(): void { if (this.login) { @@ -54,7 +55,7 @@ export class RegisterComponent implements AfterViewInit { } else { const login = this.registerForm.get(['login'])!.value; const email = this.registerForm.get(['email'])!.value; - this.registerService.save({ login, email, password, langKey: 'en' }).subscribe( + this.registerService.save({ login, email, password, langKey: this.translateService.currentLang }).subscribe( () => (this.success = true), response => this.processError(response) ); diff --git a/git/sh-gateway/src/main/webapp/app/account/register/register.route.ts b/git/sh-gateway/src/main/webapp/app/account/register/register.route.ts index f702473a037af5270f3e27696b6bef327ac2005d..525253015b96c7aaab09d69b95c6b48b0680be8c 100644 --- a/git/sh-gateway/src/main/webapp/app/account/register/register.route.ts +++ b/git/sh-gateway/src/main/webapp/app/account/register/register.route.ts @@ -6,6 +6,6 @@ export const registerRoute: Route = { path: 'register', component: RegisterComponent, data: { - pageTitle: 'Registration', + pageTitle: 'register.title', }, }; diff --git a/git/sh-gateway/src/main/webapp/app/account/settings/settings.component.html b/git/sh-gateway/src/main/webapp/app/account/settings/settings.component.html index f2507ef927b0316fbba0410292e96cb68222e0ca..752a13660b8415015aaabd528910d0fb73db6dab 100644 --- a/git/sh-gateway/src/main/webapp/app/account/settings/settings.component.html +++ b/git/sh-gateway/src/main/webapp/app/account/settings/settings.component.html @@ -1,12 +1,12 @@ <div> <div class="row justify-content-center"> <div class="col-md-8"> - <h2 *ngIf="account"> + <h2 jhiTranslate="settings.title" [translateValues]="{ username: account.login }" *ngIf="account"> User settings for [<strong>{{ account.login }}</strong >] </h2> - <div class="alert alert-success" *ngIf="success"> + <div class="alert alert-success" *ngIf="success" jhiTranslate="settings.messages.success"> <strong>Settings saved!</strong> </div> @@ -14,13 +14,13 @@ <form name="form" role="form" (ngSubmit)="save()" [formGroup]="settingsForm" *ngIf="account" novalidate> <div class="form-group"> - <label class="form-control-label" for="firstName">First Name</label> + <label class="form-control-label" for="firstName" jhiTranslate="settings.form.firstname">First Name</label> <input type="text" class="form-control" id="firstName" name="firstName" - placeholder="Your first name" + placeholder="{{ 'settings.form.firstname.placeholder' | translate }}" formControlName="firstName" data-cy="firstname" /> @@ -30,28 +30,40 @@ settingsForm.get('firstName')!.invalid && (settingsForm.get('firstName')!.dirty || settingsForm.get('firstName')!.touched) " > - <small class="form-text text-danger" *ngIf="settingsForm.get('firstName')?.errors?.required"> + <small + class="form-text text-danger" + *ngIf="settingsForm.get('firstName')?.errors?.required" + jhiTranslate="settings.messages.validate.firstname.required" + > Your first name is required. </small> - <small class="form-text text-danger" *ngIf="settingsForm.get('firstName')?.errors?.minlength"> + <small + class="form-text text-danger" + *ngIf="settingsForm.get('firstName')?.errors?.minlength" + jhiTranslate="settings.messages.validate.firstname.minlength" + > Your first name is required to be at least 1 character. </small> - <small class="form-text text-danger" *ngIf="settingsForm.get('firstName')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="settingsForm.get('firstName')?.errors?.maxlength" + jhiTranslate="settings.messages.validate.firstname.maxlength" + > Your first name cannot be longer than 50 characters. </small> </div> </div> <div class="form-group"> - <label class="form-control-label" for="lastName">Last Name</label> + <label class="form-control-label" for="lastName" jhiTranslate="settings.form.lastname">Last Name</label> <input type="text" class="form-control" id="lastName" name="lastName" - placeholder="Your last name" + placeholder="{{ 'settings.form.lastname.placeholder' | translate }}" formControlName="lastName" data-cy="lastname" /> @@ -59,48 +71,95 @@ <div *ngIf="settingsForm.get('lastName')!.invalid && (settingsForm.get('lastName')!.dirty || settingsForm.get('lastName')!.touched)" > - <small class="form-text text-danger" *ngIf="settingsForm.get('lastName')?.errors?.required"> + <small + class="form-text text-danger" + *ngIf="settingsForm.get('lastName')?.errors?.required" + jhiTranslate="settings.messages.validate.lastname.required" + > Your last name is required. </small> - <small class="form-text text-danger" *ngIf="settingsForm.get('lastName')?.errors?.minlength"> + <small + class="form-text text-danger" + *ngIf="settingsForm.get('lastName')?.errors?.minlength" + jhiTranslate="settings.messages.validate.lastname.minlength" + > Your last name is required to be at least 1 character. </small> - <small class="form-text text-danger" *ngIf="settingsForm.get('lastName')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="settingsForm.get('lastName')?.errors?.maxlength" + jhiTranslate="settings.messages.validate.lastname.maxlength" + > Your last name cannot be longer than 50 characters. </small> </div> </div> <div class="form-group"> - <label class="form-control-label" for="email">Email</label> + <label class="form-control-label" for="email" jhiTranslate="global.form.email.label">Email</label> <input type="email" class="form-control" id="email" name="email" - placeholder="Your email" + placeholder="{{ 'global.form.email.placeholder' | translate }}" formControlName="email" data-cy="email" /> <div *ngIf="settingsForm.get('email')!.invalid && (settingsForm.get('email')!.dirty || settingsForm.get('email')!.touched)"> - <small class="form-text text-danger" *ngIf="settingsForm.get('email')?.errors?.required"> Your email is required. </small> + <small + class="form-text text-danger" + *ngIf="settingsForm.get('email')?.errors?.required" + jhiTranslate="global.messages.validate.email.required" + > + Your email is required. + </small> - <small class="form-text text-danger" *ngIf="settingsForm.get('email')?.errors?.email"> Your email is invalid. </small> + <small + class="form-text text-danger" + *ngIf="settingsForm.get('email')?.errors?.email" + jhiTranslate="global.messages.validate.email.invalid" + > + Your email is invalid. + </small> - <small class="form-text text-danger" *ngIf="settingsForm.get('email')?.errors?.minlength"> + <small + class="form-text text-danger" + *ngIf="settingsForm.get('email')?.errors?.minlength" + jhiTranslate="global.messages.validate.email.minlength" + > Your email is required to be at least 5 characters. </small> - <small class="form-text text-danger" *ngIf="settingsForm.get('email')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="settingsForm.get('email')?.errors?.maxlength" + jhiTranslate="global.messages.validate.email.maxlength" + > Your email cannot be longer than 100 characters. </small> </div> </div> - <button type="submit" [disabled]="settingsForm.invalid" class="btn btn-primary" data-cy="submit">Save</button> + <div class="form-group" *ngIf="languages && languages.length > 0"> + <label for="langKey" jhiTranslate="settings.form.language">Language</label> + <select class="form-control" id="langKey" name="langKey" formControlName="langKey" data-cy="langKey"> + <option *ngFor="let language of languages" [value]="language">{{ language | findLanguageFromKey }}</option> + </select> + </div> + + <button + type="submit" + [disabled]="settingsForm.invalid" + class="btn btn-primary" + jhiTranslate="settings.form.button" + data-cy="submit" + > + Save + </button> </form> </div> </div> diff --git a/git/sh-gateway/src/main/webapp/app/account/settings/settings.component.spec.ts b/git/sh-gateway/src/main/webapp/app/account/settings/settings.component.spec.ts index 702e65c790589db1dce88d06a0af4c997ab8b957..5e149e4d6b3d4b42846616b709a2e992c882ef59 100644 --- a/git/sh-gateway/src/main/webapp/app/account/settings/settings.component.spec.ts +++ b/git/sh-gateway/src/main/webapp/app/account/settings/settings.component.spec.ts @@ -1,9 +1,11 @@ +jest.mock('@ngx-translate/core'); jest.mock('app/core/auth/account.service'); import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { HttpClientTestingModule } from '@angular/common/http/testing'; import { FormBuilder } from '@angular/forms'; import { throwError, of } from 'rxjs'; +import { TranslateService } from '@ngx-translate/core'; import { AccountService } from 'app/core/auth/account.service'; import { Account } from 'app/core/auth/account.model'; @@ -31,7 +33,7 @@ describe('Component Tests', () => { TestBed.configureTestingModule({ imports: [HttpClientTestingModule], declarations: [SettingsComponent], - providers: [FormBuilder, AccountService], + providers: [FormBuilder, TranslateService, AccountService], }) .overrideTemplate(SettingsComponent, '') .compileComponents(); @@ -53,6 +55,7 @@ describe('Component Tests', () => { firstName: 'John', lastName: 'Doe', email: 'john.doe@mail.com', + langKey: 'en', }; // WHEN diff --git a/git/sh-gateway/src/main/webapp/app/account/settings/settings.component.ts b/git/sh-gateway/src/main/webapp/app/account/settings/settings.component.ts index 7276b6b7e61c18689b4ec4b40b7e84bea3664f72..4740dc87685d3b6d78bb9a2d752446961774cd72 100644 --- a/git/sh-gateway/src/main/webapp/app/account/settings/settings.component.ts +++ b/git/sh-gateway/src/main/webapp/app/account/settings/settings.component.ts @@ -1,8 +1,10 @@ import { Component, OnInit } from '@angular/core'; import { FormBuilder, Validators } from '@angular/forms'; +import { TranslateService } from '@ngx-translate/core'; import { AccountService } from 'app/core/auth/account.service'; import { Account } from 'app/core/auth/account.model'; +import { LANGUAGES } from 'app/config/language.constants'; @Component({ selector: 'jhi-settings', @@ -11,13 +13,15 @@ import { Account } from 'app/core/auth/account.model'; export class SettingsComponent implements OnInit { account!: Account; success = false; + languages = LANGUAGES; settingsForm = this.fb.group({ firstName: [undefined, [Validators.required, Validators.minLength(1), Validators.maxLength(50)]], lastName: [undefined, [Validators.required, Validators.minLength(1), Validators.maxLength(50)]], email: [undefined, [Validators.required, Validators.minLength(5), Validators.maxLength(254), Validators.email]], + langKey: [undefined], }); - constructor(private accountService: AccountService, private fb: FormBuilder) {} + constructor(private accountService: AccountService, private fb: FormBuilder, private translateService: TranslateService) {} ngOnInit(): void { this.accountService.identity().subscribe(account => { @@ -26,6 +30,7 @@ export class SettingsComponent implements OnInit { firstName: account.firstName, lastName: account.lastName, email: account.email, + langKey: account.langKey, }); this.account = account; @@ -39,11 +44,16 @@ export class SettingsComponent implements OnInit { this.account.firstName = this.settingsForm.get('firstName')!.value; this.account.lastName = this.settingsForm.get('lastName')!.value; this.account.email = this.settingsForm.get('email')!.value; + this.account.langKey = this.settingsForm.get('langKey')!.value; this.accountService.save(this.account).subscribe(() => { this.success = true; this.accountService.authenticate(this.account); + + if (this.account.langKey !== this.translateService.currentLang) { + this.translateService.use(this.account.langKey); + } }); } } diff --git a/git/sh-gateway/src/main/webapp/app/account/settings/settings.route.ts b/git/sh-gateway/src/main/webapp/app/account/settings/settings.route.ts index d9442dc7591ef31c2acdc5115cda820d2124288c..c940aece4c69a9e3736001ef088e850130a1620b 100644 --- a/git/sh-gateway/src/main/webapp/app/account/settings/settings.route.ts +++ b/git/sh-gateway/src/main/webapp/app/account/settings/settings.route.ts @@ -7,7 +7,7 @@ export const settingsRoute: Route = { path: 'settings', component: SettingsComponent, data: { - pageTitle: 'Settings', + pageTitle: 'global.menu.account.settings', }, canActivate: [UserRouteAccessService], }; diff --git a/git/sh-gateway/src/main/webapp/app/admin/admin-routing.module.ts b/git/sh-gateway/src/main/webapp/app/admin/admin-routing.module.ts index 41174e801b0ffb30e565991fb8724de156823f0c..af7941be34bd76a358da3701c1bd081a61215943 100644 --- a/git/sh-gateway/src/main/webapp/app/admin/admin-routing.module.ts +++ b/git/sh-gateway/src/main/webapp/app/admin/admin-routing.module.ts @@ -10,13 +10,29 @@ import { RouterModule } from '@angular/router'; path: 'user-management', loadChildren: () => import('./user-management/user-management.module').then(m => m.UserManagementModule), data: { - pageTitle: 'Users', + pageTitle: 'userManagement.home.title', }, }, { path: 'docs', loadChildren: () => import('./docs/docs.module').then(m => m.DocsModule), }, + { + path: 'configuration', + loadChildren: () => import('./configuration/configuration.module').then(m => m.ConfigurationModule), + }, + { + path: 'health', + loadChildren: () => import('./health/health.module').then(m => m.HealthModule), + }, + { + path: 'logs', + loadChildren: () => import('./logs/logs.module').then(m => m.LogsModule), + }, + { + path: 'metrics', + loadChildren: () => import('./metrics/metrics.module').then(m => m.MetricsModule), + }, { path: 'gateway', loadChildren: () => import('./gateway/gateway.module').then(m => m.GatewayModule), diff --git a/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.component.html b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.component.html new file mode 100644 index 0000000000000000000000000000000000000000..5616cdd7e641313ef16cffaea29ec65eb1068997 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.component.html @@ -0,0 +1,57 @@ +<div *ngIf="allBeans"> + <h2 id="configuration-page-heading" jhiTranslate="configuration.title" data-cy="configurationPageHeading">Configuration</h2> + + <span jhiTranslate="configuration.filter">Filter (by prefix)</span> + <input type="text" [(ngModel)]="beansFilter" (ngModelChange)="filterAndSortBeans()" class="form-control" /> + + <h3 id="spring-configuration">Spring configuration</h3> + + <table class="table table-striped table-bordered table-responsive d-table" aria-describedby="spring-configuration"> + <thead> + <tr jhiSort predicate="prefix" [(ascending)]="beansAscending" (sortChange)="filterAndSortBeans()"> + <th jhiSortBy="prefix" scope="col" class="w-40"> + <span jhiTranslate="configuration.table.prefix">Prefix</span> <fa-icon icon="sort"></fa-icon> + </th> + <th scope="col" class="w-60"><span jhiTranslate="configuration.table.properties">Properties</span></th> + </tr> + </thead> + <tbody> + <tr *ngFor="let bean of beans"> + <td> + <span>{{ bean.prefix }}</span> + </td> + <td> + <div class="row" *ngFor="let property of bean.properties | keyvalue"> + <div class="col-md-4">{{ property.key }}</div> + <div class="col-md-8"> + <span class="float-right badge-secondary break">{{ property.value | json }}</span> + </div> + </div> + </td> + </tr> + </tbody> + </table> + + <div *ngFor="let propertySource of propertySources; let i = index"> + <h4 [id]="'property-source-' + i"> + <span>{{ propertySource.name }}</span> + </h4> + + <table class="table table-sm table-striped table-bordered table-responsive d-table" [attr.aria-describedby]="'property-source-' + i"> + <thead> + <tr> + <th scope="col" class="w-40">Property</th> + <th scope="col" class="w-60">Value</th> + </tr> + </thead> + <tbody> + <tr *ngFor="let property of propertySource.properties | keyvalue"> + <td class="break">{{ property.key }}</td> + <td class="break"> + <span class="float-right badge-secondary break">{{ property.value.value }}</span> + </td> + </tr> + </tbody> + </table> + </div> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.component.spec.ts b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..2691405122efebddc258d34c53cccd50b98592b2 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.component.spec.ts @@ -0,0 +1,71 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { of } from 'rxjs'; + +import { ConfigurationComponent } from './configuration.component'; +import { ConfigurationService } from './configuration.service'; +import { Bean, PropertySource } from './configuration.model'; + +describe('Component Tests', () => { + describe('ConfigurationComponent', () => { + let comp: ConfigurationComponent; + let fixture: ComponentFixture<ConfigurationComponent>; + let service: ConfigurationService; + + beforeEach( + waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + declarations: [ConfigurationComponent], + providers: [ConfigurationService], + }) + .overrideTemplate(ConfigurationComponent, '') + .compileComponents(); + }) + ); + + beforeEach(() => { + fixture = TestBed.createComponent(ConfigurationComponent); + comp = fixture.componentInstance; + service = TestBed.inject(ConfigurationService); + }); + + describe('OnInit', () => { + it('Should call load all on init', () => { + // GIVEN + const beans: Bean[] = [ + { + prefix: 'jhipster', + properties: { + clientApp: { + name: 'jhipsterApp', + }, + }, + }, + ]; + const propertySources: PropertySource[] = [ + { + name: 'server.ports', + properties: { + 'local.server.port': { + value: '8080', + }, + }, + }, + ]; + jest.spyOn(service, 'getBeans').mockReturnValue(of(beans)); + jest.spyOn(service, 'getPropertySources').mockReturnValue(of(propertySources)); + + // WHEN + comp.ngOnInit(); + + // THEN + expect(service.getBeans).toHaveBeenCalled(); + expect(service.getPropertySources).toHaveBeenCalled(); + expect(comp.allBeans).toEqual(beans); + expect(comp.beans).toEqual(beans); + expect(comp.propertySources).toEqual(propertySources); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.component.ts b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..939d1aec88d945815ea8eab4f98934d950624e6e --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.component.ts @@ -0,0 +1,35 @@ +import { Component, OnInit } from '@angular/core'; + +import { ConfigurationService } from './configuration.service'; +import { Bean, PropertySource } from './configuration.model'; + +@Component({ + selector: 'jhi-configuration', + templateUrl: './configuration.component.html', +}) +export class ConfigurationComponent implements OnInit { + allBeans!: Bean[]; + beans: Bean[] = []; + beansFilter = ''; + beansAscending = true; + propertySources: PropertySource[] = []; + + constructor(private configurationService: ConfigurationService) {} + + ngOnInit(): void { + this.configurationService.getBeans().subscribe(beans => { + this.allBeans = beans; + this.filterAndSortBeans(); + }); + + this.configurationService.getPropertySources().subscribe(propertySources => (this.propertySources = propertySources)); + } + + filterAndSortBeans(): void { + const beansAscendingValue = this.beansAscending ? -1 : 1; + const beansAscendingValueReverse = this.beansAscending ? 1 : -1; + this.beans = this.allBeans + .filter(bean => !this.beansFilter || bean.prefix.toLowerCase().includes(this.beansFilter.toLowerCase())) + .sort((a, b) => (a.prefix < b.prefix ? beansAscendingValue : beansAscendingValueReverse)); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.model.ts b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..6a671e0a95735e7db757f20f3c7ad64d0c1aef83 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.model.ts @@ -0,0 +1,40 @@ +export interface ConfigProps { + contexts: Contexts; +} + +export interface Contexts { + [key: string]: Context; +} + +export interface Context { + beans: Beans; + parentId?: any; +} + +export interface Beans { + [key: string]: Bean; +} + +export interface Bean { + prefix: string; + properties: any; +} + +export interface Env { + activeProfiles?: string[]; + propertySources: PropertySource[]; +} + +export interface PropertySource { + name: string; + properties: Properties; +} + +export interface Properties { + [key: string]: Property; +} + +export interface Property { + value: string; + origin?: string; +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.module.ts b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..43ade13c1b4aadf550f9a51d19778f08be931762 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { SharedModule } from 'app/shared/shared.module'; + +import { ConfigurationComponent } from './configuration.component'; +import { configurationRoute } from './configuration.route'; + +@NgModule({ + imports: [SharedModule, RouterModule.forChild([configurationRoute])], + declarations: [ConfigurationComponent], +}) +export class ConfigurationModule {} diff --git a/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.route.ts b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.route.ts new file mode 100644 index 0000000000000000000000000000000000000000..119e433580117882bc39696e9a2b205cd153d80a --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.route.ts @@ -0,0 +1,11 @@ +import { Route } from '@angular/router'; + +import { ConfigurationComponent } from './configuration.component'; + +export const configurationRoute: Route = { + path: '', + component: ConfigurationComponent, + data: { + pageTitle: 'configuration.title', + }, +}; diff --git a/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.service.spec.ts b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.service.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..f10fd38825128c250cd3349aeab723294e1fe258 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.service.spec.ts @@ -0,0 +1,73 @@ +import { TestBed } from '@angular/core/testing'; +import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; + +import { ConfigurationService } from './configuration.service'; +import { Bean, ConfigProps, Env, PropertySource } from './configuration.model'; + +describe('Service Tests', () => { + describe('Logs Service', () => { + let service: ConfigurationService; + let httpMock: HttpTestingController; + let expectedResult: Bean[] | PropertySource[] | null; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + }); + + expectedResult = null; + service = TestBed.inject(ConfigurationService); + httpMock = TestBed.inject(HttpTestingController); + }); + + afterEach(() => { + httpMock.verify(); + }); + + describe('Service methods', () => { + it('should get the config', () => { + const bean: Bean = { + prefix: 'jhipster', + properties: { + clientApp: { + name: 'jhipsterApp', + }, + }, + }; + const configProps: ConfigProps = { + contexts: { + jhipster: { + beans: { + 'tech.jhipster.config.JHipsterProperties': bean, + }, + }, + }, + }; + service.getBeans().subscribe(received => (expectedResult = received)); + + const req = httpMock.expectOne({ method: 'GET' }); + req.flush(configProps); + expect(expectedResult).toEqual([bean]); + }); + + it('should get the env', () => { + const propertySources: PropertySource[] = [ + { + name: 'server.ports', + properties: { + 'local.server.port': { + value: '8080', + }, + }, + }, + ]; + const env: Env = { propertySources }; + service.getPropertySources().subscribe(received => (expectedResult = received)); + + const req = httpMock.expectOne({ method: 'GET' }); + req.flush(env); + expect(expectedResult).toEqual(propertySources); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.service.ts b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..d8d30518d5baac00bc1114d915bf722a47dccb21 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/configuration/configuration.service.ts @@ -0,0 +1,28 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; + +import { ApplicationConfigService } from 'app/core/config/application-config.service'; +import { Bean, Beans, ConfigProps, Env, PropertySource } from './configuration.model'; + +@Injectable({ providedIn: 'root' }) +export class ConfigurationService { + constructor(private http: HttpClient, private applicationConfigService: ApplicationConfigService) {} + + getBeans(): Observable<Bean[]> { + return this.http.get<ConfigProps>(this.applicationConfigService.getEndpointFor('management/configprops')).pipe( + map(configProps => + Object.values( + Object.values(configProps.contexts) + .map(context => context.beans) + .reduce((allBeans: Beans, contextBeans: Beans) => ({ ...allBeans, ...contextBeans })) + ) + ) + ); + } + + getPropertySources(): Observable<PropertySource[]> { + return this.http.get<Env>(this.applicationConfigService.getEndpointFor('management/env')).pipe(map(env => env.propertySources)); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/docs/docs.route.ts b/git/sh-gateway/src/main/webapp/app/admin/docs/docs.route.ts index f94e488a097a31d2701c50abbed4d4e522cbdcde..e51770df3a1a37971416bc12a9c41769e3fba6cb 100644 --- a/git/sh-gateway/src/main/webapp/app/admin/docs/docs.route.ts +++ b/git/sh-gateway/src/main/webapp/app/admin/docs/docs.route.ts @@ -6,6 +6,6 @@ export const docsRoute: Route = { path: '', component: DocsComponent, data: { - pageTitle: 'API', + pageTitle: 'global.menu.admin.apidocs', }, }; diff --git a/git/sh-gateway/src/main/webapp/app/admin/gateway/gateway.component.html b/git/sh-gateway/src/main/webapp/app/admin/gateway/gateway.component.html index dc2c9e3b0449196e2ade50343c66ce60d6bbb474..d5a31f23c7872bc91922b13da93f0c577b19c419 100644 --- a/git/sh-gateway/src/main/webapp/app/admin/gateway/gateway.component.html +++ b/git/sh-gateway/src/main/webapp/app/admin/gateway/gateway.component.html @@ -1,21 +1,21 @@ <div> <h2> - <span id="gateway-page-heading">Gateway</span> + <span id="gateway-page-heading" jhiTranslate="gateway.title">Gateway</span> <button class="btn btn-primary float-right" (click)="refresh()" (disabled)="(updatingRoutes)"> - <fa-icon icon="sync"></fa-icon> <span>Refresh</span> + <fa-icon icon="sync"></fa-icon> <span jhiTranslate="gateway.refresh.button">Refresh</span> </button> </h2> - <h3>Current routes</h3> + <h3 jhiTranslate="gateway.routes.title">Current routes</h3> <div class="table-responsive"> <table class="table table-striped" aria-describedby="gateway-page-heading"> <thead> <tr> - <th scope="col">URL</th> - <th scope="col">Service</th> - <th scope="col">Available servers</th> + <th scope="col" jhiTranslate="gateway.routes.url">URL</th> + <th scope="col" jhiTranslate="gateway.routes.service">Service</th> + <th scope="col" jhiTranslate="gateway.routes.servers">Available servers</th> </tr> </thead> <tbody> @@ -23,7 +23,9 @@ <td>{{ route.path }}</td> <td>{{ route.serviceId }}</td> <td> - <div *ngIf="route.serviceInstances.length === 0" class="label label-danger">Warning: no server available!</div> + <div *ngIf="route.serviceInstances.length === 0" class="label label-danger" jhiTranslate="gateway.routes.error"> + Warning: no server available! + </div> <div class="table-responsive"> <table class="table table-striped" *ngIf="route"> diff --git a/git/sh-gateway/src/main/webapp/app/admin/gateway/gateway.route.ts b/git/sh-gateway/src/main/webapp/app/admin/gateway/gateway.route.ts index 53640717e145c0413a9b63870d19565d4c7b3349..678883061509f6e12c5776c9708b093aaac70124 100644 --- a/git/sh-gateway/src/main/webapp/app/admin/gateway/gateway.route.ts +++ b/git/sh-gateway/src/main/webapp/app/admin/gateway/gateway.route.ts @@ -6,6 +6,6 @@ export const gatewayRoute: Route = { path: '', component: GatewayComponent, data: { - pageTitle: 'Gateway', + pageTitle: 'gateway.title', }, }; diff --git a/git/sh-gateway/src/main/webapp/app/admin/health/health.component.html b/git/sh-gateway/src/main/webapp/app/admin/health/health.component.html new file mode 100644 index 0000000000000000000000000000000000000000..820a9a2fb9c59406284170defe13744fcee788db --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/health/health.component.html @@ -0,0 +1,46 @@ +<div> + <h2> + <span id="health-page-heading" jhiTranslate="health.title" data-cy="healthPageHeading">Health Checks</span> + + <button class="btn btn-primary float-right" (click)="refresh()"> + <fa-icon icon="sync"></fa-icon> <span jhiTranslate="health.refresh.button">Refresh</span> + </button> + </h2> + + <div class="table-responsive"> + <table id="healthCheck" class="table table-striped" aria-describedby="health-page-heading"> + <thead> + <tr> + <th scope="col" jhiTranslate="health.table.service">Service Name</th> + <th scope="col" class="text-center" jhiTranslate="health.table.status">Status</th> + <th scope="col" class="text-center" jhiTranslate="health.details.details">Details</th> + </tr> + </thead> + <tbody *ngIf="health"> + <tr *ngFor="let componentHealth of health.components | keyvalue"> + <td> + {{ 'health.indicator.' + componentHealth.key | translate }} + </td> + <td class="text-center"> + <span + class="badge" + [ngClass]="getBadgeClass(componentHealth.value!.status)" + jhiTranslate="{{ 'health.status.' + componentHealth.value!.status }}" + > + {{ componentHealth.value!.status }} + </span> + </td> + <td class="text-center"> + <a + class="hand" + (click)="showHealth({ key: componentHealth.key, value: componentHealth.value! })" + *ngIf="componentHealth.value!.details" + > + <fa-icon icon="eye"></fa-icon> + </a> + </td> + </tr> + </tbody> + </table> + </div> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/admin/health/health.component.spec.ts b/git/sh-gateway/src/main/webapp/app/admin/health/health.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..0b3d02874a29bbb8dd9e8271090dc0a55eb942b8 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/health/health.component.spec.ts @@ -0,0 +1,70 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { HttpErrorResponse } from '@angular/common/http'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { of, throwError } from 'rxjs'; + +import { HealthComponent } from './health.component'; +import { HealthService } from './health.service'; +import { Health } from './health.model'; + +describe('Component Tests', () => { + describe('HealthComponent', () => { + let comp: HealthComponent; + let fixture: ComponentFixture<HealthComponent>; + let service: HealthService; + + beforeEach( + waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + declarations: [HealthComponent], + }) + .overrideTemplate(HealthComponent, '') + .compileComponents(); + }) + ); + + beforeEach(() => { + fixture = TestBed.createComponent(HealthComponent); + comp = fixture.componentInstance; + service = TestBed.inject(HealthService); + }); + + describe('getBadgeClass', () => { + it('should get badge class', () => { + const upBadgeClass = comp.getBadgeClass('UP'); + const downBadgeClass = comp.getBadgeClass('DOWN'); + expect(upBadgeClass).toEqual('badge-success'); + expect(downBadgeClass).toEqual('badge-danger'); + }); + }); + + describe('refresh', () => { + it('should call refresh on init', () => { + // GIVEN + const health: Health = { status: 'UP', components: { mail: { status: 'UP', details: { mailDetail: 'mail' } } } }; + jest.spyOn(service, 'checkHealth').mockReturnValue(of(health)); + + // WHEN + comp.ngOnInit(); + + // THEN + expect(service.checkHealth).toHaveBeenCalled(); + expect(comp.health).toEqual(health); + }); + + it('should handle a 503 on refreshing health data', () => { + // GIVEN + const health: Health = { status: 'DOWN', components: { mail: { status: 'DOWN' } } }; + jest.spyOn(service, 'checkHealth').mockReturnValue(throwError(new HttpErrorResponse({ status: 503, error: health }))); + + // WHEN + comp.refresh(); + + // THEN + expect(service.checkHealth).toHaveBeenCalled(); + expect(comp.health).toEqual(health); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/admin/health/health.component.ts b/git/sh-gateway/src/main/webapp/app/admin/health/health.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..f68092b1b73b907539c741fccc42793a1c8c1ad0 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/health/health.component.ts @@ -0,0 +1,44 @@ +import { Component, OnInit } from '@angular/core'; +import { HttpErrorResponse } from '@angular/common/http'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; + +import { HealthService } from './health.service'; +import { Health, HealthDetails, HealthStatus } from './health.model'; +import { HealthModalComponent } from './modal/health-modal.component'; + +@Component({ + selector: 'jhi-health', + templateUrl: './health.component.html', +}) +export class HealthComponent implements OnInit { + health?: Health; + + constructor(private modalService: NgbModal, private healthService: HealthService) {} + + ngOnInit(): void { + this.refresh(); + } + + getBadgeClass(statusState: HealthStatus): string { + if (statusState === 'UP') { + return 'badge-success'; + } + return 'badge-danger'; + } + + refresh(): void { + this.healthService.checkHealth().subscribe( + health => (this.health = health), + (error: HttpErrorResponse) => { + if (error.status === 503) { + this.health = error.error; + } + } + ); + } + + showHealth(health: { key: string; value: HealthDetails }): void { + const modalRef = this.modalService.open(HealthModalComponent); + modalRef.componentInstance.health = health; + } +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/health/health.model.ts b/git/sh-gateway/src/main/webapp/app/admin/health/health.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..3a9896e2fb7e73c71d2472d293d84d860891ffaf --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/health/health.model.ts @@ -0,0 +1,25 @@ +export type HealthStatus = 'UP' | 'DOWN' | 'UNKNOWN' | 'OUT_OF_SERVICE'; + +export type HealthKey = + | 'discoveryComposite' + | 'refreshScope' + | 'clientConfigServer' + | 'hystrix' + | 'diskSpace' + | 'mail' + | 'ping' + | 'livenessState' + | 'readinessState' + | 'db'; + +export interface Health { + status: HealthStatus; + components: { + [key in HealthKey]?: HealthDetails; + }; +} + +export interface HealthDetails { + status: HealthStatus; + details?: { [key: string]: unknown }; +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/health/health.module.ts b/git/sh-gateway/src/main/webapp/app/admin/health/health.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..f0cfd8a87a17eba7c94cee19d6cc62e6e4cfc1a3 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/health/health.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { SharedModule } from 'app/shared/shared.module'; + +import { HealthComponent } from './health.component'; +import { HealthModalComponent } from './modal/health-modal.component'; +import { healthRoute } from './health.route'; + +@NgModule({ + imports: [SharedModule, RouterModule.forChild([healthRoute])], + declarations: [HealthComponent, HealthModalComponent], + entryComponents: [HealthModalComponent], +}) +export class HealthModule {} diff --git a/git/sh-gateway/src/main/webapp/app/admin/health/health.route.ts b/git/sh-gateway/src/main/webapp/app/admin/health/health.route.ts new file mode 100644 index 0000000000000000000000000000000000000000..bd760272e6b579977f8ecd2f3868ee9cd2d3f3db --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/health/health.route.ts @@ -0,0 +1,11 @@ +import { Route } from '@angular/router'; + +import { HealthComponent } from './health.component'; + +export const healthRoute: Route = { + path: '', + component: HealthComponent, + data: { + pageTitle: 'health.title', + }, +}; diff --git a/git/sh-gateway/src/main/webapp/app/admin/health/health.service.ts b/git/sh-gateway/src/main/webapp/app/admin/health/health.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..4712a97873359781a3a4e4905fe11d0b0a5a97e8 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/health/health.service.ts @@ -0,0 +1,15 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; + +import { ApplicationConfigService } from 'app/core/config/application-config.service'; +import { Health } from './health.model'; + +@Injectable({ providedIn: 'root' }) +export class HealthService { + constructor(private http: HttpClient, private applicationConfigService: ApplicationConfigService) {} + + checkHealth(): Observable<Health> { + return this.http.get<Health>(this.applicationConfigService.getEndpointFor('management/health')); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/health/modal/health-modal.component.html b/git/sh-gateway/src/main/webapp/app/admin/health/modal/health-modal.component.html new file mode 100644 index 0000000000000000000000000000000000000000..8dfdc428bc2a5c9a405925b57fefef0904c2f0f9 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/health/modal/health-modal.component.html @@ -0,0 +1,36 @@ +<div class="modal-header"> + <h4 class="modal-title" id="showHealthLabel" *ngIf="health"> + {{ 'health.indicator.' + health.key | translate }} + </h4> + + <button aria-label="Close" data-dismiss="modal" class="close" type="button" (click)="dismiss()"> + <span aria-hidden="true">×</span> + </button> +</div> + +<div class="modal-body pad"> + <div *ngIf="health"> + <h5 jhiTranslate="health.details.properties">Properties</h5> + + <div class="table-responsive"> + <table class="table table-striped" aria-describedby="showHealthLabel"> + <thead> + <tr> + <th scope="col" class="text-left" jhiTranslate="health.details.name">Name</th> + <th scope="col" class="text-left" jhiTranslate="health.details.value">Value</th> + </tr> + </thead> + <tbody> + <tr *ngFor="let healthDetail of health.value.details! | keyvalue"> + <td class="text-left">{{ healthDetail.key }}</td> + <td class="text-left">{{ readableValue(healthDetail.value) }}</td> + </tr> + </tbody> + </table> + </div> + </div> +</div> + +<div class="modal-footer"> + <button data-dismiss="modal" class="btn btn-secondary float-left" type="button" (click)="dismiss()">Done</button> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts b/git/sh-gateway/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..a8184dac1ee7f711d2fadd9b83d54a5b18bfb43d --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts @@ -0,0 +1,116 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; + +import { HealthModalComponent } from './health-modal.component'; + +describe('Component Tests', () => { + describe('HealthModalComponent', () => { + let comp: HealthModalComponent; + let fixture: ComponentFixture<HealthModalComponent>; + let mockActiveModal: NgbActiveModal; + + beforeEach( + waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + declarations: [HealthModalComponent], + providers: [NgbActiveModal], + }) + .overrideTemplate(HealthModalComponent, '') + .compileComponents(); + }) + ); + + beforeEach(() => { + fixture = TestBed.createComponent(HealthModalComponent); + comp = fixture.componentInstance; + mockActiveModal = TestBed.inject(NgbActiveModal); + }); + + describe('readableValue', () => { + it('should return stringify value', () => { + // GIVEN + comp.health = undefined; + + // WHEN + const result = comp.readableValue({ name: 'jhipster' }); + + // THEN + expect(result).toEqual('{"name":"jhipster"}'); + }); + + it('should return string value', () => { + // GIVEN + comp.health = undefined; + + // WHEN + const result = comp.readableValue('jhipster'); + + // THEN + expect(result).toEqual('jhipster'); + }); + + it('should return storage space in an human readable unit (GB)', () => { + // GIVEN + comp.health = { + key: 'diskSpace', + value: { + status: 'UP', + }, + }; + + // WHEN + const result = comp.readableValue(1073741825); + + // THEN + expect(result).toEqual('1.00 GB'); + }); + + it('should return storage space in an human readable unit (MB)', () => { + // GIVEN + comp.health = { + key: 'diskSpace', + value: { + status: 'UP', + }, + }; + + // WHEN + const result = comp.readableValue(1073741824); + + // THEN + expect(result).toEqual('1024.00 MB'); + }); + + it('should return string value', () => { + // GIVEN + comp.health = { + key: 'mail', + value: { + status: 'UP', + }, + }; + + // WHEN + const result = comp.readableValue(1234); + + // THEN + expect(result).toEqual('1234'); + }); + }); + + describe('dismiss', () => { + it('should call dismiss when dismiss modal is called', () => { + // GIVEN + const spy = jest.spyOn(mockActiveModal, 'dismiss'); + + // WHEN + comp.dismiss(); + + // THEN + expect(spy).toHaveBeenCalled(); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/admin/health/modal/health-modal.component.ts b/git/sh-gateway/src/main/webapp/app/admin/health/modal/health-modal.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..02f7cc94fbff731cc06e151c591d1af881641b27 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/health/modal/health-modal.component.ts @@ -0,0 +1,34 @@ +import { Component } from '@angular/core'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; + +import { HealthKey, HealthDetails } from '../health.model'; + +@Component({ + selector: 'jhi-health-modal', + templateUrl: './health-modal.component.html', +}) +export class HealthModalComponent { + health?: { key: HealthKey; value: HealthDetails }; + + constructor(private activeModal: NgbActiveModal) {} + + readableValue(value: any): string { + if (this.health?.key === 'diskSpace') { + // Should display storage space in an human readable unit + const val = value / 1073741824; + if (val > 1) { + return `${val.toFixed(2)} GB`; + } + return `${(value / 1048576).toFixed(2)} MB`; + } + + if (typeof value === 'object') { + return JSON.stringify(value); + } + return String(value); + } + + dismiss(): void { + this.activeModal.dismiss(); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/logs/log.model.ts b/git/sh-gateway/src/main/webapp/app/admin/logs/log.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..83f2e154a961d4aae3799eea827dfe5ac1ee5f39 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/logs/log.model.ts @@ -0,0 +1,15 @@ +export type Level = 'TRACE' | 'DEBUG' | 'INFO' | 'WARN' | 'ERROR' | 'OFF'; + +export interface Logger { + configuredLevel: Level | null; + effectiveLevel: Level; +} + +export interface LoggersResponse { + levels: Level[]; + loggers: { [key: string]: Logger }; +} + +export class Log { + constructor(public name: string, public level: Level) {} +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/logs/logs.component.html b/git/sh-gateway/src/main/webapp/app/admin/logs/logs.component.html new file mode 100644 index 0000000000000000000000000000000000000000..2e1647b56717e4697de3047d79141f98587716e2 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/logs/logs.component.html @@ -0,0 +1,72 @@ +<div class="table-responsive" *ngIf="loggers"> + <h2 id="logs-page-heading" jhiTranslate="logs.title" data-cy="logsPageHeading">Logs</h2> + + <p jhiTranslate="logs.nbloggers" [translateValues]="{ total: loggers.length }">There are {{ loggers.length }} loggers.</p> + + <span jhiTranslate="logs.filter">Filter</span> + <input type="text" [(ngModel)]="filter" (ngModelChange)="filterAndSort()" class="form-control" /> + + <table class="table table-sm table-striped table-bordered" aria-describedby="logs-page-heading"> + <thead> + <tr jhiSort [(predicate)]="orderProp" [(ascending)]="ascending" (sortChange)="filterAndSort()"> + <th jhiSortBy="name" scope="col"><span jhiTranslate="logs.table.name">Name</span> <fa-icon icon="sort"></fa-icon></th> + <th jhiSortBy="level" scope="col"><span jhiTranslate="logs.table.level">Level</span> <fa-icon icon="sort"></fa-icon></th> + </tr> + </thead> + + <tr *ngFor="let logger of filteredAndOrderedLoggers"> + <td> + <small>{{ logger.name | slice: 0:140 }}</small> + </td> + <td> + <button + (click)="changeLevel(logger.name, 'TRACE')" + [ngClass]="logger.level === 'TRACE' ? 'btn-primary' : 'btn-light'" + class="btn btn-sm" + > + TRACE + </button> + + <button + (click)="changeLevel(logger.name, 'DEBUG')" + [ngClass]="logger.level === 'DEBUG' ? 'btn-success' : 'btn-light'" + class="btn btn-sm" + > + DEBUG + </button> + + <button + (click)="changeLevel(logger.name, 'INFO')" + [ngClass]="logger.level === 'INFO' ? 'btn-info' : 'btn-light'" + class="btn btn-sm" + > + INFO + </button> + + <button + (click)="changeLevel(logger.name, 'WARN')" + [ngClass]="logger.level === 'WARN' ? 'btn-warning' : 'btn-light'" + class="btn btn-sm" + > + WARN + </button> + + <button + (click)="changeLevel(logger.name, 'ERROR')" + [ngClass]="logger.level === 'ERROR' ? 'btn-danger' : 'btn-light'" + class="btn btn-sm" + > + ERROR + </button> + + <button + (click)="changeLevel(logger.name, 'OFF')" + [ngClass]="logger.level === 'OFF' ? 'btn-secondary' : 'btn-light'" + class="btn btn-sm" + > + OFF + </button> + </td> + </tr> + </table> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/admin/logs/logs.component.spec.ts b/git/sh-gateway/src/main/webapp/app/admin/logs/logs.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..f50de022a13387d71a6a3c1f90c9e944da1657ac --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/logs/logs.component.spec.ts @@ -0,0 +1,87 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { of } from 'rxjs'; + +import { LogsComponent } from './logs.component'; +import { LogsService } from './logs.service'; +import { Log, LoggersResponse } from './log.model'; + +describe('Component Tests', () => { + describe('LogsComponent', () => { + let comp: LogsComponent; + let fixture: ComponentFixture<LogsComponent>; + let service: LogsService; + + beforeEach( + waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + declarations: [LogsComponent], + providers: [LogsService], + }) + .overrideTemplate(LogsComponent, '') + .compileComponents(); + }) + ); + + beforeEach(() => { + fixture = TestBed.createComponent(LogsComponent); + comp = fixture.componentInstance; + service = TestBed.inject(LogsService); + }); + + describe('OnInit', () => { + it('should set all default values correctly', () => { + expect(comp.filter).toBe(''); + expect(comp.orderProp).toBe('name'); + expect(comp.ascending).toBe(true); + }); + + it('Should call load all on init', () => { + // GIVEN + const log = new Log('main', 'WARN'); + jest.spyOn(service, 'findAll').mockReturnValue( + of({ + loggers: { + main: { + effectiveLevel: 'WARN', + }, + }, + } as unknown as LoggersResponse) + ); + + // WHEN + comp.ngOnInit(); + + // THEN + expect(service.findAll).toHaveBeenCalled(); + expect(comp.loggers?.[0]).toEqual(expect.objectContaining(log)); + }); + }); + + describe('change log level', () => { + it('should change log level correctly', () => { + // GIVEN + const log = new Log('main', 'ERROR'); + jest.spyOn(service, 'changeLevel').mockReturnValue(of({})); + jest.spyOn(service, 'findAll').mockReturnValue( + of({ + loggers: { + main: { + effectiveLevel: 'ERROR', + }, + }, + } as unknown as LoggersResponse) + ); + + // WHEN + comp.changeLevel('main', 'ERROR'); + + // THEN + expect(service.changeLevel).toHaveBeenCalled(); + expect(service.findAll).toHaveBeenCalled(); + expect(comp.loggers?.[0]).toEqual(expect.objectContaining(log)); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/admin/logs/logs.component.ts b/git/sh-gateway/src/main/webapp/app/admin/logs/logs.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..6320accb7d6cb049693abee75bd67e44ade924cc --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/logs/logs.component.ts @@ -0,0 +1,48 @@ +import { Component, OnInit } from '@angular/core'; + +import { Log, LoggersResponse, Level } from './log.model'; +import { LogsService } from './logs.service'; + +@Component({ + selector: 'jhi-logs', + templateUrl: './logs.component.html', +}) +export class LogsComponent implements OnInit { + loggers?: Log[]; + filteredAndOrderedLoggers?: Log[]; + filter = ''; + orderProp: keyof Log = 'name'; + ascending = true; + + constructor(private logsService: LogsService) {} + + ngOnInit(): void { + this.findAndExtractLoggers(); + } + + changeLevel(name: string, level: Level): void { + this.logsService.changeLevel(name, level).subscribe(() => this.findAndExtractLoggers()); + } + + filterAndSort(): void { + this.filteredAndOrderedLoggers = this.loggers!.filter( + logger => !this.filter || logger.name.toLowerCase().includes(this.filter.toLowerCase()) + ).sort((a, b) => { + if (a[this.orderProp] < b[this.orderProp]) { + return this.ascending ? -1 : 1; + } else if (a[this.orderProp] > b[this.orderProp]) { + return this.ascending ? 1 : -1; + } else if (this.orderProp === 'level') { + return a.name < b.name ? -1 : 1; + } + return 0; + }); + } + + private findAndExtractLoggers(): void { + this.logsService.findAll().subscribe((response: LoggersResponse) => { + this.loggers = Object.entries(response.loggers).map(([key, logger]) => new Log(key, logger.effectiveLevel)); + this.filterAndSort(); + }); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/logs/logs.module.ts b/git/sh-gateway/src/main/webapp/app/admin/logs/logs.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..720af27940d37e7092f271478a63ca41fff992e1 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/logs/logs.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { SharedModule } from 'app/shared/shared.module'; + +import { LogsComponent } from './logs.component'; +import { logsRoute } from './logs.route'; + +@NgModule({ + imports: [SharedModule, RouterModule.forChild([logsRoute])], + declarations: [LogsComponent], +}) +export class LogsModule {} diff --git a/git/sh-gateway/src/main/webapp/app/admin/logs/logs.route.ts b/git/sh-gateway/src/main/webapp/app/admin/logs/logs.route.ts new file mode 100644 index 0000000000000000000000000000000000000000..a8ffdcdff8a2bd5783610033ab05bfa1cfa40b13 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/logs/logs.route.ts @@ -0,0 +1,11 @@ +import { Route } from '@angular/router'; + +import { LogsComponent } from './logs.component'; + +export const logsRoute: Route = { + path: '', + component: LogsComponent, + data: { + pageTitle: 'logs.title', + }, +}; diff --git a/git/sh-gateway/src/main/webapp/app/admin/logs/logs.service.spec.ts b/git/sh-gateway/src/main/webapp/app/admin/logs/logs.service.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..4c1e90f3c3a83094f9f11e783bad6f05aa6640fc --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/logs/logs.service.spec.ts @@ -0,0 +1,33 @@ +import { TestBed } from '@angular/core/testing'; +import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; + +import { LogsService } from './logs.service'; + +describe('Service Tests', () => { + describe('Logs Service', () => { + let service: LogsService; + let httpMock: HttpTestingController; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + }); + + service = TestBed.inject(LogsService); + httpMock = TestBed.inject(HttpTestingController); + }); + + afterEach(() => { + httpMock.verify(); + }); + + describe('Service methods', () => { + it('should change log level', () => { + service.changeLevel('main', 'ERROR').subscribe(); + + const req = httpMock.expectOne({ method: 'POST' }); + expect(req.request.body).toEqual({ configuredLevel: 'ERROR' }); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/admin/logs/logs.service.ts b/git/sh-gateway/src/main/webapp/app/admin/logs/logs.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..625868a8b794155c6f31a704a81b52f727e8f2e4 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/logs/logs.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; + +import { ApplicationConfigService } from 'app/core/config/application-config.service'; +import { LoggersResponse, Level } from './log.model'; + +@Injectable({ providedIn: 'root' }) +export class LogsService { + constructor(private http: HttpClient, private applicationConfigService: ApplicationConfigService) {} + + changeLevel(name: string, configuredLevel: Level): Observable<{}> { + return this.http.post(this.applicationConfigService.getEndpointFor(`management/loggers/${name}`), { configuredLevel }); + } + + findAll(): Observable<LoggersResponse> { + return this.http.get<LoggersResponse>(this.applicationConfigService.getEndpointFor('management/loggers')); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html new file mode 100644 index 0000000000000000000000000000000000000000..61069ce89fe987e01ade4b0e73cba78b16939485 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html @@ -0,0 +1,28 @@ +<h4 jhiTranslate="metrics.jvm.memory.title">Memory</h4> + +<div *ngIf="!updating && jvmMemoryMetrics"> + <div *ngFor="let entry of jvmMemoryMetrics | keyvalue"> + <span *ngIf="entry.value.max != -1; else other"> + <span>{{ entry.key }}</span> + ({{ entry.value.used / 1048576 | number: '1.0-0' }}M / {{ entry.value.max / 1048576 | number: '1.0-0' }}M) + </span> + + <div>Committed : {{ entry.value.committed / 1048576 | number: '1.0-0' }}M</div> + + <ng-template #other + ><span + ><span>{{ entry.key }}</span> {{ entry.value.used / 1048576 | number: '1.0-0' }}M</span + ></ng-template + > + + <ngb-progressbar + *ngIf="entry.value.max != -1" + type="success" + [value]="(100 * entry.value.used) / entry.value.max" + [striped]="true" + [animated]="false" + > + <span>{{ (entry.value.used * 100) / entry.value.max | number: '1.0-0' }}%</span> + </ngb-progressbar> + </div> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..d434b8aec47ad41230513c1ecd42da5a51828d5d --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.ts @@ -0,0 +1,19 @@ +import { Component, Input } from '@angular/core'; + +import { JvmMetrics } from 'app/admin/metrics/metrics.model'; + +@Component({ + selector: 'jhi-jvm-memory', + templateUrl: './jvm-memory.component.html', +}) +export class JvmMemoryComponent { + /** + * object containing all jvm memory metrics + */ + @Input() jvmMemoryMetrics?: { [key: string]: JvmMetrics }; + + /** + * boolean field saying if the metrics are in the process of being updated + */ + @Input() updating?: boolean; +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.html b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.html new file mode 100644 index 0000000000000000000000000000000000000000..55ecab67539841ccee756ba95f6c2fc5c738523d --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.html @@ -0,0 +1,55 @@ +<h4 jhiTranslate="metrics.jvm.threads.title">Threads</h4> + +<span><span jhiTranslate="metrics.jvm.threads.runnable">Runnable</span> {{ threadStats.threadDumpRunnable }}</span> + +<ngb-progressbar + [value]="threadStats.threadDumpRunnable" + [max]="threadStats.threadDumpAll" + [striped]="true" + [animated]="false" + type="success" +> + <span>{{ (threadStats.threadDumpRunnable * 100) / threadStats.threadDumpAll | number: '1.0-0' }}%</span> +</ngb-progressbar> + +<span><span jhiTranslate="metrics.jvm.threads.timedwaiting">Timed Waiting</span> ({{ threadStats.threadDumpTimedWaiting }})</span> + +<ngb-progressbar + [value]="threadStats.threadDumpTimedWaiting" + [max]="threadStats.threadDumpAll" + [striped]="true" + [animated]="false" + type="warning" +> + <span>{{ (threadStats.threadDumpTimedWaiting * 100) / threadStats.threadDumpAll | number: '1.0-0' }}%</span> +</ngb-progressbar> + +<span><span jhiTranslate="metrics.jvm.threads.waiting">Waiting</span> ({{ threadStats.threadDumpWaiting }})</span> + +<ngb-progressbar + [value]="threadStats.threadDumpWaiting" + [max]="threadStats.threadDumpAll" + [striped]="true" + [animated]="false" + type="warning" +> + <span>{{ (threadStats.threadDumpWaiting * 100) / threadStats.threadDumpAll | number: '1.0-0' }}%</span> +</ngb-progressbar> + +<span><span jhiTranslate="metrics.jvm.threads.blocked">Blocked</span> ({{ threadStats.threadDumpBlocked }})</span> + +<ngb-progressbar + [value]="threadStats.threadDumpBlocked" + [max]="threadStats.threadDumpAll" + [striped]="true" + [animated]="false" + type="success" +> + <span>{{ (threadStats.threadDumpBlocked * 100) / threadStats.threadDumpAll | number: '1.0-0' }}%</span> +</ngb-progressbar> + +<div>Total: {{ threadStats.threadDumpAll }}</div> + +<button class="hand btn btn-primary btn-sm" (click)="open()" data-toggle="modal" data-target="#threadDump"> + <span>Expand</span> +</button> diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..de98fb26f6eea02101e030505cb36d81d6d21ba3 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.ts @@ -0,0 +1,55 @@ +import { Component, Input } from '@angular/core'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; + +import { Thread, ThreadState } from 'app/admin/metrics/metrics.model'; +import { MetricsModalThreadsComponent } from '../metrics-modal-threads/metrics-modal-threads.component'; + +@Component({ + selector: 'jhi-jvm-threads', + templateUrl: './jvm-threads.component.html', +}) +export class JvmThreadsComponent { + threadStats = { + threadDumpAll: 0, + threadDumpRunnable: 0, + threadDumpTimedWaiting: 0, + threadDumpWaiting: 0, + threadDumpBlocked: 0, + }; + + @Input() + set threads(threads: Thread[] | undefined) { + this._threads = threads; + + threads?.forEach(thread => { + if (thread.threadState === ThreadState.Runnable) { + this.threadStats.threadDumpRunnable += 1; + } else if (thread.threadState === ThreadState.Waiting) { + this.threadStats.threadDumpWaiting += 1; + } else if (thread.threadState === ThreadState.TimedWaiting) { + this.threadStats.threadDumpTimedWaiting += 1; + } else if (thread.threadState === ThreadState.Blocked) { + this.threadStats.threadDumpBlocked += 1; + } + }); + + this.threadStats.threadDumpAll = + this.threadStats.threadDumpRunnable + + this.threadStats.threadDumpWaiting + + this.threadStats.threadDumpTimedWaiting + + this.threadStats.threadDumpBlocked; + } + + get threads(): Thread[] | undefined { + return this._threads; + } + + private _threads: Thread[] | undefined; + + constructor(private modalService: NgbModal) {} + + open(): void { + const modalRef = this.modalService.open(MetricsModalThreadsComponent); + modalRef.componentInstance.threads = this.threads; + } +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html new file mode 100644 index 0000000000000000000000000000000000000000..4384c580421ff44f3d1620b80cf4733690574b5c --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html @@ -0,0 +1,42 @@ +<h3 id="cacheMetrics" jhiTranslate="metrics.cache.title">Cache statistics</h3> + +<div class="table-responsive" *ngIf="!updating && cacheMetrics"> + <table class="table table-striped" aria-describedby="cacheMetrics"> + <thead> + <tr> + <th scope="col" jhiTranslate="metrics.cache.cachename">Cache name</th> + <th scope="col" class="text-right" jhiTranslate="metrics.cache.hits">Cache Hits</th> + <th scope="col" class="text-right" jhiTranslate="metrics.cache.misses">Cache Misses</th> + <th scope="col" class="text-right" jhiTranslate="metrics.cache.gets">Cache Gets</th> + <th scope="col" class="text-right" jhiTranslate="metrics.cache.puts">Cache Puts</th> + <th scope="col" class="text-right" jhiTranslate="metrics.cache.removals">Cache Removals</th> + <th scope="col" class="text-right" jhiTranslate="metrics.cache.evictions">Cache Evictions</th> + <th scope="col" class="text-right" jhiTranslate="metrics.cache.hitPercent">Cache Hit %</th> + <th scope="col" class="text-right" jhiTranslate="metrics.cache.missPercent">Cache Miss %</th> + </tr> + </thead> + <tbody> + <tr *ngFor="let entry of cacheMetrics | keyvalue"> + <td>{{ entry.key }}</td> + <td class="text-right">{{ entry.value['cache.gets.hit'] }}</td> + <td class="text-right">{{ entry.value['cache.gets.miss'] }}</td> + <td class="text-right">{{ entry.value['cache.gets.hit'] + entry.value['cache.gets.miss'] }}</td> + <td class="text-right">{{ entry.value['cache.puts'] }}</td> + <td class="text-right">{{ entry.value['cache.removals'] }}</td> + <td class="text-right">{{ entry.value['cache.evictions'] }}</td> + <td class="text-right"> + {{ + filterNaN((100 * entry.value['cache.gets.hit']) / (entry.value['cache.gets.hit'] + entry.value['cache.gets.miss'])) + | number: '1.0-4' + }} + </td> + <td class="text-right"> + {{ + filterNaN((100 * entry.value['cache.gets.miss']) / (entry.value['cache.gets.hit'] + entry.value['cache.gets.miss'])) + | number: '1.0-4' + }} + </td> + </tr> + </tbody> + </table> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..6d721463c4c78d5bd81340f48d422bcaa94560bf --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.ts @@ -0,0 +1,23 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +import { CacheMetrics } from 'app/admin/metrics/metrics.model'; +import { filterNaN } from 'app/core/util/operators'; + +@Component({ + selector: 'jhi-metrics-cache', + templateUrl: './metrics-cache.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class MetricsCacheComponent { + /** + * object containing all cache related metrics + */ + @Input() cacheMetrics?: { [key: string]: CacheMetrics }; + + /** + * boolean field saying if the metrics are in the process of being updated + */ + @Input() updating?: boolean; + + filterNaN = (input: number): number => filterNaN(input); +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html new file mode 100644 index 0000000000000000000000000000000000000000..2717f65050142634286920ae43f792cc167a8644 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html @@ -0,0 +1,57 @@ +<h3 id="datasourceMetrics" jhiTranslate="metrics.datasource.title">DataSource statistics (time in millisecond)</h3> + +<div class="table-responsive" *ngIf="!updating && datasourceMetrics"> + <table class="table table-striped" aria-describedby="datasourceMetrics"> + <thead> + <tr> + <th scope="col"> + <span jhiTranslate="metrics.datasource.usage">Connection Pool Usage</span> (active: {{ datasourceMetrics.active.value }}, min: + {{ datasourceMetrics.min.value }}, max: {{ datasourceMetrics.max.value }}, idle: {{ datasourceMetrics.idle.value }}) + </th> + <th scope="col" class="text-right" jhiTranslate="metrics.datasource.count">Count</th> + <th scope="col" class="text-right" jhiTranslate="metrics.datasource.mean">Mean</th> + <th scope="col" class="text-right" jhiTranslate="metrics.servicesstats.table.min">Min</th> + <th scope="col" class="text-right" jhiTranslate="metrics.servicesstats.table.p50">p50</th> + <th scope="col" class="text-right" jhiTranslate="metrics.servicesstats.table.p75">p75</th> + <th scope="col" class="text-right" jhiTranslate="metrics.servicesstats.table.p95">p95</th> + <th scope="col" class="text-right" jhiTranslate="metrics.servicesstats.table.p99">p99</th> + <th scope="col" class="text-right" jhiTranslate="metrics.datasource.max">Max</th> + </tr> + </thead> + <tbody> + <tr> + <td>Acquire</td> + <td class="text-right">{{ datasourceMetrics.acquire.count }}</td> + <td class="text-right">{{ filterNaN(datasourceMetrics.acquire.mean) | number: '1.0-2' }}</td> + <td class="text-right">{{ datasourceMetrics.acquire['0.0'] | number: '1.0-3' }}</td> + <td class="text-right">{{ datasourceMetrics.acquire['0.5'] | number: '1.0-3' }}</td> + <td class="text-right">{{ datasourceMetrics.acquire['0.75'] | number: '1.0-3' }}</td> + <td class="text-right">{{ datasourceMetrics.acquire['0.95'] | number: '1.0-3' }}</td> + <td class="text-right">{{ datasourceMetrics.acquire['0.99'] | number: '1.0-3' }}</td> + <td class="text-right">{{ filterNaN(datasourceMetrics.acquire.max) | number: '1.0-2' }}</td> + </tr> + <tr> + <td>Creation</td> + <td class="text-right">{{ datasourceMetrics.creation.count }}</td> + <td class="text-right">{{ filterNaN(datasourceMetrics.creation.mean) | number: '1.0-2' }}</td> + <td class="text-right">{{ datasourceMetrics.creation['0.0'] | number: '1.0-3' }}</td> + <td class="text-right">{{ datasourceMetrics.creation['0.5'] | number: '1.0-3' }}</td> + <td class="text-right">{{ datasourceMetrics.creation['0.75'] | number: '1.0-3' }}</td> + <td class="text-right">{{ datasourceMetrics.creation['0.95'] | number: '1.0-3' }}</td> + <td class="text-right">{{ datasourceMetrics.creation['0.99'] | number: '1.0-3' }}</td> + <td class="text-right">{{ filterNaN(datasourceMetrics.creation.max) | number: '1.0-2' }}</td> + </tr> + <tr> + <td>Usage</td> + <td class="text-right">{{ datasourceMetrics.usage.count }}</td> + <td class="text-right">{{ filterNaN(datasourceMetrics.usage.mean) | number: '1.0-2' }}</td> + <td class="text-right">{{ datasourceMetrics.usage['0.0'] | number: '1.0-3' }}</td> + <td class="text-right">{{ datasourceMetrics.usage['0.5'] | number: '1.0-3' }}</td> + <td class="text-right">{{ datasourceMetrics.usage['0.75'] | number: '1.0-3' }}</td> + <td class="text-right">{{ datasourceMetrics.usage['0.95'] | number: '1.0-3' }}</td> + <td class="text-right">{{ datasourceMetrics.usage['0.99'] | number: '1.0-3' }}</td> + <td class="text-right">{{ filterNaN(datasourceMetrics.usage.max) | number: '1.0-2' }}</td> + </tr> + </tbody> + </table> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..eefcf585be1a56f8296acf479c0b9f9f6614d7cb --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.ts @@ -0,0 +1,23 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +import { Databases } from 'app/admin/metrics/metrics.model'; +import { filterNaN } from 'app/core/util/operators'; + +@Component({ + selector: 'jhi-metrics-datasource', + templateUrl: './metrics-datasource.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class MetricsDatasourceComponent { + /** + * object containing all datasource related metrics + */ + @Input() datasourceMetrics?: Databases; + + /** + * boolean field saying if the metrics are in the process of being updated + */ + @Input() updating?: boolean; + + filterNaN = (input: number): number => filterNaN(input); +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html new file mode 100644 index 0000000000000000000000000000000000000000..ee6ab22dff28d6748b4aff76e9f01e114acb780a --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html @@ -0,0 +1,24 @@ +<h3 id="endpointsRequestsMetrics">Endpoints requests (time in millisecond)</h3> + +<div class="table-responsive" *ngIf="!updating && endpointsRequestsMetrics"> + <table class="table table-striped" aria-describedby="endpointsRequestsMetrics"> + <thead> + <tr> + <th scope="col">Method</th> + <th scope="col">Endpoint url</th> + <th scope="col" class="text-right">Count</th> + <th scope="col" class="text-right">Mean</th> + </tr> + </thead> + <tbody> + <ng-container *ngFor="let entry of endpointsRequestsMetrics | keyvalue"> + <tr *ngFor="let method of entry.value | keyvalue"> + <td>{{ method.key }}</td> + <td>{{ entry.key }}</td> + <td class="text-right">{{ method.value!.count }}</td> + <td class="text-right">{{ method.value!.mean | number: '1.0-3' }}</td> + </tr> + </ng-container> + </tbody> + </table> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..aa4ceb4b4fc42b44c37def423edd9cfe34c5a58f --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.ts @@ -0,0 +1,19 @@ +import { Component, Input } from '@angular/core'; + +import { Services } from 'app/admin/metrics/metrics.model'; + +@Component({ + selector: 'jhi-metrics-endpoints-requests', + templateUrl: './metrics-endpoints-requests.component.html', +}) +export class MetricsEndpointsRequestsComponent { + /** + * object containing service related metrics + */ + @Input() endpointsRequestsMetrics?: Services; + + /** + * boolean field saying if the metrics are in the process of being updated + */ + @Input() updating?: boolean; +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html new file mode 100644 index 0000000000000000000000000000000000000000..a930492a14c64988a49dbd1dd872d18882a9a8a2 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html @@ -0,0 +1,92 @@ +<h3 id="garbageCollectorMetrics" jhiTranslate="metrics.jvm.gc.title">Garbage collector statistics</h3> + +<div class="row"> + <div class="col-md-4"> + <div *ngIf="garbageCollectorMetrics"> + <span> + GC Live Data Size/GC Max Data Size ({{ garbageCollectorMetrics['jvm.gc.live.data.size'] / 1048576 | number: '1.0-0' }}M / + {{ garbageCollectorMetrics['jvm.gc.max.data.size'] / 1048576 | number: '1.0-0' }}M) + </span> + + <ngb-progressbar + [max]="garbageCollectorMetrics['jvm.gc.max.data.size']" + [value]="garbageCollectorMetrics['jvm.gc.live.data.size']" + [striped]="true" + [animated]="false" + type="success" + > + <span> + {{ + (100 * garbageCollectorMetrics['jvm.gc.live.data.size']) / garbageCollectorMetrics['jvm.gc.max.data.size'] | number: '1.0-2' + }}% + </span> + </ngb-progressbar> + </div> + </div> + + <div class="col-md-4"> + <div *ngIf="garbageCollectorMetrics"> + <span> + GC Memory Promoted/GC Memory Allocated ({{ garbageCollectorMetrics['jvm.gc.memory.promoted'] / 1048576 | number: '1.0-0' }}M / + {{ garbageCollectorMetrics['jvm.gc.memory.allocated'] / 1048576 | number: '1.0-0' }}M) + </span> + + <ngb-progressbar + [max]="garbageCollectorMetrics['jvm.gc.memory.allocated']" + [value]="garbageCollectorMetrics['jvm.gc.memory.promoted']" + [striped]="true" + [animated]="false" + type="success" + > + <span> + {{ + (100 * garbageCollectorMetrics['jvm.gc.memory.promoted']) / garbageCollectorMetrics['jvm.gc.memory.allocated'] + | number: '1.0-2' + }}% + </span> + </ngb-progressbar> + </div> + </div> + + <div id="garbageCollectorMetrics" class="col-md-4"> + <div class="row" *ngIf="garbageCollectorMetrics"> + <div class="col-md-9">Classes loaded</div> + <div class="col-md-3 text-right">{{ garbageCollectorMetrics.classesLoaded }}</div> + </div> + <div class="row" *ngIf="garbageCollectorMetrics"> + <div class="col-md-9">Classes unloaded</div> + <div class="col-md-3 text-right">{{ garbageCollectorMetrics.classesUnloaded }}</div> + </div> + </div> + + <div class="table-responsive" *ngIf="!updating && garbageCollectorMetrics"> + <table class="table table-striped" aria-describedby="garbageCollectorMetrics"> + <thead> + <tr> + <th scope="col"></th> + <th scope="col" class="text-right" jhiTranslate="metrics.servicesstats.table.count">Count</th> + <th scope="col" class="text-right" jhiTranslate="metrics.servicesstats.table.mean">Mean</th> + <th scope="col" class="text-right" jhiTranslate="metrics.servicesstats.table.min">Min</th> + <th scope="col" class="text-right" jhiTranslate="metrics.servicesstats.table.p50">p50</th> + <th scope="col" class="text-right" jhiTranslate="metrics.servicesstats.table.p75">p75</th> + <th scope="col" class="text-right" jhiTranslate="metrics.servicesstats.table.p95">p95</th> + <th scope="col" class="text-right" jhiTranslate="metrics.servicesstats.table.p99">p99</th> + <th scope="col" class="text-right" jhiTranslate="metrics.servicesstats.table.max">Max</th> + </tr> + </thead> + <tbody> + <tr> + <td>jvm.gc.pause</td> + <td class="text-right">{{ garbageCollectorMetrics['jvm.gc.pause'].count }}</td> + <td class="text-right">{{ garbageCollectorMetrics['jvm.gc.pause'].mean | number: '1.0-3' }}</td> + <td class="text-right">{{ garbageCollectorMetrics['jvm.gc.pause']['0.0'] | number: '1.0-3' }}</td> + <td class="text-right">{{ garbageCollectorMetrics['jvm.gc.pause']['0.5'] | number: '1.0-3' }}</td> + <td class="text-right">{{ garbageCollectorMetrics['jvm.gc.pause']['0.75'] | number: '1.0-3' }}</td> + <td class="text-right">{{ garbageCollectorMetrics['jvm.gc.pause']['0.95'] | number: '1.0-3' }}</td> + <td class="text-right">{{ garbageCollectorMetrics['jvm.gc.pause']['0.99'] | number: '1.0-3' }}</td> + <td class="text-right">{{ garbageCollectorMetrics['jvm.gc.pause'].max | number: '1.0-3' }}</td> + </tr> + </tbody> + </table> + </div> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..bbf11e00cfae25b674f706cc31bfbd69555be58f --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.ts @@ -0,0 +1,19 @@ +import { Component, Input } from '@angular/core'; + +import { GarbageCollector } from 'app/admin/metrics/metrics.model'; + +@Component({ + selector: 'jhi-metrics-garbagecollector', + templateUrl: './metrics-garbagecollector.component.html', +}) +export class MetricsGarbageCollectorComponent { + /** + * object containing garbage collector related metrics + */ + @Input() garbageCollectorMetrics?: GarbageCollector; + + /** + * boolean field saying if the metrics are in the process of being updated + */ + @Input() updating?: boolean; +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html new file mode 100644 index 0000000000000000000000000000000000000000..f3dab2b3bd8b92b0645c6d0457b593099770edb4 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html @@ -0,0 +1,90 @@ +<div class="modal-header"> + <h4 class="modal-title" jhiTranslate="metrics.jvm.threads.dump.title">Threads dump</h4> + + <button type="button" class="close" (click)="dismiss()">×</button> +</div> + +<div class="modal-body"> + <div class="mb-3"> + <span class="badge badge-primary hand" (click)="threadStateFilter = undefined"> + <fa-icon *ngIf="threadStateFilter === undefined" icon="check"></fa-icon> + All <span class="badge badge-pill badge-default">{{ threadDumpAll }}</span> + </span> + + <span class="badge badge-success hand" (click)="threadStateFilter = ThreadState.Runnable"> + <fa-icon *ngIf="threadStateFilter === ThreadState.Runnable" icon="check"></fa-icon> + Runnable <span class="badge badge-pill badge-default">{{ threadDumpRunnable }}</span> + </span> + + <span class="badge badge-info hand" (click)="threadStateFilter = ThreadState.Waiting"> + <fa-icon *ngIf="threadStateFilter === ThreadState.Waiting" icon="check"></fa-icon> + Waiting <span class="badge badge-pill badge-default">{{ threadDumpWaiting }}</span> + </span> + + <span class="badge badge-warning hand" (click)="threadStateFilter = ThreadState.TimedWaiting"> + <fa-icon *ngIf="threadStateFilter === ThreadState.TimedWaiting" icon="check"></fa-icon> + Timed Waiting <span class="badge badge-pill badge-default">{{ threadDumpTimedWaiting }}</span> + </span> + + <span class="badge badge-danger hand" (click)="threadStateFilter = ThreadState.Blocked"> + <fa-icon *ngIf="threadStateFilter === ThreadState.Blocked" icon="check"></fa-icon> + Blocked <span class="badge badge-pill badge-default">{{ threadDumpBlocked }}</span> + </span> + </div> + + <div class="pad" *ngFor="let thread of getThreads()"> + <h6> + <span class="badge" [ngClass]="getBadgeClass(thread.threadState)">{{ thread.threadState }}</span> + + {{ thread.threadName }} (ID {{ thread.threadId }}) + + <a (click)="thread.showThreadDump = !thread.showThreadDump" href="javascript:void(0);"> + <span [hidden]="thread.showThreadDump" jhiTranslate="metrics.jvm.threads.dump.show">Show StackTrace</span> + <span [hidden]="!thread.showThreadDump" jhiTranslate="metrics.jvm.threads.dump.hide">Hide StackTrace</span> + </a> + </h6> + + <div class="card" [hidden]="!thread.showThreadDump"> + <div class="card-body"> + <div *ngFor="let st of thread.stackTrace" class="break"> + <samp + >{{ st.className }}.{{ st.methodName }}(<code>{{ st.fileName }}:{{ st.lineNumber }}</code + >)</samp + > + <span class="mt-1"></span> + </div> + </div> + </div> + <table class="table table-sm table-responsive"> + <caption> + Threads dump: + {{ + thread.threadName + }} + </caption> + <thead> + <tr> + <th scope="col" jhiTranslate="metrics.jvm.threads.dump.blockedtime">Blocked Time</th> + <th scope="col" jhiTranslate="metrics.jvm.threads.dump.blockedcount">Blocked Count</th> + <th scope="col" jhiTranslate="metrics.jvm.threads.dump.waitedtime">Waited Time</th> + <th scope="col" jhiTranslate="metrics.jvm.threads.dump.waitedcount">Waited Count</th> + <th scope="col" jhiTranslate="metrics.jvm.threads.dump.lockname">Lock Name</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ thread.blockedTime }}</td> + <td>{{ thread.blockedCount }}</td> + <td>{{ thread.waitedTime }}</td> + <td>{{ thread.waitedCount }}</td> + <td class="thread-dump-modal-lock" title="{{ thread.lockName }}"> + <code>{{ thread.lockName }}</code> + </td> + </tr> + </tbody> + </table> + </div> +</div> +<div class="modal-footer"> + <button type="button" class="btn btn-secondary float-left" data-dismiss="modal" (click)="dismiss()">Done</button> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..895e9fc025937cac268fe5ca27e83111e9c65b3c --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.ts @@ -0,0 +1,59 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; + +import { Thread, ThreadState } from 'app/admin/metrics/metrics.model'; + +@Component({ + selector: 'jhi-thread-modal', + templateUrl: './metrics-modal-threads.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class MetricsModalThreadsComponent implements OnInit { + ThreadState = ThreadState; + threadStateFilter?: ThreadState; + threads?: Thread[]; + threadDumpAll = 0; + threadDumpBlocked = 0; + threadDumpRunnable = 0; + threadDumpTimedWaiting = 0; + threadDumpWaiting = 0; + + constructor(private activeModal: NgbActiveModal) {} + + ngOnInit(): void { + this.threads?.forEach(thread => { + if (thread.threadState === ThreadState.Runnable) { + this.threadDumpRunnable += 1; + } else if (thread.threadState === ThreadState.Waiting) { + this.threadDumpWaiting += 1; + } else if (thread.threadState === ThreadState.TimedWaiting) { + this.threadDumpTimedWaiting += 1; + } else if (thread.threadState === ThreadState.Blocked) { + this.threadDumpBlocked += 1; + } + }); + + this.threadDumpAll = this.threadDumpRunnable + this.threadDumpWaiting + this.threadDumpTimedWaiting + this.threadDumpBlocked; + } + + getBadgeClass(threadState: ThreadState): string { + if (threadState === ThreadState.Runnable) { + return 'badge-success'; + } else if (threadState === ThreadState.Waiting) { + return 'badge-info'; + } else if (threadState === ThreadState.TimedWaiting) { + return 'badge-warning'; + } else if (threadState === ThreadState.Blocked) { + return 'badge-danger'; + } + return ''; + } + + getThreads(): Thread[] { + return this.threads?.filter(thread => !this.threadStateFilter || thread.threadState === this.threadStateFilter) ?? []; + } + + dismiss(): void { + this.activeModal.dismiss(); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html new file mode 100644 index 0000000000000000000000000000000000000000..bcf256de6a779a95e10af98c3efdc7af6125ea4d --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html @@ -0,0 +1,26 @@ +<h3 id="requestMetrics" jhiTranslate="metrics.jvm.http.title">HTTP requests (time in millisecond)</h3> + +<table class="table table-striped" *ngIf="!updating && requestMetrics" aria-describedby="requestMetrics"> + <thead> + <tr> + <th scope="col" jhiTranslate="metrics.jvm.http.table.code">Code</th> + <th scope="col" jhiTranslate="metrics.jvm.http.table.count">Count</th> + <th scope="col" class="text-right" jhiTranslate="metrics.jvm.http.table.mean">Mean</th> + <th scope="col" class="text-right" jhiTranslate="metrics.jvm.http.table.max">Max</th> + </tr> + </thead> + <tbody> + <tr *ngFor="let entry of requestMetrics['percode'] | keyvalue"> + <td>{{ entry.key }}</td> + <td> + <ngb-progressbar [max]="requestMetrics['all'].count" [value]="entry.value.count" [striped]="true" [animated]="false" type="success"> + <span>{{ entry.value.count }}</span> + </ngb-progressbar> + </td> + <td class="text-right"> + {{ filterNaN(entry.value.mean) | number: '1.0-2' }} + </td> + <td class="text-right">{{ entry.value.max | number: '1.0-2' }}</td> + </tr> + </tbody> +</table> diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..6a7cbc7dd71ede99182bb74751a0e4582ce8e6ee --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.ts @@ -0,0 +1,23 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +import { HttpServerRequests } from 'app/admin/metrics/metrics.model'; +import { filterNaN } from 'app/core/util/operators'; + +@Component({ + selector: 'jhi-metrics-request', + templateUrl: './metrics-request.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class MetricsRequestComponent { + /** + * object containing http request related metrics + */ + @Input() requestMetrics?: HttpServerRequests; + + /** + * boolean field saying if the metrics are in the process of being updated + */ + @Input() updating?: boolean; + + filterNaN = (input: number): number => filterNaN(input); +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html new file mode 100644 index 0000000000000000000000000000000000000000..a4ade7d699c7d59ad7b5b05311ccaa19745e080a --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html @@ -0,0 +1,51 @@ +<h4>System</h4> + +<ng-container *ngIf="!updating && systemMetrics"> + <div class="row"> + <div class="col-md-4">Uptime</div> + <div class="col-md-8 text-right">{{ convertMillisecondsToDuration(systemMetrics['process.uptime']) }}</div> + </div> + + <div class="row"> + <div class="col-md-4">Start time</div> + <div class="col-md-8 text-right">{{ systemMetrics['process.start.time'] | date: 'full' }}</div> + </div> + + <div class="row"> + <div class="col-md-9">Process CPU usage</div> + <div class="col-md-3 text-right">{{ 100 * systemMetrics['process.cpu.usage'] | number: '1.0-2' }} %</div> + </div> + + <ngb-progressbar [value]="100 * systemMetrics['process.cpu.usage']" [striped]="true" [animated]="false" type="success"> + <span>{{ 100 * systemMetrics['process.cpu.usage'] | number: '1.0-2' }} %</span> + </ngb-progressbar> + + <div class="row"> + <div class="col-md-9">System CPU usage</div> + <div class="col-md-3 text-right">{{ 100 * systemMetrics['system.cpu.usage'] | number: '1.0-2' }} %</div> + </div> + + <ngb-progressbar [value]="100 * systemMetrics['system.cpu.usage']" [striped]="true" [animated]="false" type="success"> + <span>{{ 100 * systemMetrics['system.cpu.usage'] | number: '1.0-2' }} %</span> + </ngb-progressbar> + + <div class="row"> + <div class="col-md-9">System CPU count</div> + <div class="col-md-3 text-right">{{ systemMetrics['system.cpu.count'] }}</div> + </div> + + <div class="row"> + <div class="col-md-9">System 1m Load average</div> + <div class="col-md-3 text-right">{{ systemMetrics['system.load.average.1m'] | number: '1.0-2' }}</div> + </div> + + <div class="row"> + <div class="col-md-9">Process files max</div> + <div class="col-md-3 text-right">{{ systemMetrics['process.files.max'] | number: '1.0-0' }}</div> + </div> + + <div class="row"> + <div class="col-md-9">Process files open</div> + <div class="col-md-3 text-right">{{ systemMetrics['process.files.open'] | number: '1.0-0' }}</div> + </div> +</ng-container> diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..f078ada404cc8c7cd770d5348962ef739b2daf12 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.ts @@ -0,0 +1,43 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +import { ProcessMetrics } from 'app/admin/metrics/metrics.model'; + +@Component({ + selector: 'jhi-metrics-system', + templateUrl: './metrics-system.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class MetricsSystemComponent { + /** + * object containing thread related metrics + */ + @Input() systemMetrics?: ProcessMetrics; + + /** + * boolean field saying if the metrics are in the process of being updated + */ + @Input() updating?: boolean; + + convertMillisecondsToDuration(ms: number): string { + const times = { + year: 31557600000, + month: 2629746000, + day: 86400000, + hour: 3600000, + minute: 60000, + second: 1000, + }; + let timeString = ''; + for (const [key, value] of Object.entries(times)) { + if (Math.floor(ms / value) > 0) { + let plural = ''; + if (Math.floor(ms / value) > 1) { + plural = 's'; + } + timeString += `${Math.floor(ms / value).toString()} ${key.toString()}${plural} `; + ms = ms - value * Math.floor(ms / value); + } + } + return timeString; + } +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.component.html b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.component.html new file mode 100644 index 0000000000000000000000000000000000000000..7f2401dd5486b6565e6be8309b24c207a5a43718 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.component.html @@ -0,0 +1,51 @@ +<div> + <h2> + <span id="metrics-page-heading" jhiTranslate="metrics.title" data-cy="metricsPageHeading">Application Metrics</span> + + <button class="btn btn-primary float-right" (click)="refresh()"> + <fa-icon icon="sync"></fa-icon> <span jhiTranslate="metrics.refresh.button">Refresh</span> + </button> + </h2> + + <h3 jhiTranslate="metrics.jvm.title">JVM Metrics</h3> + + <div class="row" *ngIf="metrics && !updatingMetrics"> + <jhi-jvm-memory class="col-md-4" [updating]="updatingMetrics" [jvmMemoryMetrics]="metrics.jvm"></jhi-jvm-memory> + + <jhi-jvm-threads class="col-md-4" [threads]="threads"></jhi-jvm-threads> + + <jhi-metrics-system class="col-md-4" [updating]="updatingMetrics" [systemMetrics]="metrics.processMetrics"></jhi-metrics-system> + </div> + + <jhi-metrics-garbagecollector + *ngIf="metrics && metricsKeyExists('garbageCollector')" + [updating]="updatingMetrics" + [garbageCollectorMetrics]="metrics.garbageCollector" + ></jhi-metrics-garbagecollector> + + <div class="well well-lg" *ngIf="updatingMetrics" jhiTranslate="metrics.updating">Updating...</div> + + <jhi-metrics-request + *ngIf="metrics && metricsKeyExists('http.server.requests')" + [updating]="updatingMetrics" + [requestMetrics]="metrics['http.server.requests']" + ></jhi-metrics-request> + + <jhi-metrics-endpoints-requests + *ngIf="metrics && metricsKeyExists('services')" + [updating]="updatingMetrics" + [endpointsRequestsMetrics]="metrics.services" + ></jhi-metrics-endpoints-requests> + + <jhi-metrics-cache + *ngIf="metrics && metricsKeyExists('cache')" + [updating]="updatingMetrics" + [cacheMetrics]="metrics.cache" + ></jhi-metrics-cache> + + <jhi-metrics-datasource + *ngIf="metrics && metricsKeyExistsAndObjectNotEmpty('databases')" + [updating]="updatingMetrics" + [datasourceMetrics]="metrics.databases" + ></jhi-metrics-datasource> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.component.spec.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..136d8036fab5e5fd8bac7e98d6c126e2caebc638 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.component.spec.ts @@ -0,0 +1,45 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { of } from 'rxjs'; + +import { MetricsComponent } from './metrics.component'; +import { MetricsService } from './metrics.service'; +import { Metrics } from './metrics.model'; + +describe('Component Tests', () => { + describe('MetricsComponent', () => { + let comp: MetricsComponent; + let fixture: ComponentFixture<MetricsComponent>; + let service: MetricsService; + + beforeEach( + waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + declarations: [MetricsComponent], + }) + .overrideTemplate(MetricsComponent, '') + .compileComponents(); + }) + ); + + beforeEach(() => { + fixture = TestBed.createComponent(MetricsComponent); + comp = fixture.componentInstance; + service = TestBed.inject(MetricsService); + }); + + describe('refresh', () => { + it('should call refresh on init', () => { + // GIVEN + jest.spyOn(service, 'getMetrics').mockReturnValue(of({} as Metrics)); + + // WHEN + comp.ngOnInit(); + + // THEN + expect(service.getMetrics).toHaveBeenCalled(); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.component.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..f633ee1fac4f8f5ff8a32dc16ec9c5f644116a9e --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.component.ts @@ -0,0 +1,40 @@ +import { Component, OnInit, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core'; +import { combineLatest } from 'rxjs'; + +import { MetricsService } from './metrics.service'; +import { Metrics, Thread } from './metrics.model'; + +@Component({ + selector: 'jhi-metrics', + templateUrl: './metrics.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class MetricsComponent implements OnInit { + metrics?: Metrics; + threads?: Thread[]; + updatingMetrics = true; + + constructor(private metricsService: MetricsService, private changeDetector: ChangeDetectorRef) {} + + ngOnInit(): void { + this.refresh(); + } + + refresh(): void { + this.updatingMetrics = true; + combineLatest([this.metricsService.getMetrics(), this.metricsService.threadDump()]).subscribe(([metrics, threadDump]) => { + this.metrics = metrics; + this.threads = threadDump.threads; + this.updatingMetrics = false; + this.changeDetector.markForCheck(); + }); + } + + metricsKeyExists(key: keyof Metrics): boolean { + return Boolean(this.metrics?.[key]); + } + + metricsKeyExistsAndObjectNotEmpty(key: keyof Metrics): boolean { + return Boolean(this.metrics?.[key] && JSON.stringify(this.metrics[key]) !== '{}'); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.model.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..d9576a9032982bf32a344d978c30373e79a0fbca --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.model.ts @@ -0,0 +1,159 @@ +export interface Metrics { + jvm: { [key: string]: JvmMetrics }; + databases: Databases; + 'http.server.requests': HttpServerRequests; + cache: { [key: string]: CacheMetrics }; + garbageCollector: GarbageCollector; + services: Services; + processMetrics: ProcessMetrics; +} + +export interface JvmMetrics { + committed: number; + max: number; + used: number; +} + +export interface Databases { + min: Value; + idle: Value; + max: Value; + usage: MetricsWithPercentile; + pending: Value; + active: Value; + acquire: MetricsWithPercentile; + creation: MetricsWithPercentile; + connections: Value; +} + +export interface Value { + value: number; +} + +export interface MetricsWithPercentile { + '0.0': number; + '1.0': number; + max: number; + totalTime: number; + mean: number; + '0.5': number; + count: number; + '0.99': number; + '0.75': number; + '0.95': number; +} + +export interface HttpServerRequests { + all: { + count: number; + }; + percode: { [key: string]: MaxMeanCount }; +} + +export interface MaxMeanCount { + max: number; + mean: number; + count: number; +} + +export interface CacheMetrics { + 'cache.gets.miss': number; + 'cache.puts': number; + 'cache.gets.hit': number; + 'cache.removals': number; + 'cache.evictions': number; +} + +export interface GarbageCollector { + 'jvm.gc.max.data.size': number; + 'jvm.gc.pause': MetricsWithPercentile; + 'jvm.gc.memory.promoted': number; + 'jvm.gc.memory.allocated': number; + classesLoaded: number; + 'jvm.gc.live.data.size': number; + classesUnloaded: number; +} + +export interface Services { + [key: string]: { + [key in HttpMethod]?: MaxMeanCount; + }; +} + +export enum HttpMethod { + Post = 'POST', + Get = 'GET', + Put = 'PUT', + Patch = 'PATCH', + Delete = 'DELETE', +} + +export interface ProcessMetrics { + 'system.cpu.usage': number; + 'system.cpu.count': number; + 'system.load.average.1m'?: number; + 'process.cpu.usage': number; + 'process.files.max'?: number; + 'process.files.open'?: number; + 'process.start.time': number; + 'process.uptime': number; +} + +export interface ThreadDump { + threads: Thread[]; +} + +export interface Thread { + threadName: string; + threadId: number; + blockedTime: number; + blockedCount: number; + waitedTime: number; + waitedCount: number; + lockName: string | null; + lockOwnerId: number; + lockOwnerName: string | null; + daemon: boolean; + inNative: boolean; + suspended: boolean; + threadState: ThreadState; + priority: number; + stackTrace: StackTrace[]; + lockedMonitors: LockedMonitor[]; + lockedSynchronizers: string[]; + lockInfo: LockInfo | null; + // custom field for showing-hiding thread dump + showThreadDump?: boolean; +} + +export interface LockInfo { + className: string; + identityHashCode: number; +} + +export interface LockedMonitor { + className: string; + identityHashCode: number; + lockedStackDepth: number; + lockedStackFrame: StackTrace; +} + +export interface StackTrace { + classLoaderName: string | null; + moduleName: string | null; + moduleVersion: string | null; + methodName: string; + fileName: string; + lineNumber: number; + className: string; + nativeMethod: boolean; +} + +export enum ThreadState { + Runnable = 'RUNNABLE', + TimedWaiting = 'TIMED_WAITING', + Waiting = 'WAITING', + Blocked = 'BLOCKED', + New = 'NEW', + Terminated = 'TERMINATED', +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.module.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..e96c87b890f6b6fa2a63d7e38c747167f37f2609 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.module.ts @@ -0,0 +1,32 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; + +import { SharedModule } from 'app/shared/shared.module'; +import { MetricsComponent } from './metrics.component'; +import { metricsRoute } from './metrics.route'; +import { JvmMemoryComponent } from './blocks/jvm-memory/jvm-memory.component'; +import { JvmThreadsComponent } from './blocks/jvm-threads/jvm-threads.component'; +import { MetricsCacheComponent } from './blocks/metrics-cache/metrics-cache.component'; +import { MetricsDatasourceComponent } from './blocks/metrics-datasource/metrics-datasource.component'; +import { MetricsEndpointsRequestsComponent } from './blocks/metrics-endpoints-requests/metrics-endpoints-requests.component'; +import { MetricsGarbageCollectorComponent } from './blocks/metrics-garbagecollector/metrics-garbagecollector.component'; +import { MetricsModalThreadsComponent } from './blocks/metrics-modal-threads/metrics-modal-threads.component'; +import { MetricsRequestComponent } from './blocks/metrics-request/metrics-request.component'; +import { MetricsSystemComponent } from './blocks/metrics-system/metrics-system.component'; + +@NgModule({ + imports: [SharedModule, RouterModule.forChild([metricsRoute])], + declarations: [ + MetricsComponent, + JvmMemoryComponent, + JvmThreadsComponent, + MetricsCacheComponent, + MetricsDatasourceComponent, + MetricsEndpointsRequestsComponent, + MetricsGarbageCollectorComponent, + MetricsModalThreadsComponent, + MetricsRequestComponent, + MetricsSystemComponent, + ], +}) +export class MetricsModule {} diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.route.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.route.ts new file mode 100644 index 0000000000000000000000000000000000000000..c090cf6ef69354f48be9b16d5f946e07d83c2bc9 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.route.ts @@ -0,0 +1,11 @@ +import { Route } from '@angular/router'; + +import { MetricsComponent } from './metrics.component'; + +export const metricsRoute: Route = { + path: '', + component: MetricsComponent, + data: { + pageTitle: 'metrics.title', + }, +}; diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.service.spec.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.service.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..2f8675a62c8ebd4f6e3ef2608fb2a648b561d844 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.service.spec.ts @@ -0,0 +1,83 @@ +import { TestBed } from '@angular/core/testing'; +import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; + +import { MetricsService } from './metrics.service'; +import { ThreadDump, ThreadState } from './metrics.model'; + +describe('Service Tests', () => { + describe('Logs Service', () => { + let service: MetricsService; + let httpMock: HttpTestingController; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + }); + service = TestBed.inject(MetricsService); + httpMock = TestBed.inject(HttpTestingController); + }); + + afterEach(() => { + httpMock.verify(); + }); + + describe('Service methods', () => { + it('should return Metrics', () => { + let expectedResult; + const metrics = { + jvm: {}, + 'http.server.requests': {}, + cache: {}, + services: {}, + databases: {}, + garbageCollector: {}, + processMetrics: {}, + }; + + service.getMetrics().subscribe(received => { + expectedResult = received; + }); + + const req = httpMock.expectOne({ method: 'GET' }); + req.flush(metrics); + expect(expectedResult).toEqual(metrics); + }); + + it('should return Thread Dump', () => { + let expectedResult: ThreadDump | null = null; + const dump: ThreadDump = { + threads: [ + { + threadName: 'Reference Handler', + threadId: 2, + blockedTime: -1, + blockedCount: 7, + waitedTime: -1, + waitedCount: 0, + lockName: null, + lockOwnerId: -1, + lockOwnerName: null, + daemon: true, + inNative: false, + suspended: false, + threadState: ThreadState.Runnable, + priority: 10, + stackTrace: [], + lockedMonitors: [], + lockedSynchronizers: [], + lockInfo: null, + }, + ], + }; + + service.threadDump().subscribe(received => { + expectedResult = received; + }); + + const req = httpMock.expectOne({ method: 'GET' }); + req.flush(dump); + expect(expectedResult).toEqual(dump); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.service.ts b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..1d27f2b134728a8ba0c67c5e85a28cec6a10660f --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/admin/metrics/metrics.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; + +import { ApplicationConfigService } from 'app/core/config/application-config.service'; +import { Metrics, ThreadDump } from './metrics.model'; + +@Injectable({ providedIn: 'root' }) +export class MetricsService { + constructor(private http: HttpClient, private applicationConfigService: ApplicationConfigService) {} + + getMetrics(): Observable<Metrics> { + return this.http.get<Metrics>(this.applicationConfigService.getEndpointFor('management/jhimetrics')); + } + + threadDump(): Observable<ThreadDump> { + return this.http.get<ThreadDump>(this.applicationConfigService.getEndpointFor('management/threaddump')); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html b/git/sh-gateway/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html index e0070ca959508831ad8465fccdc764fc540a6021..fa44d75670bb9d4d11ef18eb2c45e878f79d4784 100644 --- a/git/sh-gateway/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html +++ b/git/sh-gateway/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html @@ -1,6 +1,6 @@ <form *ngIf="user" name="deleteForm" (ngSubmit)="confirmDelete(user.login!)"> <div class="modal-header"> - <h4 class="modal-title">Confirm delete operation</h4> + <h4 class="modal-title" jhiTranslate="entity.delete.title">Confirm delete operation</h4> <button type="button" class="close" data-dismiss="modal" aria-hidden="true" (click)="cancel()">×</button> </div> @@ -8,14 +8,18 @@ <div class="modal-body"> <jhi-alert-error></jhi-alert-error> - <p>Are you sure you want to delete this User?</p> + <p jhiTranslate="userManagement.delete.question" [translateValues]="{ login: user.login }"> + Are you sure you want to delete this User? + </p> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal" (click)="cancel()"> - <fa-icon icon="ban"></fa-icon> <span>Cancel</span> + <fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span> </button> - <button type="submit" class="btn btn-danger"><fa-icon icon="times"></fa-icon> <span>Delete</span></button> + <button type="submit" class="btn btn-danger"> + <fa-icon icon="times"></fa-icon> <span jhiTranslate="entity.action.delete">Delete</span> + </button> </div> </form> diff --git a/git/sh-gateway/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html b/git/sh-gateway/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html index a3dd18deff8939c525d9cf6f84a6741c50ce09c9..b1adc31cd566105e8b8d6752a10bb90cdc8ae5f2 100644 --- a/git/sh-gateway/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html +++ b/git/sh-gateway/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html @@ -2,40 +2,43 @@ <div class="col-8"> <div *ngIf="user"> <h2> - <span>User</span> [<strong>{{ user.login }}</strong + <span jhiTranslate="userManagement.detail.title">User</span> [<strong>{{ user.login }}</strong >] </h2> <dl class="row-md jh-entity-details"> - <dt><span>Login</span></dt> + <dt><span jhiTranslate="userManagement.login">Login</span></dt> <dd> <span>{{ user.login }}</span> - <span *ngIf="user.activated" class="badge badge-success">Activated</span> - <span *ngIf="!user.activated" class="badge badge-danger">Deactivated</span> + <span *ngIf="user.activated" class="badge badge-success" jhiTranslate="userManagement.activated">Activated</span> + <span *ngIf="!user.activated" class="badge badge-danger" jhiTranslate="userManagement.deactivated">Deactivated</span> </dd> - <dt><span>First Name</span></dt> + <dt><span jhiTranslate="userManagement.firstName">First Name</span></dt> <dd>{{ user.firstName }}</dd> - <dt><span>Last Name</span></dt> + <dt><span jhiTranslate="userManagement.lastName">Last Name</span></dt> <dd>{{ user.lastName }}</dd> - <dt><span>Email</span></dt> + <dt><span jhiTranslate="userManagement.email">Email</span></dt> <dd>{{ user.email }}</dd> - <dt><span>Created By</span></dt> + <dt><span jhiTranslate="userManagement.langKey">Lang Key</span></dt> + <dd>{{ user.langKey }}</dd> + + <dt><span jhiTranslate="userManagement.createdBy">Created By</span></dt> <dd>{{ user.createdBy }}</dd> - <dt><span>Created Date</span></dt> + <dt><span jhiTranslate="userManagement.createdDate">Created Date</span></dt> <dd>{{ user.createdDate | date: 'dd/MM/yy HH:mm' }}</dd> - <dt><span>Last Modified By</span></dt> + <dt><span jhiTranslate="userManagement.lastModifiedBy">Last Modified By</span></dt> <dd>{{ user.lastModifiedBy }}</dd> - <dt><span>Last Modified Date</span></dt> + <dt><span jhiTranslate="userManagement.lastModifiedDate">Last Modified Date</span></dt> <dd>{{ user.lastModifiedDate | date: 'dd/MM/yy HH:mm' }}</dd> - <dt><span>Profiles</span></dt> + <dt><span jhiTranslate="userManagement.profiles">Profiles</span></dt> <dd> <ul class="list-unstyled"> <li *ngFor="let authority of user.authorities"> @@ -45,7 +48,9 @@ </dd> </dl> - <button type="submit" routerLink="../../" class="btn btn-info"><fa-icon icon="arrow-left"></fa-icon> <span>Back</span></button> + <button type="submit" routerLink="../../" class="btn btn-info"> + <fa-icon icon="arrow-left"></fa-icon> <span jhiTranslate="entity.action.back">Back</span> + </button> </div> </div> </div> diff --git a/git/sh-gateway/src/main/webapp/app/admin/user-management/list/user-management.component.html b/git/sh-gateway/src/main/webapp/app/admin/user-management/list/user-management.component.html index 154852c97ab2b458f84d7383c4e7c2abba85e705..c2d3519376dee2c82996fa53ac37b77e7fe54b35 100644 --- a/git/sh-gateway/src/main/webapp/app/admin/user-management/list/user-management.component.html +++ b/git/sh-gateway/src/main/webapp/app/admin/user-management/list/user-management.component.html @@ -1,14 +1,14 @@ <div> <h2> - <span id="user-management-page-heading" data-cy="userManagementPageHeading">Users</span> + <span id="user-management-page-heading" jhiTranslate="userManagement.home.title" data-cy="userManagementPageHeading">Users</span> <div class="d-flex justify-content-end"> <button class="btn btn-info mr-2" (click)="loadAll()" [disabled]="isLoading"> <fa-icon icon="sync" [spin]="isLoading"></fa-icon> - <span>Refresh List</span> + <span jhiTranslate="userManagement.home.refreshListLabel">Refresh List</span> </button> <button class="btn btn-primary jh-create-entity" [routerLink]="['./new']"> - <fa-icon icon="plus"></fa-icon> <span>Create a new User</span> + <fa-icon icon="plus"></fa-icon> <span jhiTranslate="userManagement.home.createLabel">Create a new User</span> </button> </div> </h2> @@ -21,14 +21,23 @@ <table class="table table-striped" aria-describedby="user-management-page-heading"> <thead> <tr jhiSort [(predicate)]="predicate" [(ascending)]="ascending" (sortChange)="transition()"> - <th scope="col" jhiSortBy="id"><span>ID</span> <fa-icon icon="sort"></fa-icon></th> - <th scope="col" jhiSortBy="login"><span>Login</span> <fa-icon icon="sort"></fa-icon></th> - <th scope="col" jhiSortBy="email"><span>Email</span> <fa-icon icon="sort"></fa-icon></th> + <th scope="col" jhiSortBy="id"><span jhiTranslate="global.field.id">ID</span> <fa-icon icon="sort"></fa-icon></th> + <th scope="col" jhiSortBy="login"><span jhiTranslate="userManagement.login">Login</span> <fa-icon icon="sort"></fa-icon></th> + <th scope="col" jhiSortBy="email"><span jhiTranslate="userManagement.email">Email</span> <fa-icon icon="sort"></fa-icon></th> <th scope="col"></th> - <th scope="col"><span>Profiles</span></th> - <th scope="col" jhiSortBy="createdDate"><span>Created Date</span> <fa-icon icon="sort"></fa-icon></th> - <th scope="col" jhiSortBy="lastModifiedBy"><span>Last Modified By</span> <fa-icon icon="sort"></fa-icon></th> - <th scope="col" jhiSortBy="lastModifiedDate"><span>Last Modified Date</span> <fa-icon icon="sort"></fa-icon></th> + <th scope="col" jhiSortBy="langKey"> + <span jhiTranslate="userManagement.langKey">Lang Key</span> <fa-icon icon="sort"></fa-icon> + </th> + <th scope="col"><span jhiTranslate="userManagement.profiles">Profiles</span></th> + <th scope="col" jhiSortBy="createdDate"> + <span jhiTranslate="userManagement.createdDate">Created Date</span> <fa-icon icon="sort"></fa-icon> + </th> + <th scope="col" jhiSortBy="lastModifiedBy"> + <span jhiTranslate="userManagement.lastModifiedBy">Last Modified By</span> <fa-icon icon="sort"></fa-icon> + </th> + <th scope="col" jhiSortBy="lastModifiedDate"> + <span jhiTranslate="userManagement.lastModifiedDate">Last Modified Date</span> <fa-icon icon="sort"></fa-icon> + </th> <th scope="col"></th> </tr> </thead> @@ -40,16 +49,25 @@ <td>{{ user.login }}</td> <td>{{ user.email }}</td> <td> - <button class="btn btn-danger btn-sm" (click)="setActive(user, true)" *ngIf="!user.activated">Deactivated</button> + <button + class="btn btn-danger btn-sm" + (click)="setActive(user, true)" + *ngIf="!user.activated" + jhiTranslate="userManagement.deactivated" + > + Deactivated + </button> <button class="btn btn-success btn-sm" (click)="setActive(user, false)" *ngIf="user.activated" [disabled]="!currentAccount || currentAccount.login === user.login" + jhiTranslate="userManagement.activated" > Activated </button> </td> + <td>{{ user.langKey }}</td> <td> <div *ngFor="let authority of user.authorities"> <span class="badge badge-info">{{ authority }}</span> @@ -62,12 +80,12 @@ <div class="btn-group"> <button type="submit" [routerLink]="['./', user.login, 'view']" class="btn btn-info btn-sm"> <fa-icon icon="eye"></fa-icon> - <span class="d-none d-md-inline">View</span> + <span class="d-none d-md-inline" jhiTranslate="entity.action.view">View</span> </button> <button type="submit" [routerLink]="['./', user.login, 'edit']" queryParamsHandling="merge" class="btn btn-primary btn-sm"> <fa-icon icon="pencil-alt"></fa-icon> - <span class="d-none d-md-inline">Edit</span> + <span class="d-none d-md-inline" jhiTranslate="entity.action.edit">Edit</span> </button> <button @@ -77,7 +95,7 @@ [disabled]="!currentAccount || currentAccount.login === user.login" > <fa-icon icon="times"></fa-icon> - <span class="d-none d-md-inline">Delete</span> + <span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span> </button> </div> </td> diff --git a/git/sh-gateway/src/main/webapp/app/admin/user-management/update/user-management-update.component.html b/git/sh-gateway/src/main/webapp/app/admin/user-management/update/user-management-update.component.html index 4dae8096bc2e5bbf6f387c7715372f747ca210e7..7f42972957429b017189c04f4e4a9b7bc8756e30 100644 --- a/git/sh-gateway/src/main/webapp/app/admin/user-management/update/user-management-update.component.html +++ b/git/sh-gateway/src/main/webapp/app/admin/user-management/update/user-management-update.component.html @@ -1,71 +1,110 @@ <div class="row justify-content-center"> <div class="col-8"> <form name="editForm" role="form" novalidate (ngSubmit)="save()" [formGroup]="editForm"> - <h2 id="myUserLabel">Create or edit a User</h2> + <h2 id="myUserLabel" jhiTranslate="userManagement.home.createOrEditLabel">Create or edit a User</h2> <div *ngIf="user"> <jhi-alert-error></jhi-alert-error> <div class="form-group" [hidden]="!user.id"> - <label>ID</label> + <label jhiTranslate="global.field.id">ID</label> <input type="text" class="form-control" name="id" formControlName="id" readonly /> </div> <div class="form-group"> - <label class="form-control-label">Login</label> + <label class="form-control-label" jhiTranslate="userManagement.login">Login</label> <input type="text" class="form-control" name="login" formControlName="login" /> <div *ngIf="editForm.get('login')!.invalid && (editForm.get('login')!.dirty || editForm.get('login')!.touched)"> - <small class="form-text text-danger" *ngIf="editForm.get('login')?.errors?.required"> This field is required. </small> + <small class="form-text text-danger" *ngIf="editForm.get('login')?.errors?.required" jhiTranslate="entity.validation.required"> + This field is required. + </small> - <small class="form-text text-danger" *ngIf="editForm.get('login')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="editForm.get('login')?.errors?.maxlength" + jhiTranslate="entity.validation.maxlength" + [translateValues]="{ max: 50 }" + > This field cannot be longer than 50 characters. </small> - <small class="form-text text-danger" *ngIf="editForm.get('login')?.errors?.pattern"> + <small + class="form-text text-danger" + *ngIf="editForm.get('login')?.errors?.pattern" + jhiTranslate="entity.validation.patternLogin" + > This field can only contain letters, digits and e-mail addresses. </small> </div> </div> <div class="form-group"> - <label class="form-control-label">First Name</label> + <label class="form-control-label" jhiTranslate="userManagement.firstName">First Name</label> <input type="text" class="form-control" name="firstName" formControlName="firstName" /> <div *ngIf="editForm.get('firstName')!.invalid && (editForm.get('firstName')!.dirty || editForm.get('firstName')!.touched)"> - <small class="form-text text-danger" *ngIf="editForm.get('firstName')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="editForm.get('firstName')?.errors?.maxlength" + jhiTranslate="entity.validation.maxlength" + [translateValues]="{ max: 50 }" + > This field cannot be longer than 50 characters. </small> </div> </div> <div class="form-group"> - <label>Last Name</label> + <label jhiTranslate="userManagement.lastName">Last Name</label> <input type="text" class="form-control" name="lastName" formControlName="lastName" /> <div *ngIf="editForm.get('lastName')!.invalid && (editForm.get('lastName')!.dirty || editForm.get('lastName')!.touched)"> - <small class="form-text text-danger" *ngIf="editForm.get('lastName')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="editForm.get('lastName')?.errors?.maxlength" + jhiTranslate="entity.validation.maxlength" + [translateValues]="{ max: 50 }" + > This field cannot be longer than 50 characters. </small> </div> </div> <div class="form-group"> - <label class="form-control-label">Email</label> + <label class="form-control-label" jhiTranslate="userManagement.email">Email</label> <input type="email" class="form-control" name="email" formControlName="email" /> <div *ngIf="editForm.get('email')!.invalid && (editForm.get('email')!.dirty || editForm.get('email')!.touched)"> - <small class="form-text text-danger" *ngIf="editForm.get('email')?.errors?.required"> This field is required. </small> + <small class="form-text text-danger" *ngIf="editForm.get('email')?.errors?.required" jhiTranslate="entity.validation.required"> + This field is required. + </small> - <small class="form-text text-danger" *ngIf="editForm.get('email')?.errors?.maxlength"> + <small + class="form-text text-danger" + *ngIf="editForm.get('email')?.errors?.maxlength" + jhiTranslate="entity.validation.maxlength" + [translateValues]="{ max: 100 }" + > This field cannot be longer than 100 characters. </small> - <small class="form-text text-danger" *ngIf="editForm.get('email')?.errors?.minlength"> + <small + class="form-text text-danger" + *ngIf="editForm.get('email')?.errors?.minlength" + jhiTranslate="entity.validation.minlength" + [translateValues]="{ min: 5 }" + > This field is required to be at least 5 characters. </small> - <small class="form-text text-danger" *ngIf="editForm.get('email')?.errors?.email"> Your email is invalid. </small> + <small + class="form-text text-danger" + *ngIf="editForm.get('email')?.errors?.email" + jhiTranslate="global.messages.validate.email.invalid" + > + Your email is invalid. + </small> </div> </div> @@ -79,12 +118,19 @@ name="activated" formControlName="activated" /> - <span>Activated</span> + <span jhiTranslate="userManagement.activated">Activated</span> </label> </div> + <div class="form-group" *ngIf="languages && languages.length > 0"> + <label jhiTranslate="userManagement.langKey">Lang Key</label> + <select class="form-control" id="langKey" name="langKey" formControlName="langKey"> + <option *ngFor="let language of languages" [value]="language">{{ language | findLanguageFromKey }}</option> + </select> + </div> + <div class="form-group"> - <label>Profiles</label> + <label jhiTranslate="userManagement.profiles">Profiles</label> <select class="form-control" multiple name="authority" formControlName="authorities"> <option *ngFor="let authority of authorities" [value]="authority">{{ authority }}</option> </select> @@ -93,11 +139,11 @@ <div *ngIf="user"> <button type="button" class="btn btn-secondary" (click)="previousState()"> - <fa-icon icon="ban"></fa-icon> <span>Cancel</span> + <fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span> </button> <button type="submit" [disabled]="editForm.invalid || isSaving" class="btn btn-primary"> - <fa-icon icon="save"></fa-icon> <span>Save</span> + <fa-icon icon="save"></fa-icon> <span jhiTranslate="entity.action.save">Save</span> </button> </div> </form> diff --git a/git/sh-gateway/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts b/git/sh-gateway/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts index 7b64e048aceaaacb65ea53cf5803e5be0440d0a3..65d3fa0509bb4363825cd4b147f3fd1887d334ba 100644 --- a/git/sh-gateway/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts +++ b/git/sh-gateway/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts @@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core'; import { FormBuilder, Validators } from '@angular/forms'; import { ActivatedRoute } from '@angular/router'; +import { LANGUAGES } from 'app/config/language.constants'; import { User } from '../user-management.model'; import { UserManagementService } from '../service/user-management.service'; @@ -11,6 +12,7 @@ import { UserManagementService } from '../service/user-management.service'; }) export class UserManagementUpdateComponent implements OnInit { user!: User; + languages = LANGUAGES; authorities: string[] = []; isSaving = false; @@ -61,7 +63,6 @@ export class UserManagementUpdateComponent implements OnInit { () => this.onSaveError() ); } else { - this.user.langKey = 'en'; this.userService.create(this.user).subscribe( () => this.onSaveSuccess(), () => this.onSaveError() diff --git a/git/sh-gateway/src/main/webapp/app/app.module.ts b/git/sh-gateway/src/main/webapp/app/app.module.ts index 26cb29c4a339a058ee106c14466480314506bf93..8736d49f1647d044d18e94e0a7760ee66da75f29 100644 --- a/git/sh-gateway/src/main/webapp/app/app.module.ts +++ b/git/sh-gateway/src/main/webapp/app/app.module.ts @@ -1,11 +1,12 @@ import { NgModule, LOCALE_ID } from '@angular/core'; import { registerLocaleData } from '@angular/common'; -import { HttpClientModule } from '@angular/common/http'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; import locale from '@angular/common/locales/en'; import { BrowserModule, Title } from '@angular/platform-browser'; import { ServiceWorkerModule } from '@angular/service-worker'; import { FaIconLibrary } from '@fortawesome/angular-fontawesome'; -import { NgxWebstorageModule } from 'ngx-webstorage'; +import { TranslateModule, TranslateService, TranslateLoader, MissingTranslationHandler } from '@ngx-translate/core'; +import { NgxWebstorageModule, SessionStorageService } from 'ngx-webstorage'; import * as dayjs from 'dayjs'; import { NgbDateAdapter, NgbDatepickerConfig } from '@ng-bootstrap/ng-bootstrap'; @@ -19,10 +20,12 @@ import { EntityRoutingModule } from './entities/entity-routing.module'; import { NgbDateDayjsAdapter } from './config/datepicker-adapter'; import { fontAwesomeIcons } from './config/font-awesome-icons'; import { httpInterceptorProviders } from 'app/core/interceptor/index'; +import { translatePartialLoader, missingTranslationHandler } from './config/translation.config'; import { MainComponent } from './layouts/main/main.component'; import { NavbarComponent } from './layouts/navbar/navbar.component'; import { FooterComponent } from './layouts/footer/footer.component'; import { PageRibbonComponent } from './layouts/profiles/page-ribbon.component'; +import { ActiveMenuDirective } from './layouts/navbar/active-menu.directive'; import { ErrorComponent } from './layouts/error/error.component'; @NgModule({ @@ -37,6 +40,17 @@ import { ErrorComponent } from './layouts/error/error.component'; ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }), HttpClientModule, NgxWebstorageModule.forRoot({ prefix: 'jhi', separator: '-', caseSensitive: true }), + TranslateModule.forRoot({ + loader: { + provide: TranslateLoader, + useFactory: translatePartialLoader, + deps: [HttpClient], + }, + missingTranslationHandler: { + provide: MissingTranslationHandler, + useFactory: missingTranslationHandler, + }, + }), ], providers: [ Title, @@ -44,14 +58,24 @@ import { ErrorComponent } from './layouts/error/error.component'; { provide: NgbDateAdapter, useClass: NgbDateDayjsAdapter }, httpInterceptorProviders, ], - declarations: [MainComponent, NavbarComponent, ErrorComponent, PageRibbonComponent, FooterComponent], + declarations: [MainComponent, NavbarComponent, ErrorComponent, PageRibbonComponent, ActiveMenuDirective, FooterComponent], bootstrap: [MainComponent], }) export class AppModule { - constructor(applicationConfigService: ApplicationConfigService, iconLibrary: FaIconLibrary, dpConfig: NgbDatepickerConfig) { + constructor( + applicationConfigService: ApplicationConfigService, + iconLibrary: FaIconLibrary, + dpConfig: NgbDatepickerConfig, + translateService: TranslateService, + sessionStorageService: SessionStorageService + ) { applicationConfigService.setEndpointPrefix(SERVER_API_URL); registerLocaleData(locale); iconLibrary.addIcons(...fontAwesomeIcons); dpConfig.minDate = { year: dayjs().subtract(100, 'year').year(), month: 1, day: 1 }; + translateService.setDefaultLang('en'); + // if user have changed language and navigates away from the application and back to the application then use previously choosed language + const langKey = sessionStorageService.retrieve('locale') ?? 'en'; + translateService.use(langKey); } } diff --git a/git/sh-gateway/src/main/webapp/app/config/dayjs.ts b/git/sh-gateway/src/main/webapp/app/config/dayjs.ts index f14312020338cfbc35c06ae91109e8d370cfbe4d..6ce209ca81fcfcdbb997e5a4a8c8e94bd21b7c9f 100644 --- a/git/sh-gateway/src/main/webapp/app/config/dayjs.ts +++ b/git/sh-gateway/src/main/webapp/app/config/dayjs.ts @@ -4,6 +4,7 @@ import * as duration from 'dayjs/plugin/duration'; import * as relativeTime from 'dayjs/plugin/relativeTime'; // jhipster-needle-i18n-language-dayjs-imports - JHipster will import languages from dayjs here +import 'dayjs/locale/en'; // DAYJS CONFIGURATION dayjs.extend(customParseFormat); diff --git a/git/sh-gateway/src/main/webapp/app/config/language.constants.ts b/git/sh-gateway/src/main/webapp/app/config/language.constants.ts new file mode 100644 index 0000000000000000000000000000000000000000..aa07208507d4010d1c6e5090756edccb61e96468 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/config/language.constants.ts @@ -0,0 +1,8 @@ +/* + Languages codes are ISO_639-1 codes, see http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes + They are written in English to avoid character encoding issues (not a perfect solution) +*/ +export const LANGUAGES: string[] = [ + 'en', + // jhipster-needle-i18n-language-constant - JHipster will add/remove languages in this array +]; diff --git a/git/sh-gateway/src/main/webapp/app/config/translation.config.ts b/git/sh-gateway/src/main/webapp/app/config/translation.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..b5ac12974ef631f8375a68ac74279d2af173dcc9 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/config/translation.config.ts @@ -0,0 +1,20 @@ +import { HttpClient } from '@angular/common/http'; +import { MissingTranslationHandler, MissingTranslationHandlerParams, TranslateLoader } from '@ngx-translate/core'; +import { TranslateHttpLoader } from '@ngx-translate/http-loader'; + +export const translationNotFoundMessage = 'translation-not-found'; + +export class MissingTranslationHandlerImpl implements MissingTranslationHandler { + handle(params: MissingTranslationHandlerParams): string { + const key = params.key; + return `${translationNotFoundMessage}[${key}]`; + } +} + +export function translatePartialLoader(http: HttpClient): TranslateLoader { + return new TranslateHttpLoader(http, 'i18n/', `.json?_=${I18N_HASH}`); +} + +export function missingTranslationHandler(): MissingTranslationHandler { + return new MissingTranslationHandlerImpl(); +} diff --git a/git/sh-gateway/src/main/webapp/app/core/auth/account.service.spec.ts b/git/sh-gateway/src/main/webapp/app/core/auth/account.service.spec.ts index 0c54a8ce1c44e6e13c107feb8bb731bd5c3867c3..d9c43927534e7efd0b1c3f32c8190711a011e0ae 100644 --- a/git/sh-gateway/src/main/webapp/app/core/auth/account.service.spec.ts +++ b/git/sh-gateway/src/main/webapp/app/core/auth/account.service.spec.ts @@ -1,10 +1,12 @@ jest.mock('@angular/router'); +jest.mock('@ngx-translate/core'); jest.mock('app/core/auth/state-storage.service'); import { Router } from '@angular/router'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { TestBed } from '@angular/core/testing'; -import { NgxWebstorageModule } from 'ngx-webstorage'; +import { TranslateService } from '@ngx-translate/core'; +import { NgxWebstorageModule, SessionStorageService } from 'ngx-webstorage'; import { Account } from 'app/core/auth/account.model'; import { Authority } from 'app/config/authority.constants'; @@ -33,11 +35,13 @@ describe('Service Tests', () => { let httpMock: HttpTestingController; let mockStorageService: StateStorageService; let mockRouter: Router; + let mockTranslateService: TranslateService; + let sessionStorageService: SessionStorageService; beforeEach(() => { TestBed.configureTestingModule({ imports: [HttpClientTestingModule, NgxWebstorageModule.forRoot()], - providers: [StateStorageService, Router], + providers: [TranslateService, StateStorageService, Router], }); service = TestBed.inject(AccountService); @@ -45,6 +49,8 @@ describe('Service Tests', () => { httpMock = TestBed.inject(HttpTestingController); mockStorageService = TestBed.inject(StateStorageService); mockRouter = TestBed.inject(Router); + mockTranslateService = TestBed.inject(TranslateService); + sessionStorageService = TestBed.inject(SessionStorageService); }); afterEach(() => { @@ -125,6 +131,32 @@ describe('Service Tests', () => { httpMock.expectOne({ method: 'GET' }); }); + describe('should change the language on authentication if necessary', () => { + it('should change language if user has not changed language manually', () => { + // GIVEN + sessionStorageService.retrieve = jest.fn(key => (key === 'locale' ? undefined : 'otherSessionStorageValue')); + + // WHEN + service.identity().subscribe(); + httpMock.expectOne({ method: 'GET' }).flush({ ...accountWithAuthorities([]), langKey: 'accountLang' }); + + // THEN + expect(mockTranslateService.use).toHaveBeenCalledWith('accountLang'); + }); + + it('should not change language if user has changed language manually', () => { + // GIVEN + sessionStorageService.retrieve = jest.fn(key => (key === 'locale' ? 'sessionLang' : undefined)); + + // WHEN + service.identity().subscribe(); + httpMock.expectOne({ method: 'GET' }).flush({ ...accountWithAuthorities([]), langKey: 'accountLang' }); + + // THEN + expect(mockTranslateService.use).not.toHaveBeenCalled(); + }); + }); + describe('navigateToStoredUrl', () => { it('should navigate to the previous stored url post successful authentication', () => { // GIVEN diff --git a/git/sh-gateway/src/main/webapp/app/core/auth/account.service.ts b/git/sh-gateway/src/main/webapp/app/core/auth/account.service.ts index 6acaf764219310b2e6244a43b3fe6cf68fa12e50..441d69aab8d7240e57fc34d362f675a82285a67f 100644 --- a/git/sh-gateway/src/main/webapp/app/core/auth/account.service.ts +++ b/git/sh-gateway/src/main/webapp/app/core/auth/account.service.ts @@ -1,6 +1,8 @@ import { Injectable } from '@angular/core'; import { Router } from '@angular/router'; import { HttpClient } from '@angular/common/http'; +import { TranslateService } from '@ngx-translate/core'; +import { SessionStorageService } from 'ngx-webstorage'; import { Observable, ReplaySubject, of } from 'rxjs'; import { shareReplay, tap, catchError } from 'rxjs/operators'; @@ -15,6 +17,8 @@ export class AccountService { private accountCache$?: Observable<Account> | null; constructor( + private translateService: TranslateService, + private sessionStorageService: SessionStorageService, private http: HttpClient, private stateStorageService: StateStorageService, private router: Router, @@ -49,6 +53,13 @@ export class AccountService { tap((account: Account) => { this.authenticate(account); + // After retrieve the account info, the language will be changed to + // the user's preferred language configured in the account setting + // unless user have choosed other language in the current session + if (!this.sessionStorageService.retrieve('locale')) { + this.translateService.use(account.langKey); + } + this.navigateToStoredUrl(); }), shareReplay() diff --git a/git/sh-gateway/src/main/webapp/app/core/interceptor/error-handler.interceptor.ts b/git/sh-gateway/src/main/webapp/app/core/interceptor/error-handler.interceptor.ts index 29bab397304ca2d29cd7631449dde83740727f2b..af699fd9233891b1b3da241b233b205c4e2f6d67 100644 --- a/git/sh-gateway/src/main/webapp/app/core/interceptor/error-handler.interceptor.ts +++ b/git/sh-gateway/src/main/webapp/app/core/interceptor/error-handler.interceptor.ts @@ -14,7 +14,7 @@ export class ErrorHandlerInterceptor implements HttpInterceptor { tap({ error: (err: HttpErrorResponse) => { if (!(err.status === 401 && (err.message === '' || err.url?.includes('api/account')))) { - this.eventManager.broadcast(new EventWithContent('selfHealingGatewayApp.httpError', err)); + this.eventManager.broadcast(new EventWithContent('shGatewayApp.httpError', err)); } }, }) diff --git a/git/sh-gateway/src/main/webapp/app/core/interceptor/notification.interceptor.ts b/git/sh-gateway/src/main/webapp/app/core/interceptor/notification.interceptor.ts index cf6abff5ca368bfeb87dd5565e96898f5f31dcee..513132f9c2d7537aaafa0f0f8c6150e8c54856df 100644 --- a/git/sh-gateway/src/main/webapp/app/core/interceptor/notification.interceptor.ts +++ b/git/sh-gateway/src/main/webapp/app/core/interceptor/notification.interceptor.ts @@ -14,17 +14,21 @@ export class NotificationInterceptor implements HttpInterceptor { tap((event: HttpEvent<any>) => { if (event instanceof HttpResponse) { let alert: string | null = null; + let alertParams: string | null = null; for (const headerKey of event.headers.keys()) { if (headerKey.toLowerCase().endsWith('app-alert')) { alert = event.headers.get(headerKey); + } else if (headerKey.toLowerCase().endsWith('app-params')) { + alertParams = decodeURIComponent(event.headers.get(headerKey)!.replace(/\+/g, ' ')); } } if (alert) { this.alertService.addAlert({ type: 'success', - message: alert, + translationKey: alert, + translationParams: { param: alertParams }, }); } } diff --git a/git/sh-gateway/src/main/webapp/app/core/util/alert.service.spec.ts b/git/sh-gateway/src/main/webapp/app/core/util/alert.service.spec.ts index 65beb0f9da59522e0af4d1bf3173f15dd66e5241..934188c79a68bbe091024f68bdd2438003ddd3c5 100644 --- a/git/sh-gateway/src/main/webapp/app/core/util/alert.service.spec.ts +++ b/git/sh-gateway/src/main/webapp/app/core/util/alert.service.spec.ts @@ -1,4 +1,6 @@ import { inject, TestBed } from '@angular/core/testing'; +import { TranslateModule, TranslateService, MissingTranslationHandler } from '@ngx-translate/core'; +import { missingTranslationHandler } from '../../config/translation.config'; import { Alert, AlertService } from './alert.service'; @@ -7,7 +9,18 @@ describe('Alert service test', () => { let extAlerts: Alert[]; beforeEach(() => { - TestBed.configureTestingModule({}); + TestBed.configureTestingModule({ + imports: [ + TranslateModule.forRoot({ + missingTranslationHandler: { + provide: MissingTranslationHandler, + useFactory: missingTranslationHandler, + }, + }), + ], + }); + const translateService = TestBed.inject(TranslateService); + translateService.setDefaultLang('en'); jest.useFakeTimers(); extAlerts = []; }); @@ -229,5 +242,44 @@ describe('Alert service test', () => { } as Alert) ); })); + + it('should produce a info message with translated message if key exists', inject( + [AlertService, TranslateService], + (service: AlertService, translateService: TranslateService) => { + translateService.setTranslation('en', { + 'hello.jhipster': 'Translated message', + }); + expect(service.addAlert({ type: 'info', message: 'Hello Jhipster', translationKey: 'hello.jhipster' })).toEqual( + expect.objectContaining({ + type: 'info', + message: 'Translated message', + } as Alert) + ); + } + )); + + it('should produce a info message with provided message if key does not exists', inject( + [AlertService, TranslateService], + (service: AlertService) => { + expect(service.addAlert({ type: 'info', message: 'Hello Jhipster', translationKey: 'hello.jhipster' })).toEqual( + expect.objectContaining({ + type: 'info', + message: 'Hello Jhipster', + } as Alert) + ); + } + )); + + it('should produce a info message with provided key if transltion key does not exist in translations and message is not provided', inject( + [AlertService, TranslateService], + (service: AlertService) => { + expect(service.addAlert({ type: 'info', translationKey: 'hello.jhipster' })).toEqual( + expect.objectContaining({ + type: 'info', + message: 'hello.jhipster', + } as Alert) + ); + } + )); }); }); diff --git a/git/sh-gateway/src/main/webapp/app/core/util/alert.service.ts b/git/sh-gateway/src/main/webapp/app/core/util/alert.service.ts index 0bc93ebc5a386e904ed71e3353341a291bb9d6c7..4469bd6ce12a8af10953f7ea6981fcac51773b32 100644 --- a/git/sh-gateway/src/main/webapp/app/core/util/alert.service.ts +++ b/git/sh-gateway/src/main/webapp/app/core/util/alert.service.ts @@ -1,5 +1,8 @@ import { Injectable, SecurityContext, NgZone } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; +import { TranslateService } from '@ngx-translate/core'; + +import { translationNotFoundMessage } from 'app/config/translation.config'; export type AlertType = 'success' | 'danger' | 'warning' | 'info'; @@ -7,6 +10,8 @@ export interface Alert { id?: number; type: AlertType; message?: string; + translationKey?: string; + translationParams?: { [key: string]: unknown }; timeout?: number; toast?: boolean; position?: string; @@ -25,7 +30,7 @@ export class AlertService { private alertId = 0; private alerts: Alert[] = []; - constructor(private sanitizer: DomSanitizer, private ngZone: NgZone) {} + constructor(private sanitizer: DomSanitizer, private ngZone: NgZone, private translateService: TranslateService) {} clear(): void { this.alerts = []; @@ -38,6 +43,7 @@ export class AlertService { /** * Adds alert to alerts array and returns added alert. * @param alert Alert to add. If `timeout`, `toast` or `position` is missing then applying default value. + * If `translateKey` is available then it's translation else `message` is used for showing. * @param extAlerts If missing then adding `alert` to `AlertService` internal array and alerts can be retrieved by `get()`. * Else adding `alert` to `extAlerts`. * @returns Added alert @@ -45,6 +51,16 @@ export class AlertService { addAlert(alert: Alert, extAlerts?: Alert[]): Alert { alert.id = this.alertId++; + if (alert.translationKey) { + const translatedMessage = this.translateService.instant(alert.translationKey, alert.translationParams); + // if translation key exists + if (translatedMessage !== `${translationNotFoundMessage}[${alert.translationKey}]`) { + alert.message = translatedMessage; + } else if (!alert.message) { + alert.message = alert.translationKey; + } + } + alert.message = this.sanitizer.sanitize(SecurityContext.HTML, alert.message ?? '') ?? ''; alert.timeout = alert.timeout ?? this.timeout; alert.toast = alert.toast ?? this.toast; diff --git a/git/sh-gateway/src/main/webapp/app/entities/entity-routing.module.ts b/git/sh-gateway/src/main/webapp/app/entities/entity-routing.module.ts index 4bb1bc3a28f1930127d91b6a29477c23dc6d75b8..ae151db618da1f0fd2f7c80fde0318d33f69fcda 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/entity-routing.module.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/entity-routing.module.ts @@ -6,21 +6,30 @@ import { RouterModule } from '@angular/router'; RouterModule.forChild([ { path: 'self-healing-message', - data: { pageTitle: 'SelfHealingMessages' }, + data: { pageTitle: 'shGatewayApp.shBackendSelfHealingMessage.home.title' }, loadChildren: () => - import('./shBackend/self-healing-message/self-healing-message.module').then( - m => m.SelfHealingServiceSelfHealingMessageModule - ), + import('./shBackend/self-healing-message/self-healing-message.module').then(m => m.ShBackendSelfHealingMessageModule), }, { path: 'event-type', - data: { pageTitle: 'EventTypes' }, - loadChildren: () => import('./shBackend/event-type/event-type.module').then(m => m.SelfHealingServiceEventTypeModule), + data: { pageTitle: 'shGatewayApp.shBackendEventType.home.title' }, + loadChildren: () => import('./shBackend/event-type/event-type.module').then(m => m.ShBackendEventTypeModule), }, { path: 'strategy', - data: { pageTitle: 'Strategies' }, - loadChildren: () => import('./shBackend/strategy/strategy.module').then(m => m.SelfHealingServiceStrategyModule), + data: { pageTitle: 'shGatewayApp.shBackendStrategy.home.title' }, + loadChildren: () => import('./shBackend/strategy/strategy.module').then(m => m.ShBackendStrategyModule), + }, + { + path: 'deployment', + data: { pageTitle: 'shGatewayApp.shBackendDeployment.home.title' }, + loadChildren: () => import('./shBackend/deployment/deployment.module').then(m => m.ShBackendDeploymentModule), + }, + { + path: 'strategy-application', + data: { pageTitle: 'shGatewayApp.shBackendStrategyApplication.home.title' }, + loadChildren: () => + import('./shBackend/strategy-application/strategy-application.module').then(m => m.ShBackendStrategyApplicationModule), }, /* jhipster-needle-add-entity-route - JHipster will add entity modules routes here */ ]), diff --git a/git/sh-gateway/src/main/webapp/app/entities/enumerations/status.model.ts b/git/sh-gateway/src/main/webapp/app/entities/enumerations/status.model.ts index dfd93bba0ddea4eabac667632089367d09c19c75..7ad907ee82a394aa45e5294670ff6df2815d42fb 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/enumerations/status.model.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/enumerations/status.model.ts @@ -3,5 +3,7 @@ export enum Status { PROCESSED = 'Processed', + IGNORED = 'Ignored', + ERROR = 'Error', } diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/delete/deployment-delete-dialog.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/delete/deployment-delete-dialog.component.html new file mode 100644 index 0000000000000000000000000000000000000000..033db1f1ed6f5032763e2d32f8e59f8a94561220 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/delete/deployment-delete-dialog.component.html @@ -0,0 +1,29 @@ +<form *ngIf="deployment" name="deleteForm" (ngSubmit)="confirmDelete(deployment.id!)"> + <div class="modal-header"> + <h4 class="modal-title" data-cy="deploymentDeleteDialogHeading" jhiTranslate="entity.delete.title">Confirm delete operation</h4> + + <button type="button" class="close" data-dismiss="modal" aria-hidden="true" (click)="cancel()">×</button> + </div> + + <div class="modal-body"> + <jhi-alert-error></jhi-alert-error> + + <p + id="jhi-delete-deployment-heading" + jhiTranslate="shGatewayApp.shBackendDeployment.delete.question" + [translateValues]="{ id: deployment.id }" + > + Are you sure you want to delete this Deployment? + </p> + </div> + + <div class="modal-footer"> + <button type="button" class="btn btn-secondary" data-dismiss="modal" (click)="cancel()"> + <fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span> + </button> + + <button id="jhi-confirm-delete-deployment" data-cy="entityConfirmDeleteButton" type="submit" class="btn btn-danger"> + <fa-icon icon="times"></fa-icon> <span jhiTranslate="entity.action.delete">Delete</span> + </button> + </div> +</form> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/delete/deployment-delete-dialog.component.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/delete/deployment-delete-dialog.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..becd84f8b751a47a6045b761e601ea46f1ab5d43 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/delete/deployment-delete-dialog.component.spec.ts @@ -0,0 +1,65 @@ +jest.mock('@ng-bootstrap/ng-bootstrap'); + +import { ComponentFixture, TestBed, inject, fakeAsync, tick } from '@angular/core/testing'; +import { HttpResponse } from '@angular/common/http'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { of } from 'rxjs'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; + +import { DeploymentService } from '../service/deployment.service'; + +import { DeploymentDeleteDialogComponent } from './deployment-delete-dialog.component'; + +describe('Component Tests', () => { + describe('Deployment Management Delete Component', () => { + let comp: DeploymentDeleteDialogComponent; + let fixture: ComponentFixture<DeploymentDeleteDialogComponent>; + let service: DeploymentService; + let mockActiveModal: NgbActiveModal; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + declarations: [DeploymentDeleteDialogComponent], + providers: [NgbActiveModal], + }) + .overrideTemplate(DeploymentDeleteDialogComponent, '') + .compileComponents(); + fixture = TestBed.createComponent(DeploymentDeleteDialogComponent); + comp = fixture.componentInstance; + service = TestBed.inject(DeploymentService); + mockActiveModal = TestBed.inject(NgbActiveModal); + }); + + describe('confirmDelete', () => { + it('Should call delete service on confirmDelete', inject( + [], + fakeAsync(() => { + // GIVEN + jest.spyOn(service, 'delete').mockReturnValue(of(new HttpResponse({}))); + + // WHEN + comp.confirmDelete(123); + tick(); + + // THEN + expect(service.delete).toHaveBeenCalledWith(123); + expect(mockActiveModal.close).toHaveBeenCalledWith('deleted'); + }) + )); + + it('Should not call delete service on clear', () => { + // GIVEN + jest.spyOn(service, 'delete'); + + // WHEN + comp.cancel(); + + // THEN + expect(service.delete).not.toHaveBeenCalled(); + expect(mockActiveModal.close).not.toHaveBeenCalled(); + expect(mockActiveModal.dismiss).toHaveBeenCalled(); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/delete/deployment-delete-dialog.component.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/delete/deployment-delete-dialog.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..a09aa4e80089234daa3e2044d41da1de39605b95 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/delete/deployment-delete-dialog.component.ts @@ -0,0 +1,24 @@ +import { Component } from '@angular/core'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; + +import { IDeployment } from '../deployment.model'; +import { DeploymentService } from '../service/deployment.service'; + +@Component({ + templateUrl: './deployment-delete-dialog.component.html', +}) +export class DeploymentDeleteDialogComponent { + deployment?: IDeployment; + + constructor(protected deploymentService: DeploymentService, protected activeModal: NgbActiveModal) {} + + cancel(): void { + this.activeModal.dismiss(); + } + + confirmDelete(id: number): void { + this.deploymentService.delete(id).subscribe(() => { + this.activeModal.close('deleted'); + }); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/deployment.model.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/deployment.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..ab21c4fba8b65a8b2f4579c2c349f4beba3fe4dd --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/deployment.model.ts @@ -0,0 +1,14 @@ +export interface IDeployment { + id?: number; + deploymentId?: string; + bundleContentType?: string; + bundle?: string; +} + +export class Deployment implements IDeployment { + constructor(public id?: number, public deploymentId?: string, public bundleContentType?: string, public bundle?: string) {} +} + +export function getDeploymentIdentifier(deployment: IDeployment): number | undefined { + return deployment.id; +} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/deployment.module.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/deployment.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..e5ff227602df14925012618e9c04eb88b819f239 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/deployment.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { SharedModule } from 'app/shared/shared.module'; +import { DeploymentComponent } from './list/deployment.component'; +import { DeploymentDetailComponent } from './detail/deployment-detail.component'; +import { DeploymentUpdateComponent } from './update/deployment-update.component'; +import { DeploymentDeleteDialogComponent } from './delete/deployment-delete-dialog.component'; +import { DeploymentRoutingModule } from './route/deployment-routing.module'; + +@NgModule({ + imports: [SharedModule, DeploymentRoutingModule], + declarations: [DeploymentComponent, DeploymentDetailComponent, DeploymentUpdateComponent, DeploymentDeleteDialogComponent], + entryComponents: [DeploymentDeleteDialogComponent], +}) +export class ShBackendDeploymentModule {} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/detail/deployment-detail.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/detail/deployment-detail.component.html new file mode 100644 index 0000000000000000000000000000000000000000..e5c439bf93d4371a0e24b0b91c1c2aed8eafd469 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/detail/deployment-detail.component.html @@ -0,0 +1,51 @@ +<div class="row justify-content-center"> + <div class="col-8"> + <div *ngIf="deployment"> + <h2 data-cy="deploymentDetailsHeading"><span jhiTranslate="shGatewayApp.shBackendDeployment.detail.title">Deployment</span></h2> + + <hr /> + + <jhi-alert-error></jhi-alert-error> + + <jhi-alert></jhi-alert> + + <dl class="row-md jh-entity-details"> + <dt><span jhiTranslate="global.field.id">ID</span></dt> + <dd> + <span>{{ deployment.id }}</span> + </dd> + <dt> + <span + jhiTranslate="shGatewayApp.shBackendDeployment.deploymentId" + [ngbTooltip]="'shGatewayApp.shBackendDeployment.help.deploymentId' | translate" + >Deployment Id</span + > + </dt> + <dd> + <span>{{ deployment.deploymentId }}</span> + </dd> + <dt> + <span + jhiTranslate="shGatewayApp.shBackendDeployment.bundle" + [ngbTooltip]="'shGatewayApp.shBackendDeployment.help.bundle' | translate" + >Bundle</span + > + </dt> + <dd> + <div *ngIf="deployment.bundle"> + <a (click)="openFile(deployment.bundle, deployment.bundleContentType)" jhiTranslate="entity.action.open">open</a> + {{ deployment.bundleContentType }}, {{ byteSize(deployment.bundle) }} + </div> + </dd> + </dl> + + <button type="submit" (click)="previousState()" class="btn btn-info" data-cy="entityDetailsBackButton"> + <fa-icon icon="arrow-left"></fa-icon> <span jhiTranslate="entity.action.back">Back</span> + </button> + + <button type="button" [routerLink]="['/deployment', deployment.id, 'edit']" class="btn btn-primary"> + <fa-icon icon="pencil-alt"></fa-icon> <span jhiTranslate="entity.action.edit">Edit</span> + </button> + </div> + </div> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/detail/deployment-detail.component.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/detail/deployment-detail.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..c21c2ae25f78a0b7c288ad6917ae998b44df8376 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/detail/deployment-detail.component.spec.ts @@ -0,0 +1,77 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { ActivatedRoute } from '@angular/router'; +import { of } from 'rxjs'; + +import { DataUtils } from 'app/core/util/data-util.service'; + +import { DeploymentDetailComponent } from './deployment-detail.component'; + +describe('Component Tests', () => { + describe('Deployment Management Detail Component', () => { + let comp: DeploymentDetailComponent; + let fixture: ComponentFixture<DeploymentDetailComponent>; + let dataUtils: DataUtils; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [DeploymentDetailComponent], + providers: [ + { + provide: ActivatedRoute, + useValue: { data: of({ deployment: { id: 123 } }) }, + }, + ], + }) + .overrideTemplate(DeploymentDetailComponent, '') + .compileComponents(); + fixture = TestBed.createComponent(DeploymentDetailComponent); + comp = fixture.componentInstance; + dataUtils = TestBed.inject(DataUtils); + jest.spyOn(window, 'open').mockImplementation(() => null); + }); + + describe('OnInit', () => { + it('Should load deployment on init', () => { + // WHEN + comp.ngOnInit(); + + // THEN + expect(comp.deployment).toEqual(expect.objectContaining({ id: 123 })); + }); + }); + + describe('byteSize', () => { + it('Should call byteSize from DataUtils', () => { + // GIVEN + jest.spyOn(dataUtils, 'byteSize'); + const fakeBase64 = 'fake base64'; + + // WHEN + comp.byteSize(fakeBase64); + + // THEN + expect(dataUtils.byteSize).toBeCalledWith(fakeBase64); + }); + }); + + describe('openFile', () => { + it('Should call openFile from DataUtils', () => { + const newWindow = { ...window }; + newWindow.document.write = jest.fn(); + window.open = jest.fn(() => newWindow); + window.onload = jest.fn(() => newWindow); + window.URL.createObjectURL = jest.fn(); + // GIVEN + jest.spyOn(dataUtils, 'openFile'); + const fakeContentType = 'fake content type'; + const fakeBase64 = 'fake base64'; + + // WHEN + comp.openFile(fakeBase64, fakeContentType); + + // THEN + expect(dataUtils.openFile).toBeCalledWith(fakeBase64, fakeContentType); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/detail/deployment-detail.component.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/detail/deployment-detail.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..682d66589d7b4c3d3941263586655fad3b1d16dd --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/detail/deployment-detail.component.ts @@ -0,0 +1,33 @@ +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; + +import { IDeployment } from '../deployment.model'; +import { DataUtils } from 'app/core/util/data-util.service'; + +@Component({ + selector: 'jhi-deployment-detail', + templateUrl: './deployment-detail.component.html', +}) +export class DeploymentDetailComponent implements OnInit { + deployment: IDeployment | null = null; + + constructor(protected dataUtils: DataUtils, protected activatedRoute: ActivatedRoute) {} + + ngOnInit(): void { + this.activatedRoute.data.subscribe(({ deployment }) => { + this.deployment = deployment; + }); + } + + byteSize(base64String: string): string { + return this.dataUtils.byteSize(base64String); + } + + openFile(base64String: string, contentType: string | null | undefined): void { + this.dataUtils.openFile(base64String, contentType); + } + + previousState(): void { + window.history.back(); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/list/deployment.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/list/deployment.component.html new file mode 100644 index 0000000000000000000000000000000000000000..d7453c37a3e53fa8a16dd1a0ac25acb644be136a --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/list/deployment.component.html @@ -0,0 +1,88 @@ +<div> + <h2 id="page-heading" data-cy="DeploymentHeading"> + <span jhiTranslate="shGatewayApp.shBackendDeployment.home.title">Deployments</span> + + <div class="d-flex justify-content-end"> + <button class="btn btn-info mr-2" (click)="loadAll()" [disabled]="isLoading"> + <fa-icon icon="sync" [spin]="isLoading"></fa-icon> + <span jhiTranslate="shGatewayApp.shBackendDeployment.home.refreshListLabel">Refresh List</span> + </button> + + <button + id="jh-create-entity" + data-cy="entityCreateButton" + class="btn btn-primary jh-create-entity create-deployment" + [routerLink]="['/deployment/new']" + > + <fa-icon icon="plus"></fa-icon> + <span jhiTranslate="shGatewayApp.shBackendDeployment.home.createLabel"> Create a new Deployment </span> + </button> + </div> + </h2> + + <jhi-alert-error></jhi-alert-error> + + <jhi-alert></jhi-alert> + + <div class="alert alert-warning" id="no-result" *ngIf="deployments?.length === 0"> + <span jhiTranslate="shGatewayApp.shBackendDeployment.home.notFound">No deployments found</span> + </div> + + <div class="table-responsive" id="entities" *ngIf="deployments && deployments.length > 0"> + <table class="table table-striped" aria-describedby="page-heading"> + <thead> + <tr> + <th scope="col"><span jhiTranslate="global.field.id">ID</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendDeployment.deploymentId">Deployment Id</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendDeployment.bundle">Bundle</span></th> + <th scope="col"></th> + </tr> + </thead> + <tbody> + <tr *ngFor="let deployment of deployments; trackBy: trackId" data-cy="entityTable"> + <td> + <a [routerLink]="['/deployment', deployment.id, 'view']">{{ deployment.id }}</a> + </td> + <td>{{ deployment.deploymentId }}</td> + <td> + <a + *ngIf="deployment.bundle" + (click)="openFile(deployment.bundle, deployment.bundleContentType)" + jhiTranslate="entity.action.open" + >open</a + > + <span *ngIf="deployment.bundle">{{ deployment.bundleContentType }}, {{ byteSize(deployment.bundle) }}</span> + </td> + <td class="text-right"> + <div class="btn-group"> + <button + type="submit" + [routerLink]="['/deployment', deployment.id, 'view']" + class="btn btn-info btn-sm" + data-cy="entityDetailsButton" + > + <fa-icon icon="eye"></fa-icon> + <span class="d-none d-md-inline" jhiTranslate="entity.action.view">View</span> + </button> + + <button + type="submit" + [routerLink]="['/deployment', deployment.id, 'edit']" + class="btn btn-primary btn-sm" + data-cy="entityEditButton" + > + <fa-icon icon="pencil-alt"></fa-icon> + <span class="d-none d-md-inline" jhiTranslate="entity.action.edit">Edit</span> + </button> + + <button type="submit" (click)="delete(deployment)" class="btn btn-danger btn-sm" data-cy="entityDeleteButton"> + <fa-icon icon="times"></fa-icon> + <span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span> + </button> + </div> + </td> + </tr> + </tbody> + </table> + </div> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/list/deployment.component.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/list/deployment.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..ed6e6538c6e28991b10e9203275412befdd65b79 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/list/deployment.component.spec.ts @@ -0,0 +1,48 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { HttpHeaders, HttpResponse } from '@angular/common/http'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { of } from 'rxjs'; + +import { DeploymentService } from '../service/deployment.service'; + +import { DeploymentComponent } from './deployment.component'; + +describe('Component Tests', () => { + describe('Deployment Management Component', () => { + let comp: DeploymentComponent; + let fixture: ComponentFixture<DeploymentComponent>; + let service: DeploymentService; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + declarations: [DeploymentComponent], + }) + .overrideTemplate(DeploymentComponent, '') + .compileComponents(); + + fixture = TestBed.createComponent(DeploymentComponent); + comp = fixture.componentInstance; + service = TestBed.inject(DeploymentService); + + const headers = new HttpHeaders().append('link', 'link;link'); + jest.spyOn(service, 'query').mockReturnValue( + of( + new HttpResponse({ + body: [{ id: 123 }], + headers, + }) + ) + ); + }); + + it('Should call load all on init', () => { + // WHEN + comp.ngOnInit(); + + // THEN + expect(service.query).toHaveBeenCalled(); + expect(comp.deployments?.[0]).toEqual(expect.objectContaining({ id: 123 })); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/list/deployment.component.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/list/deployment.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..d036d72657f888acbbfc5898e8c1cd216624145f --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/list/deployment.component.ts @@ -0,0 +1,60 @@ +import { Component, OnInit } from '@angular/core'; +import { HttpResponse } from '@angular/common/http'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; + +import { IDeployment } from '../deployment.model'; +import { DeploymentService } from '../service/deployment.service'; +import { DeploymentDeleteDialogComponent } from '../delete/deployment-delete-dialog.component'; +import { DataUtils } from 'app/core/util/data-util.service'; + +@Component({ + selector: 'jhi-deployment', + templateUrl: './deployment.component.html', +}) +export class DeploymentComponent implements OnInit { + deployments?: IDeployment[]; + isLoading = false; + + constructor(protected deploymentService: DeploymentService, protected dataUtils: DataUtils, protected modalService: NgbModal) {} + + loadAll(): void { + this.isLoading = true; + + this.deploymentService.query().subscribe( + (res: HttpResponse<IDeployment[]>) => { + this.isLoading = false; + this.deployments = res.body ?? []; + }, + () => { + this.isLoading = false; + } + ); + } + + ngOnInit(): void { + this.loadAll(); + } + + trackId(index: number, item: IDeployment): number { + return item.id!; + } + + byteSize(base64String: string): string { + return this.dataUtils.byteSize(base64String); + } + + openFile(base64String: string, contentType: string | null | undefined): void { + return this.dataUtils.openFile(base64String, contentType); + } + + delete(deployment: IDeployment): void { + const modalRef = this.modalService.open(DeploymentDeleteDialogComponent, { size: 'lg', backdrop: 'static' }); + modalRef.componentInstance.deployment = deployment; + // unsubscribe not needed because closed completes on modal close + modalRef.closed.subscribe(reason => { + if (reason === 'deleted') { + this.loadAll(); + } + }); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/route/deployment-routing-resolve.service.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/route/deployment-routing-resolve.service.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..1c1bdd9fe6949fdd5b5d903ad73d17b0a2af8065 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/route/deployment-routing-resolve.service.spec.ts @@ -0,0 +1,82 @@ +jest.mock('@angular/router'); + +import { TestBed } from '@angular/core/testing'; +import { HttpResponse } from '@angular/common/http'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { ActivatedRouteSnapshot, Router } from '@angular/router'; +import { of } from 'rxjs'; + +import { IDeployment, Deployment } from '../deployment.model'; +import { DeploymentService } from '../service/deployment.service'; + +import { DeploymentRoutingResolveService } from './deployment-routing-resolve.service'; + +describe('Service Tests', () => { + describe('Deployment routing resolve service', () => { + let mockRouter: Router; + let mockActivatedRouteSnapshot: ActivatedRouteSnapshot; + let routingResolveService: DeploymentRoutingResolveService; + let service: DeploymentService; + let resultDeployment: IDeployment | undefined; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + providers: [Router, ActivatedRouteSnapshot], + }); + mockRouter = TestBed.inject(Router); + mockActivatedRouteSnapshot = TestBed.inject(ActivatedRouteSnapshot); + routingResolveService = TestBed.inject(DeploymentRoutingResolveService); + service = TestBed.inject(DeploymentService); + resultDeployment = undefined; + }); + + describe('resolve', () => { + it('should return IDeployment returned by find', () => { + // GIVEN + service.find = jest.fn(id => of(new HttpResponse({ body: { id } }))); + mockActivatedRouteSnapshot.params = { id: 123 }; + + // WHEN + routingResolveService.resolve(mockActivatedRouteSnapshot).subscribe(result => { + resultDeployment = result; + }); + + // THEN + expect(service.find).toBeCalledWith(123); + expect(resultDeployment).toEqual({ id: 123 }); + }); + + it('should return new IDeployment if id is not provided', () => { + // GIVEN + service.find = jest.fn(); + mockActivatedRouteSnapshot.params = {}; + + // WHEN + routingResolveService.resolve(mockActivatedRouteSnapshot).subscribe(result => { + resultDeployment = result; + }); + + // THEN + expect(service.find).not.toBeCalled(); + expect(resultDeployment).toEqual(new Deployment()); + }); + + it('should route to 404 page if data not found in server', () => { + // GIVEN + jest.spyOn(service, 'find').mockReturnValue(of(new HttpResponse({ body: null as unknown as Deployment }))); + mockActivatedRouteSnapshot.params = { id: 123 }; + + // WHEN + routingResolveService.resolve(mockActivatedRouteSnapshot).subscribe(result => { + resultDeployment = result; + }); + + // THEN + expect(service.find).toBeCalledWith(123); + expect(resultDeployment).toEqual(undefined); + expect(mockRouter.navigate).toHaveBeenCalledWith(['404']); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/route/deployment-routing-resolve.service.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/route/deployment-routing-resolve.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..6f4b2b6d471b3b2320a0a92691bf467c80ba7c1f --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/route/deployment-routing-resolve.service.ts @@ -0,0 +1,30 @@ +import { Injectable } from '@angular/core'; +import { HttpResponse } from '@angular/common/http'; +import { Resolve, ActivatedRouteSnapshot, Router } from '@angular/router'; +import { Observable, of, EMPTY } from 'rxjs'; +import { mergeMap } from 'rxjs/operators'; + +import { IDeployment, Deployment } from '../deployment.model'; +import { DeploymentService } from '../service/deployment.service'; + +@Injectable({ providedIn: 'root' }) +export class DeploymentRoutingResolveService implements Resolve<IDeployment> { + constructor(protected service: DeploymentService, protected router: Router) {} + + resolve(route: ActivatedRouteSnapshot): Observable<IDeployment> | Observable<never> { + const id = route.params['id']; + if (id) { + return this.service.find(id).pipe( + mergeMap((deployment: HttpResponse<Deployment>) => { + if (deployment.body) { + return of(deployment.body); + } else { + this.router.navigate(['404']); + return EMPTY; + } + }) + ); + } + return of(new Deployment()); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/route/deployment-routing.module.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/route/deployment-routing.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..3fa519950accb0218e07223077feb5e20a3e6a06 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/route/deployment-routing.module.ts @@ -0,0 +1,46 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +import { UserRouteAccessService } from 'app/core/auth/user-route-access.service'; +import { DeploymentComponent } from '../list/deployment.component'; +import { DeploymentDetailComponent } from '../detail/deployment-detail.component'; +import { DeploymentUpdateComponent } from '../update/deployment-update.component'; +import { DeploymentRoutingResolveService } from './deployment-routing-resolve.service'; + +const deploymentRoute: Routes = [ + { + path: '', + component: DeploymentComponent, + canActivate: [UserRouteAccessService], + }, + { + path: ':id/view', + component: DeploymentDetailComponent, + resolve: { + deployment: DeploymentRoutingResolveService, + }, + canActivate: [UserRouteAccessService], + }, + { + path: 'new', + component: DeploymentUpdateComponent, + resolve: { + deployment: DeploymentRoutingResolveService, + }, + canActivate: [UserRouteAccessService], + }, + { + path: ':id/edit', + component: DeploymentUpdateComponent, + resolve: { + deployment: DeploymentRoutingResolveService, + }, + canActivate: [UserRouteAccessService], + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(deploymentRoute)], + exports: [RouterModule], +}) +export class DeploymentRoutingModule {} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/service/deployment.service.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/service/deployment.service.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..3f269d69f8d2b4dd0021db5593a50e4b7a705758 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/service/deployment.service.spec.ts @@ -0,0 +1,188 @@ +import { TestBed } from '@angular/core/testing'; +import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; + +import { IDeployment, Deployment } from '../deployment.model'; + +import { DeploymentService } from './deployment.service'; + +describe('Service Tests', () => { + describe('Deployment Service', () => { + let service: DeploymentService; + let httpMock: HttpTestingController; + let elemDefault: IDeployment; + let expectedResult: IDeployment | IDeployment[] | boolean | null; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + }); + expectedResult = null; + service = TestBed.inject(DeploymentService); + httpMock = TestBed.inject(HttpTestingController); + + elemDefault = { + id: 0, + deploymentId: 'AAAAAAA', + bundleContentType: 'image/png', + bundle: 'AAAAAAA', + }; + }); + + describe('Service methods', () => { + it('should find an element', () => { + const returnedFromService = Object.assign({}, elemDefault); + + service.find(123).subscribe(resp => (expectedResult = resp.body)); + + const req = httpMock.expectOne({ method: 'GET' }); + req.flush(returnedFromService); + expect(expectedResult).toMatchObject(elemDefault); + }); + + it('should create a Deployment', () => { + const returnedFromService = Object.assign( + { + id: 0, + }, + elemDefault + ); + + const expected = Object.assign({}, returnedFromService); + + service.create(new Deployment()).subscribe(resp => (expectedResult = resp.body)); + + const req = httpMock.expectOne({ method: 'POST' }); + req.flush(returnedFromService); + expect(expectedResult).toMatchObject(expected); + }); + + it('should update a Deployment', () => { + const returnedFromService = Object.assign( + { + id: 1, + deploymentId: 'BBBBBB', + bundle: 'BBBBBB', + }, + elemDefault + ); + + const expected = Object.assign({}, returnedFromService); + + service.update(expected).subscribe(resp => (expectedResult = resp.body)); + + const req = httpMock.expectOne({ method: 'PUT' }); + req.flush(returnedFromService); + expect(expectedResult).toMatchObject(expected); + }); + + it('should partial update a Deployment', () => { + const patchObject = Object.assign( + { + bundle: 'BBBBBB', + }, + new Deployment() + ); + + const returnedFromService = Object.assign(patchObject, elemDefault); + + const expected = Object.assign({}, returnedFromService); + + service.partialUpdate(patchObject).subscribe(resp => (expectedResult = resp.body)); + + const req = httpMock.expectOne({ method: 'PATCH' }); + req.flush(returnedFromService); + expect(expectedResult).toMatchObject(expected); + }); + + it('should return a list of Deployment', () => { + const returnedFromService = Object.assign( + { + id: 1, + deploymentId: 'BBBBBB', + bundle: 'BBBBBB', + }, + elemDefault + ); + + const expected = Object.assign({}, returnedFromService); + + service.query().subscribe(resp => (expectedResult = resp.body)); + + const req = httpMock.expectOne({ method: 'GET' }); + req.flush([returnedFromService]); + httpMock.verify(); + expect(expectedResult).toContainEqual(expected); + }); + + it('should delete a Deployment', () => { + service.delete(123).subscribe(resp => (expectedResult = resp.ok)); + + const req = httpMock.expectOne({ method: 'DELETE' }); + req.flush({ status: 200 }); + expect(expectedResult); + }); + + describe('addDeploymentToCollectionIfMissing', () => { + it('should add a Deployment to an empty array', () => { + const deployment: IDeployment = { id: 123 }; + expectedResult = service.addDeploymentToCollectionIfMissing([], deployment); + expect(expectedResult).toHaveLength(1); + expect(expectedResult).toContain(deployment); + }); + + it('should not add a Deployment to an array that contains it', () => { + const deployment: IDeployment = { id: 123 }; + const deploymentCollection: IDeployment[] = [ + { + ...deployment, + }, + { id: 456 }, + ]; + expectedResult = service.addDeploymentToCollectionIfMissing(deploymentCollection, deployment); + expect(expectedResult).toHaveLength(2); + }); + + it("should add a Deployment to an array that doesn't contain it", () => { + const deployment: IDeployment = { id: 123 }; + const deploymentCollection: IDeployment[] = [{ id: 456 }]; + expectedResult = service.addDeploymentToCollectionIfMissing(deploymentCollection, deployment); + expect(expectedResult).toHaveLength(2); + expect(expectedResult).toContain(deployment); + }); + + it('should add only unique Deployment to an array', () => { + const deploymentArray: IDeployment[] = [{ id: 123 }, { id: 456 }, { id: 66697 }]; + const deploymentCollection: IDeployment[] = [{ id: 123 }]; + expectedResult = service.addDeploymentToCollectionIfMissing(deploymentCollection, ...deploymentArray); + expect(expectedResult).toHaveLength(3); + }); + + it('should accept varargs', () => { + const deployment: IDeployment = { id: 123 }; + const deployment2: IDeployment = { id: 456 }; + expectedResult = service.addDeploymentToCollectionIfMissing([], deployment, deployment2); + expect(expectedResult).toHaveLength(2); + expect(expectedResult).toContain(deployment); + expect(expectedResult).toContain(deployment2); + }); + + it('should accept null and undefined values', () => { + const deployment: IDeployment = { id: 123 }; + expectedResult = service.addDeploymentToCollectionIfMissing([], null, deployment, undefined); + expect(expectedResult).toHaveLength(1); + expect(expectedResult).toContain(deployment); + }); + + it('should return initial array if no Deployment is added', () => { + const deploymentCollection: IDeployment[] = [{ id: 123 }]; + expectedResult = service.addDeploymentToCollectionIfMissing(deploymentCollection, undefined, null); + expect(expectedResult).toEqual(deploymentCollection); + }); + }); + }); + + afterEach(() => { + httpMock.verify(); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/service/deployment.service.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/service/deployment.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..41e79709adc7c05515e05e6e65dc63de8caa3ada --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/service/deployment.service.ts @@ -0,0 +1,67 @@ +import { Injectable } from '@angular/core'; +import { HttpClient, HttpResponse } from '@angular/common/http'; +import { Observable } from 'rxjs'; + +import { isPresent } from 'app/core/util/operators'; +import { ApplicationConfigService } from 'app/core/config/application-config.service'; +import { createRequestOption } from 'app/core/request/request-util'; +import { IDeployment, getDeploymentIdentifier } from '../deployment.model'; + +export type EntityResponseType = HttpResponse<IDeployment>; +export type EntityArrayResponseType = HttpResponse<IDeployment[]>; + +@Injectable({ providedIn: 'root' }) +export class DeploymentService { + protected resourceUrl = this.applicationConfigService.getEndpointFor('api/deployments', 'shbackend'); + + constructor(protected http: HttpClient, protected applicationConfigService: ApplicationConfigService) {} + + create(deployment: IDeployment): Observable<EntityResponseType> { + return this.http.post<IDeployment>(this.resourceUrl, deployment, { observe: 'response' }); + } + + update(deployment: IDeployment): Observable<EntityResponseType> { + return this.http.put<IDeployment>(`${this.resourceUrl}/${getDeploymentIdentifier(deployment) as number}`, deployment, { + observe: 'response', + }); + } + + partialUpdate(deployment: IDeployment): Observable<EntityResponseType> { + return this.http.patch<IDeployment>(`${this.resourceUrl}/${getDeploymentIdentifier(deployment) as number}`, deployment, { + observe: 'response', + }); + } + + find(id: number): Observable<EntityResponseType> { + return this.http.get<IDeployment>(`${this.resourceUrl}/${id}`, { observe: 'response' }); + } + + query(req?: any): Observable<EntityArrayResponseType> { + const options = createRequestOption(req); + return this.http.get<IDeployment[]>(this.resourceUrl, { params: options, observe: 'response' }); + } + + delete(id: number): Observable<HttpResponse<{}>> { + return this.http.delete(`${this.resourceUrl}/${id}`, { observe: 'response' }); + } + + addDeploymentToCollectionIfMissing( + deploymentCollection: IDeployment[], + ...deploymentsToCheck: (IDeployment | null | undefined)[] + ): IDeployment[] { + const deployments: IDeployment[] = deploymentsToCheck.filter(isPresent); + if (deployments.length > 0) { + const deploymentCollectionIdentifiers = deploymentCollection.map(deploymentItem => getDeploymentIdentifier(deploymentItem)!); + const deploymentsToAdd = deployments.filter(deploymentItem => { + const deploymentIdentifier = getDeploymentIdentifier(deploymentItem); + if (deploymentIdentifier == null || deploymentCollectionIdentifiers.includes(deploymentIdentifier)) { + return false; + } + deploymentCollectionIdentifiers.push(deploymentIdentifier); + return true; + }); + return [...deploymentsToAdd, ...deploymentCollection]; + } + return deploymentCollection; + } +} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/update/deployment-update.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/update/deployment-update.component.html new file mode 100644 index 0000000000000000000000000000000000000000..bc0d5331df197fab3f5f89d63ea8b5b893b26aa0 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/update/deployment-update.component.html @@ -0,0 +1,115 @@ +<div class="row justify-content-center"> + <div class="col-8"> + <form name="editForm" role="form" novalidate (ngSubmit)="save()" [formGroup]="editForm"> + <h2 + id="jhi-deployment-heading" + data-cy="DeploymentCreateUpdateHeading" + jhiTranslate="shGatewayApp.shBackendDeployment.home.createOrEditLabel" + > + Create or edit a Deployment + </h2> + + <div> + <jhi-alert-error></jhi-alert-error> + + <div class="form-group" [hidden]="editForm.get('id')!.value == null"> + <label class="form-control-label" jhiTranslate="global.field.id" for="field_id">ID</label> + <input type="number" class="form-control" name="id" id="field_id" data-cy="id" formControlName="id" [readonly]="true" /> + </div> + + <div class="form-group"> + <label + class="form-control-label" + jhiTranslate="shGatewayApp.shBackendDeployment.deploymentId" + for="field_deploymentId" + [ngbTooltip]="'shGatewayApp.shBackendDeployment.help.deploymentId' | translate" + >Deployment Id</label + > + <input + type="text" + class="form-control" + name="deploymentId" + id="field_deploymentId" + data-cy="deploymentId" + formControlName="deploymentId" + /> + <div + *ngIf="editForm.get('deploymentId')!.invalid && (editForm.get('deploymentId')!.dirty || editForm.get('deploymentId')!.touched)" + > + <small + class="form-text text-danger" + *ngIf="editForm.get('deploymentId')?.errors?.required" + jhiTranslate="entity.validation.required" + > + This field is required. + </small> + </div> + </div> + + <div class="form-group"> + <label + class="form-control-label" + jhiTranslate="shGatewayApp.shBackendDeployment.bundle" + for="field_bundle" + [ngbTooltip]="'shGatewayApp.shBackendDeployment.help.bundle' | translate" + >Bundle</label + > + <div> + <div *ngIf="editForm.get('bundle')!.value" class="form-text text-danger clearfix"> + <a + class="pull-left" + (click)="openFile(editForm.get('bundle')!.value, editForm.get('bundleContentType')!.value)" + jhiTranslate="entity.action.open" + >open</a + ><br /> + <span class="pull-left">{{ editForm.get('bundleContentType')!.value }}, {{ byteSize(editForm.get('bundle')!.value) }}</span> + <button + type="button" + (click)="editForm.patchValue({ bundle: null }); editForm.patchValue({ bundleContentType: null })" + class="btn btn-secondary btn-xs pull-right" + > + <fa-icon icon="times"></fa-icon> + </button> + </div> + <input + type="file" + id="file_bundle" + data-cy="bundle" + (change)="setFileData($event, 'bundle', false)" + jhiTranslate="entity.action.addblob" + /> + </div> + <input type="hidden" class="form-control" name="bundle" id="field_bundle" data-cy="bundle" formControlName="bundle" /> + <input + type="hidden" + class="form-control" + name="bundleContentType" + id="field_bundleContentType" + formControlName="bundleContentType" + /> + <div *ngIf="editForm.get('bundle')!.invalid && (editForm.get('bundle')!.dirty || editForm.get('bundle')!.touched)"> + <small class="form-text text-danger" *ngIf="editForm.get('bundle')?.errors?.required" jhiTranslate="entity.validation.required"> + This field is required. + </small> + </div> + </div> + </div> + + <div> + <button type="button" id="cancel-save" data-cy="entityCreateCancelButton" class="btn btn-secondary" (click)="previousState()"> + <fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span> + </button> + + <button + type="submit" + id="save-entity" + data-cy="entityCreateSaveButton" + [disabled]="editForm.invalid || isSaving" + class="btn btn-primary" + > + <fa-icon icon="save"></fa-icon> <span jhiTranslate="entity.action.save">Save</span> + </button> + </div> + </form> + </div> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/update/deployment-update.component.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/update/deployment-update.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..0c5ef0740e395c982b449e358f35ca2f2b5890e4 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/update/deployment-update.component.spec.ts @@ -0,0 +1,113 @@ +jest.mock('@angular/router'); + +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { HttpResponse } from '@angular/common/http'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { FormBuilder } from '@angular/forms'; +import { ActivatedRoute } from '@angular/router'; +import { of, Subject } from 'rxjs'; + +import { DeploymentService } from '../service/deployment.service'; +import { IDeployment, Deployment } from '../deployment.model'; + +import { DeploymentUpdateComponent } from './deployment-update.component'; + +describe('Component Tests', () => { + describe('Deployment Management Update Component', () => { + let comp: DeploymentUpdateComponent; + let fixture: ComponentFixture<DeploymentUpdateComponent>; + let activatedRoute: ActivatedRoute; + let deploymentService: DeploymentService; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + declarations: [DeploymentUpdateComponent], + providers: [FormBuilder, ActivatedRoute], + }) + .overrideTemplate(DeploymentUpdateComponent, '') + .compileComponents(); + + fixture = TestBed.createComponent(DeploymentUpdateComponent); + activatedRoute = TestBed.inject(ActivatedRoute); + deploymentService = TestBed.inject(DeploymentService); + + comp = fixture.componentInstance; + }); + + describe('ngOnInit', () => { + it('Should update editForm', () => { + const deployment: IDeployment = { id: 456 }; + + activatedRoute.data = of({ deployment }); + comp.ngOnInit(); + + expect(comp.editForm.value).toEqual(expect.objectContaining(deployment)); + }); + }); + + describe('save', () => { + it('Should call update service on save for existing entity', () => { + // GIVEN + const saveSubject = new Subject<HttpResponse<Deployment>>(); + const deployment = { id: 123 }; + jest.spyOn(deploymentService, 'update').mockReturnValue(saveSubject); + jest.spyOn(comp, 'previousState'); + activatedRoute.data = of({ deployment }); + comp.ngOnInit(); + + // WHEN + comp.save(); + expect(comp.isSaving).toEqual(true); + saveSubject.next(new HttpResponse({ body: deployment })); + saveSubject.complete(); + + // THEN + expect(comp.previousState).toHaveBeenCalled(); + expect(deploymentService.update).toHaveBeenCalledWith(deployment); + expect(comp.isSaving).toEqual(false); + }); + + it('Should call create service on save for new entity', () => { + // GIVEN + const saveSubject = new Subject<HttpResponse<Deployment>>(); + const deployment = new Deployment(); + jest.spyOn(deploymentService, 'create').mockReturnValue(saveSubject); + jest.spyOn(comp, 'previousState'); + activatedRoute.data = of({ deployment }); + comp.ngOnInit(); + + // WHEN + comp.save(); + expect(comp.isSaving).toEqual(true); + saveSubject.next(new HttpResponse({ body: deployment })); + saveSubject.complete(); + + // THEN + expect(deploymentService.create).toHaveBeenCalledWith(deployment); + expect(comp.isSaving).toEqual(false); + expect(comp.previousState).toHaveBeenCalled(); + }); + + it('Should set isSaving to false on error', () => { + // GIVEN + const saveSubject = new Subject<HttpResponse<Deployment>>(); + const deployment = { id: 123 }; + jest.spyOn(deploymentService, 'update').mockReturnValue(saveSubject); + jest.spyOn(comp, 'previousState'); + activatedRoute.data = of({ deployment }); + comp.ngOnInit(); + + // WHEN + comp.save(); + expect(comp.isSaving).toEqual(true); + saveSubject.error('This is an error!'); + + // THEN + expect(deploymentService.update).toHaveBeenCalledWith(deployment); + expect(comp.isSaving).toEqual(false); + expect(comp.previousState).not.toHaveBeenCalled(); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/update/deployment-update.component.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/update/deployment-update.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..538ea40fbe8145b4a3f5c2d400c83676ed6ac6a2 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/deployment/update/deployment-update.component.ts @@ -0,0 +1,108 @@ +import { Component, OnInit } from '@angular/core'; +import { HttpResponse } from '@angular/common/http'; +import { FormBuilder, Validators } from '@angular/forms'; +import { ActivatedRoute } from '@angular/router'; +import { Observable } from 'rxjs'; +import { finalize } from 'rxjs/operators'; + +import { IDeployment, Deployment } from '../deployment.model'; +import { DeploymentService } from '../service/deployment.service'; +import { AlertError } from 'app/shared/alert/alert-error.model'; +import { EventManager, EventWithContent } from 'app/core/util/event-manager.service'; +import { DataUtils, FileLoadError } from 'app/core/util/data-util.service'; + +@Component({ + selector: 'jhi-deployment-update', + templateUrl: './deployment-update.component.html', +}) +export class DeploymentUpdateComponent implements OnInit { + isSaving = false; + + editForm = this.fb.group({ + id: [], + deploymentId: [null, [Validators.required]], + bundle: [null, [Validators.required]], + bundleContentType: [], + }); + + constructor( + protected dataUtils: DataUtils, + protected eventManager: EventManager, + protected deploymentService: DeploymentService, + protected activatedRoute: ActivatedRoute, + protected fb: FormBuilder + ) {} + + ngOnInit(): void { + this.activatedRoute.data.subscribe(({ deployment }) => { + this.updateForm(deployment); + }); + } + + byteSize(base64String: string): string { + return this.dataUtils.byteSize(base64String); + } + + openFile(base64String: string, contentType: string | null | undefined): void { + this.dataUtils.openFile(base64String, contentType); + } + + setFileData(event: Event, field: string, isImage: boolean): void { + this.dataUtils.loadFileToForm(event, this.editForm, field, isImage).subscribe({ + error: (err: FileLoadError) => + this.eventManager.broadcast(new EventWithContent<AlertError>('shGatewayApp.error', { ...err, key: 'error.file.' + err.key })), + }); + } + + previousState(): void { + window.history.back(); + } + + save(): void { + this.isSaving = true; + const deployment = this.createFromForm(); + if (deployment.id !== undefined) { + this.subscribeToSaveResponse(this.deploymentService.update(deployment)); + } else { + this.subscribeToSaveResponse(this.deploymentService.create(deployment)); + } + } + + protected subscribeToSaveResponse(result: Observable<HttpResponse<IDeployment>>): void { + result.pipe(finalize(() => this.onSaveFinalize())).subscribe( + () => this.onSaveSuccess(), + () => this.onSaveError() + ); + } + + protected onSaveSuccess(): void { + this.previousState(); + } + + protected onSaveError(): void { + // Api for inheritance. + } + + protected onSaveFinalize(): void { + this.isSaving = false; + } + + protected updateForm(deployment: IDeployment): void { + this.editForm.patchValue({ + id: deployment.id, + deploymentId: deployment.deploymentId, + bundle: deployment.bundle, + bundleContentType: deployment.bundleContentType, + }); + } + + protected createFromForm(): IDeployment { + return { + ...new Deployment(), + id: this.editForm.get(['id'])!.value, + deploymentId: this.editForm.get(['deploymentId'])!.value, + bundleContentType: this.editForm.get(['bundleContentType'])!.value, + bundle: this.editForm.get(['bundle'])!.value, + }; + } +} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/delete/event-type-delete-dialog.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/delete/event-type-delete-dialog.component.html index edfe35c907984518533832b992aa572adecd8f29..ee23dc4feef087d76e57df8361057d7ec43ed464 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/delete/event-type-delete-dialog.component.html +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/delete/event-type-delete-dialog.component.html @@ -1,6 +1,6 @@ <form *ngIf="eventType" name="deleteForm" (ngSubmit)="confirmDelete(eventType.id!)"> <div class="modal-header"> - <h4 class="modal-title" data-cy="eventTypeDeleteDialogHeading">Confirm delete operation</h4> + <h4 class="modal-title" data-cy="eventTypeDeleteDialogHeading" jhiTranslate="entity.delete.title">Confirm delete operation</h4> <button type="button" class="close" data-dismiss="modal" aria-hidden="true" (click)="cancel()">×</button> </div> @@ -8,16 +8,22 @@ <div class="modal-body"> <jhi-alert-error></jhi-alert-error> - <p id="jhi-delete-eventType-heading">Are you sure you want to delete this Event Type?</p> + <p + id="jhi-delete-eventType-heading" + jhiTranslate="shGatewayApp.shBackendEventType.delete.question" + [translateValues]="{ id: eventType.id }" + > + Are you sure you want to delete this Event Type? + </p> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal" (click)="cancel()"> - <fa-icon icon="ban"></fa-icon> <span>Cancel</span> + <fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span> </button> <button id="jhi-confirm-delete-eventType" data-cy="entityConfirmDeleteButton" type="submit" class="btn btn-danger"> - <fa-icon icon="times"></fa-icon> <span>Delete</span> + <fa-icon icon="times"></fa-icon> <span jhiTranslate="entity.action.delete">Delete</span> </button> </div> </form> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/detail/event-type-detail.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/detail/event-type-detail.component.html index 2680cf5cb332fb1b6c73f46dbd8dc1c9ab39fb3b..883caf8453c1ccfa5f14a7122968432cee17e1bb 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/detail/event-type-detail.component.html +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/detail/event-type-detail.component.html @@ -1,7 +1,7 @@ <div class="row justify-content-center"> <div class="col-8"> <div *ngIf="eventType"> - <h2 data-cy="eventTypeDetailsHeading"><span>Event Type</span></h2> + <h2 data-cy="eventTypeDetailsHeading"><span jhiTranslate="shGatewayApp.shBackendEventType.detail.title">Event Type</span></h2> <hr /> @@ -10,32 +10,48 @@ <jhi-alert></jhi-alert> <dl class="row-md jh-entity-details"> - <dt><span>ID</span></dt> + <dt><span jhiTranslate="global.field.id">ID</span></dt> <dd> <span>{{ eventType.id }}</span> </dd> - <dt><span ngbTooltip="event type code">Code</span></dt> + <dt> + <span jhiTranslate="shGatewayApp.shBackendEventType.code" [ngbTooltip]="'shGatewayApp.shBackendEventType.help.code' | translate" + >Code</span + > + </dt> <dd> <span>{{ eventType.code }}</span> </dd> - <dt><span ngbTooltip="event type description">Description</span></dt> + <dt> + <span + jhiTranslate="shGatewayApp.shBackendEventType.description" + [ngbTooltip]="'shGatewayApp.shBackendEventType.help.description' | translate" + >Description</span + > + </dt> <dd> <span>{{ eventType.description }}</span> </dd> - <dt><span>Strategy</span></dt> + <dt><span jhiTranslate="shGatewayApp.shBackendEventType.strategy">Strategy</span></dt> <dd> <div *ngIf="eventType.strategy"> <a [routerLink]="['/strategy', eventType.strategy?.id, 'view']">{{ eventType.strategy?.code }}</a> </div> </dd> + <dt><span jhiTranslate="shGatewayApp.shBackendEventType.deployment">Deployment</span></dt> + <dd> + <div *ngIf="eventType.deployment"> + <a [routerLink]="['/deployment', eventType.deployment?.id, 'view']">{{ eventType.deployment?.deploymentId }}</a> + </div> + </dd> </dl> <button type="submit" (click)="previousState()" class="btn btn-info" data-cy="entityDetailsBackButton"> - <fa-icon icon="arrow-left"></fa-icon> <span>Back</span> + <fa-icon icon="arrow-left"></fa-icon> <span jhiTranslate="entity.action.back">Back</span> </button> <button type="button" [routerLink]="['/event-type', eventType.id, 'edit']" class="btn btn-primary"> - <fa-icon icon="pencil-alt"></fa-icon> <span>Edit</span> + <fa-icon icon="pencil-alt"></fa-icon> <span jhiTranslate="entity.action.edit">Edit</span> </button> </div> </div> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/event-type.model.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/event-type.model.ts index 70b16f7a8a92d858ca3a74b281cdf6dc97b4cafd..d35536d82faf2561ecde901989e97a078e54939c 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/event-type.model.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/event-type.model.ts @@ -1,14 +1,22 @@ import { IStrategy } from 'app/entities/shBackend/strategy/strategy.model'; +import { IDeployment } from 'app/entities/shBackend/deployment/deployment.model'; export interface IEventType { id?: number; code?: string; description?: string | null; strategy?: IStrategy | null; + deployment?: IDeployment | null; } export class EventType implements IEventType { - constructor(public id?: number, public code?: string, public description?: string | null, public strategy?: IStrategy | null) {} + constructor( + public id?: number, + public code?: string, + public description?: string | null, + public strategy?: IStrategy | null, + public deployment?: IDeployment | null + ) {} } export function getEventTypeIdentifier(eventType: IEventType): number | undefined { diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/event-type.module.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/event-type.module.ts index 0df51f82b0f5374b3e94b98c0e5dae6fc56a9314..51e22b6cab5eeed67e6585f12aecea865bc4cda1 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/event-type.module.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/event-type.module.ts @@ -11,4 +11,4 @@ import { EventTypeRoutingModule } from './route/event-type-routing.module'; declarations: [EventTypeComponent, EventTypeDetailComponent, EventTypeUpdateComponent, EventTypeDeleteDialogComponent], entryComponents: [EventTypeDeleteDialogComponent], }) -export class SelfHealingServiceEventTypeModule {} +export class ShBackendEventTypeModule {} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/list/event-type.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/list/event-type.component.html index 7986cb34313fffc70cd1a98b35e7bb4a177d6a71..6df4b9429e6501c35bdf6c9673b9220bee355843 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/list/event-type.component.html +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/list/event-type.component.html @@ -1,11 +1,11 @@ <div> <h2 id="page-heading" data-cy="EventTypeHeading"> - <span>Event Types</span> + <span jhiTranslate="shGatewayApp.shBackendEventType.home.title">Event Types</span> <div class="d-flex justify-content-end"> <button class="btn btn-info mr-2" (click)="loadAll()" [disabled]="isLoading"> <fa-icon icon="sync" [spin]="isLoading"></fa-icon> - <span>Refresh List</span> + <span jhiTranslate="shGatewayApp.shBackendEventType.home.refreshListLabel">Refresh List</span> </button> <button @@ -15,7 +15,7 @@ [routerLink]="['/event-type/new']" > <fa-icon icon="plus"></fa-icon> - <span> Create a new Event Type </span> + <span jhiTranslate="shGatewayApp.shBackendEventType.home.createLabel"> Create a new Event Type </span> </button> </div> </h2> @@ -25,17 +25,18 @@ <jhi-alert></jhi-alert> <div class="alert alert-warning" id="no-result" *ngIf="eventTypes?.length === 0"> - <span>No eventTypes found</span> + <span jhiTranslate="shGatewayApp.shBackendEventType.home.notFound">No eventTypes found</span> </div> <div class="table-responsive" id="entities" *ngIf="eventTypes && eventTypes.length > 0"> <table class="table table-striped" aria-describedby="page-heading"> <thead> <tr> - <th scope="col"><span>ID</span></th> - <th scope="col"><span>Code</span></th> - <th scope="col"><span>Description</span></th> - <th scope="col"><span>Strategy</span></th> + <th scope="col"><span jhiTranslate="global.field.id">ID</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendEventType.code">Code</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendEventType.description">Description</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendEventType.strategy">Strategy</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendEventType.deployment">Deployment</span></th> <th scope="col"></th> </tr> </thead> @@ -51,6 +52,11 @@ <a [routerLink]="['/strategy', eventType.strategy?.id, 'view']">{{ eventType.strategy?.code }}</a> </div> </td> + <td> + <div *ngIf="eventType.deployment"> + <a [routerLink]="['/deployment', eventType.deployment?.id, 'view']">{{ eventType.deployment?.deploymentId }}</a> + </div> + </td> <td class="text-right"> <div class="btn-group"> <button @@ -60,7 +66,7 @@ data-cy="entityDetailsButton" > <fa-icon icon="eye"></fa-icon> - <span class="d-none d-md-inline">View</span> + <span class="d-none d-md-inline" jhiTranslate="entity.action.view">View</span> </button> <button @@ -70,12 +76,12 @@ data-cy="entityEditButton" > <fa-icon icon="pencil-alt"></fa-icon> - <span class="d-none d-md-inline">Edit</span> + <span class="d-none d-md-inline" jhiTranslate="entity.action.edit">Edit</span> </button> <button type="submit" (click)="delete(eventType)" class="btn btn-danger btn-sm" data-cy="entityDeleteButton"> <fa-icon icon="times"></fa-icon> - <span class="d-none d-md-inline">Delete</span> + <span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span> </button> </div> </td> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/update/event-type-update.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/update/event-type-update.component.html index e85f94494c5564d8ab4a249f38e393d29214dfc7..6a76763f62e9c9fc2b6f88ed808dc28aabc52d1f 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/update/event-type-update.component.html +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/update/event-type-update.component.html @@ -1,26 +1,46 @@ <div class="row justify-content-center"> <div class="col-8"> <form name="editForm" role="form" novalidate (ngSubmit)="save()" [formGroup]="editForm"> - <h2 id="jhi-event-type-heading" data-cy="EventTypeCreateUpdateHeading">Create or edit a Event Type</h2> + <h2 + id="jhi-event-type-heading" + data-cy="EventTypeCreateUpdateHeading" + jhiTranslate="shGatewayApp.shBackendEventType.home.createOrEditLabel" + > + Create or edit a Event Type + </h2> <div> <jhi-alert-error></jhi-alert-error> <div class="form-group" [hidden]="editForm.get('id')!.value == null"> - <label class="form-control-label" for="field_id">ID</label> + <label class="form-control-label" jhiTranslate="global.field.id" for="field_id">ID</label> <input type="number" class="form-control" name="id" id="field_id" data-cy="id" formControlName="id" [readonly]="true" /> </div> <div class="form-group"> - <label class="form-control-label" for="field_code" ngbTooltip="event type code">Code</label> + <label + class="form-control-label" + jhiTranslate="shGatewayApp.shBackendEventType.code" + for="field_code" + [ngbTooltip]="'shGatewayApp.shBackendEventType.help.code' | translate" + >Code</label + > <input type="text" class="form-control" name="code" id="field_code" data-cy="code" formControlName="code" /> <div *ngIf="editForm.get('code')!.invalid && (editForm.get('code')!.dirty || editForm.get('code')!.touched)"> - <small class="form-text text-danger" *ngIf="editForm.get('code')?.errors?.required"> This field is required. </small> + <small class="form-text text-danger" *ngIf="editForm.get('code')?.errors?.required" jhiTranslate="entity.validation.required"> + This field is required. + </small> </div> </div> <div class="form-group"> - <label class="form-control-label" for="field_description" ngbTooltip="event type description">Description</label> + <label + class="form-control-label" + jhiTranslate="shGatewayApp.shBackendEventType.description" + for="field_description" + [ngbTooltip]="'shGatewayApp.shBackendEventType.help.description' | translate" + >Description</label + > <input type="text" class="form-control" @@ -32,7 +52,7 @@ </div> <div class="form-group"> - <label class="form-control-label" for="field_strategy">Strategy</label> + <label class="form-control-label" jhiTranslate="shGatewayApp.shBackendEventType.strategy" for="field_strategy">Strategy</label> <select class="form-control" id="field_strategy" data-cy="strategy" name="strategy" formControlName="strategy"> <option [ngValue]="null"></option> <option @@ -43,11 +63,28 @@ </option> </select> </div> + + <div class="form-group"> + <label class="form-control-label" jhiTranslate="shGatewayApp.shBackendEventType.deployment" for="field_deployment" + >Deployment</label + > + <select class="form-control" id="field_deployment" data-cy="deployment" name="deployment" formControlName="deployment"> + <option [ngValue]="null"></option> + <option + [ngValue]=" + deploymentOption.id === editForm.get('deployment')!.value?.id ? editForm.get('deployment')!.value : deploymentOption + " + *ngFor="let deploymentOption of deploymentsSharedCollection; trackBy: trackDeploymentById" + > + {{ deploymentOption.deploymentId }} + </option> + </select> + </div> </div> <div> <button type="button" id="cancel-save" data-cy="entityCreateCancelButton" class="btn btn-secondary" (click)="previousState()"> - <fa-icon icon="ban"></fa-icon> <span>Cancel</span> + <fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span> </button> <button @@ -57,7 +94,7 @@ [disabled]="editForm.invalid || isSaving" class="btn btn-primary" > - <fa-icon icon="save"></fa-icon> <span>Save</span> + <fa-icon icon="save"></fa-icon> <span jhiTranslate="entity.action.save">Save</span> </button> </div> </form> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/update/event-type-update.component.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/update/event-type-update.component.spec.ts index 11625be509fa293df4d3b8ce646dede2c95aaa5c..2ee95aa5f0b7bf98bdb02929e2c253b637d6ac20 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/update/event-type-update.component.spec.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/update/event-type-update.component.spec.ts @@ -11,6 +11,8 @@ import { EventTypeService } from '../service/event-type.service'; import { IEventType, EventType } from '../event-type.model'; import { IStrategy } from 'app/entities/shBackend/strategy/strategy.model'; import { StrategyService } from 'app/entities/shBackend/strategy/service/strategy.service'; +import { IDeployment } from 'app/entities/shBackend/deployment/deployment.model'; +import { DeploymentService } from 'app/entities/shBackend/deployment/service/deployment.service'; import { EventTypeUpdateComponent } from './event-type-update.component'; @@ -21,6 +23,7 @@ describe('Component Tests', () => { let activatedRoute: ActivatedRoute; let eventTypeService: EventTypeService; let strategyService: StrategyService; + let deploymentService: DeploymentService; beforeEach(() => { TestBed.configureTestingModule({ @@ -35,6 +38,7 @@ describe('Component Tests', () => { activatedRoute = TestBed.inject(ActivatedRoute); eventTypeService = TestBed.inject(EventTypeService); strategyService = TestBed.inject(StrategyService); + deploymentService = TestBed.inject(DeploymentService); comp = fixture.componentInstance; }); @@ -59,16 +63,38 @@ describe('Component Tests', () => { expect(comp.strategiesSharedCollection).toEqual(expectedCollection); }); + it('Should call Deployment query and add missing value', () => { + const eventType: IEventType = { id: 456 }; + const deployment: IDeployment = { id: 97496 }; + eventType.deployment = deployment; + + const deploymentCollection: IDeployment[] = [{ id: 10014 }]; + jest.spyOn(deploymentService, 'query').mockReturnValue(of(new HttpResponse({ body: deploymentCollection }))); + const additionalDeployments = [deployment]; + const expectedCollection: IDeployment[] = [...additionalDeployments, ...deploymentCollection]; + jest.spyOn(deploymentService, 'addDeploymentToCollectionIfMissing').mockReturnValue(expectedCollection); + + activatedRoute.data = of({ eventType }); + comp.ngOnInit(); + + expect(deploymentService.query).toHaveBeenCalled(); + expect(deploymentService.addDeploymentToCollectionIfMissing).toHaveBeenCalledWith(deploymentCollection, ...additionalDeployments); + expect(comp.deploymentsSharedCollection).toEqual(expectedCollection); + }); + it('Should update editForm', () => { const eventType: IEventType = { id: 456 }; const strategy: IStrategy = { id: 96706 }; eventType.strategy = strategy; + const deployment: IDeployment = { id: 35030 }; + eventType.deployment = deployment; activatedRoute.data = of({ eventType }); comp.ngOnInit(); expect(comp.editForm.value).toEqual(expect.objectContaining(eventType)); expect(comp.strategiesSharedCollection).toContain(strategy); + expect(comp.deploymentsSharedCollection).toContain(deployment); }); }); @@ -144,6 +170,14 @@ describe('Component Tests', () => { expect(trackResult).toEqual(entity.id); }); }); + + describe('trackDeploymentById', () => { + it('Should return tracked Deployment primary key', () => { + const entity = { id: 123 }; + const trackResult = comp.trackDeploymentById(0, entity); + expect(trackResult).toEqual(entity.id); + }); + }); }); }); }); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/update/event-type-update.component.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/update/event-type-update.component.ts index d700f5bb4d8cfb3f6715f9c1442a9ff0f1622cf9..56cdabdc41bf0e7ee30bd5f9aa0681a68465c5c7 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/update/event-type-update.component.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/event-type/update/event-type-update.component.ts @@ -9,6 +9,8 @@ import { IEventType, EventType } from '../event-type.model'; import { EventTypeService } from '../service/event-type.service'; import { IStrategy } from 'app/entities/shBackend/strategy/strategy.model'; import { StrategyService } from 'app/entities/shBackend/strategy/service/strategy.service'; +import { IDeployment } from 'app/entities/shBackend/deployment/deployment.model'; +import { DeploymentService } from 'app/entities/shBackend/deployment/service/deployment.service'; @Component({ selector: 'jhi-event-type-update', @@ -18,17 +20,20 @@ export class EventTypeUpdateComponent implements OnInit { isSaving = false; strategiesSharedCollection: IStrategy[] = []; + deploymentsSharedCollection: IDeployment[] = []; editForm = this.fb.group({ id: [], code: [null, [Validators.required]], description: [], strategy: [], + deployment: [], }); constructor( protected eventTypeService: EventTypeService, protected strategyService: StrategyService, + protected deploymentService: DeploymentService, protected activatedRoute: ActivatedRoute, protected fb: FormBuilder ) {} @@ -59,6 +64,10 @@ export class EventTypeUpdateComponent implements OnInit { return item.id!; } + trackDeploymentById(index: number, item: IDeployment): number { + return item.id!; + } + protected subscribeToSaveResponse(result: Observable<HttpResponse<IEventType>>): void { result.pipe(finalize(() => this.onSaveFinalize())).subscribe( () => this.onSaveSuccess(), @@ -84,12 +93,17 @@ export class EventTypeUpdateComponent implements OnInit { code: eventType.code, description: eventType.description, strategy: eventType.strategy, + deployment: eventType.deployment, }); this.strategiesSharedCollection = this.strategyService.addStrategyToCollectionIfMissing( this.strategiesSharedCollection, eventType.strategy ); + this.deploymentsSharedCollection = this.deploymentService.addDeploymentToCollectionIfMissing( + this.deploymentsSharedCollection, + eventType.deployment + ); } protected loadRelationshipsOptions(): void { @@ -102,6 +116,16 @@ export class EventTypeUpdateComponent implements OnInit { ) ) .subscribe((strategies: IStrategy[]) => (this.strategiesSharedCollection = strategies)); + + this.deploymentService + .query() + .pipe(map((res: HttpResponse<IDeployment[]>) => res.body ?? [])) + .pipe( + map((deployments: IDeployment[]) => + this.deploymentService.addDeploymentToCollectionIfMissing(deployments, this.editForm.get('deployment')!.value) + ) + ) + .subscribe((deployments: IDeployment[]) => (this.deploymentsSharedCollection = deployments)); } protected createFromForm(): IEventType { @@ -111,6 +135,7 @@ export class EventTypeUpdateComponent implements OnInit { code: this.editForm.get(['code'])!.value, description: this.editForm.get(['description'])!.value, strategy: this.editForm.get(['strategy'])!.value, + deployment: this.editForm.get(['deployment'])!.value, }; } } diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/delete/self-healing-message-delete-dialog.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/delete/self-healing-message-delete-dialog.component.html index 11f0339bfd9f288596dc7fb52d07622713d83c46..5b6994c87c88f9528c77777186e6b65d384e00b2 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/delete/self-healing-message-delete-dialog.component.html +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/delete/self-healing-message-delete-dialog.component.html @@ -1,6 +1,6 @@ <form *ngIf="selfHealingMessage" name="deleteForm" (ngSubmit)="confirmDelete(selfHealingMessage.id!)"> <div class="modal-header"> - <h4 class="modal-title" data-cy="selfHealingMessageDeleteDialogHeading">Confirm delete operation</h4> + <h4 class="modal-title" data-cy="selfHealingMessageDeleteDialogHeading" jhiTranslate="entity.delete.title">Confirm delete operation</h4> <button type="button" class="close" data-dismiss="modal" aria-hidden="true" (click)="cancel()">×</button> </div> @@ -8,16 +8,22 @@ <div class="modal-body"> <jhi-alert-error></jhi-alert-error> - <p id="jhi-delete-selfHealingMessage-heading">Are you sure you want to delete this Self Healing Message?</p> + <p + id="jhi-delete-selfHealingMessage-heading" + jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.delete.question" + [translateValues]="{ id: selfHealingMessage.id }" + > + Are you sure you want to delete this Self Healing Message? + </p> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal" (click)="cancel()"> - <fa-icon icon="ban"></fa-icon> <span>Cancel</span> + <fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span> </button> <button id="jhi-confirm-delete-selfHealingMessage" data-cy="entityConfirmDeleteButton" type="submit" class="btn btn-danger"> - <fa-icon icon="times"></fa-icon> <span>Delete</span> + <fa-icon icon="times"></fa-icon> <span jhiTranslate="entity.action.delete">Delete</span> </button> </div> </form> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/detail/self-healing-message-detail.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/detail/self-healing-message-detail.component.html index 410be929457b81ca0b8c7d630903984f7429b59c..e0b770f46a0455af0ab28da6cb062f3fa6e4dc26 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/detail/self-healing-message-detail.component.html +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/detail/self-healing-message-detail.component.html @@ -1,7 +1,9 @@ <div class="row justify-content-center"> <div class="col-8"> <div *ngIf="selfHealingMessage"> - <h2 data-cy="selfHealingMessageDetailsHeading"><span>Self Healing Message</span></h2> + <h2 data-cy="selfHealingMessageDetailsHeading"> + <span jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.detail.title">Self Healing Message</span> + </h2> <hr /> @@ -10,31 +12,61 @@ <jhi-alert></jhi-alert> <dl class="row-md jh-entity-details"> - <dt><span>ID</span></dt> + <dt><span jhiTranslate="global.field.id">ID</span></dt> <dd> <span>{{ selfHealingMessage.id }}</span> </dd> - <dt><span ngbTooltip="message origin component">Origin</span></dt> + <dt> + <span + jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.timestamp" + [ngbTooltip]="'shGatewayApp.shBackendSelfHealingMessage.help.timestamp' | translate" + >Timestamp</span + > + </dt> <dd> - <span>{{ selfHealingMessage.origin }}</span> + <span>{{ selfHealingMessage.timestamp | formatMediumDatetime }}</span> </dd> - <dt><span ngbTooltip="id of app related to message">Application Id</span></dt> + <dt> + <span + jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.origin" + [ngbTooltip]="'shGatewayApp.shBackendSelfHealingMessage.help.origin' | translate" + >Origin</span + > + </dt> <dd> - <span>{{ selfHealingMessage.applicationId }}</span> + <span>{{ selfHealingMessage.origin }}</span> </dd> - <dt><span ngbTooltip="message timestamp">Timestamp</span></dt> + <dt> + <span + jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.deploymentId" + [ngbTooltip]="'shGatewayApp.shBackendSelfHealingMessage.help.deploymentId' | translate" + >Deployment Id</span + > + </dt> <dd> - <span>{{ selfHealingMessage.timestamp | formatMediumDatetime }}</span> + <span>{{ selfHealingMessage.deploymentId }}</span> </dd> - <dt><span ngbTooltip="status of the message">Status</span></dt> + <dt> + <span + jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.status" + [ngbTooltip]="'shGatewayApp.shBackendSelfHealingMessage.help.status' | translate" + >Status</span + > + </dt> <dd> - <span>{{ selfHealingMessage.status }}</span> + <span jhiTranslate="{{ 'shGatewayApp.Status.' + selfHealingMessage.status }}">{{ selfHealingMessage.status }}</span> </dd> - <dt><span ngbTooltip="error description if status error">Error</span></dt> + <dt> + <span + jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.error" + [ngbTooltip]="'shGatewayApp.shBackendSelfHealingMessage.help.error' | translate" + >Error</span + > + </dt> <dd> <span>{{ selfHealingMessage.error }}</span> </dd> - <dt><span>Event Type</span></dt> + <dt><span jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.eventType">Event Type</span></dt> <dd> <div *ngIf="selfHealingMessage.eventType"> <a [routerLink]="['/event-type', selfHealingMessage.eventType?.id, 'view']">{{ selfHealingMessage.eventType?.code }}</a> @@ -43,11 +75,11 @@ </dl> <button type="submit" (click)="previousState()" class="btn btn-info" data-cy="entityDetailsBackButton"> - <fa-icon icon="arrow-left"></fa-icon> <span>Back</span> + <fa-icon icon="arrow-left"></fa-icon> <span jhiTranslate="entity.action.back">Back</span> </button> <button type="button" [routerLink]="['/self-healing-message', selfHealingMessage.id, 'edit']" class="btn btn-primary"> - <fa-icon icon="pencil-alt"></fa-icon> <span>Edit</span> + <fa-icon icon="pencil-alt"></fa-icon> <span jhiTranslate="entity.action.edit">Edit</span> </button> </div> </div> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/detail/self-healing-message-detail.component.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/detail/self-healing-message-detail.component.spec.ts index 3aa8391b79a16028f39454c05512bf62b68d15cb..6218a0224aaabe37784891bad69f364582fd36bb 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/detail/self-healing-message-detail.component.spec.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/detail/self-healing-message-detail.component.spec.ts @@ -2,12 +2,15 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ActivatedRoute } from '@angular/router'; import { of } from 'rxjs'; +import { DataUtils } from 'app/core/util/data-util.service'; + import { SelfHealingMessageDetailComponent } from './self-healing-message-detail.component'; describe('Component Tests', () => { describe('SelfHealingMessage Management Detail Component', () => { let comp: SelfHealingMessageDetailComponent; let fixture: ComponentFixture<SelfHealingMessageDetailComponent>; + let dataUtils: DataUtils; beforeEach(() => { TestBed.configureTestingModule({ @@ -23,6 +26,8 @@ describe('Component Tests', () => { .compileComponents(); fixture = TestBed.createComponent(SelfHealingMessageDetailComponent); comp = fixture.componentInstance; + dataUtils = TestBed.inject(DataUtils); + jest.spyOn(window, 'open').mockImplementation(() => null); }); describe('OnInit', () => { @@ -34,5 +39,39 @@ describe('Component Tests', () => { expect(comp.selfHealingMessage).toEqual(expect.objectContaining({ id: 123 })); }); }); + + describe('byteSize', () => { + it('Should call byteSize from DataUtils', () => { + // GIVEN + jest.spyOn(dataUtils, 'byteSize'); + const fakeBase64 = 'fake base64'; + + // WHEN + comp.byteSize(fakeBase64); + + // THEN + expect(dataUtils.byteSize).toBeCalledWith(fakeBase64); + }); + }); + + describe('openFile', () => { + it('Should call openFile from DataUtils', () => { + const newWindow = { ...window }; + newWindow.document.write = jest.fn(); + window.open = jest.fn(() => newWindow); + window.onload = jest.fn(() => newWindow); + window.URL.createObjectURL = jest.fn(); + // GIVEN + jest.spyOn(dataUtils, 'openFile'); + const fakeContentType = 'fake content type'; + const fakeBase64 = 'fake base64'; + + // WHEN + comp.openFile(fakeBase64, fakeContentType); + + // THEN + expect(dataUtils.openFile).toBeCalledWith(fakeBase64, fakeContentType); + }); + }); }); }); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/detail/self-healing-message-detail.component.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/detail/self-healing-message-detail.component.ts index 08867620f65d4ff247a6e1f8209b464b92c6d68a..d1ca0bf4dedb88534cc745ddc942bc750fb136e2 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/detail/self-healing-message-detail.component.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/detail/self-healing-message-detail.component.ts @@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { ISelfHealingMessage } from '../self-healing-message.model'; +import { DataUtils } from 'app/core/util/data-util.service'; @Component({ selector: 'jhi-self-healing-message-detail', @@ -10,7 +11,7 @@ import { ISelfHealingMessage } from '../self-healing-message.model'; export class SelfHealingMessageDetailComponent implements OnInit { selfHealingMessage: ISelfHealingMessage | null = null; - constructor(protected activatedRoute: ActivatedRoute) {} + constructor(protected dataUtils: DataUtils, protected activatedRoute: ActivatedRoute) {} ngOnInit(): void { this.activatedRoute.data.subscribe(({ selfHealingMessage }) => { @@ -18,6 +19,14 @@ export class SelfHealingMessageDetailComponent implements OnInit { }); } + byteSize(base64String: string): string { + return this.dataUtils.byteSize(base64String); + } + + openFile(base64String: string, contentType: string | null | undefined): void { + this.dataUtils.openFile(base64String, contentType); + } + previousState(): void { window.history.back(); } diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/list/self-healing-message.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/list/self-healing-message.component.html index a230a8f976f087f2f3e355a7803bc03001e89ce9..c13d4155f8b656143da3b7267f7bf8621850016a 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/list/self-healing-message.component.html +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/list/self-healing-message.component.html @@ -1,11 +1,11 @@ <div> <h2 id="page-heading" data-cy="SelfHealingMessageHeading"> - <span>Self Healing Messages</span> + <span jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.home.title">Self Healing Messages</span> <div class="d-flex justify-content-end"> <button class="btn btn-info mr-2" (click)="loadAll()" [disabled]="isLoading"> <fa-icon icon="sync" [spin]="isLoading"></fa-icon> - <span>Refresh List</span> + <span jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.home.refreshListLabel">Refresh List</span> </button> <button @@ -15,7 +15,7 @@ [routerLink]="['/self-healing-message/new']" > <fa-icon icon="plus"></fa-icon> - <span> Create a new Self Healing Message </span> + <span jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.home.createLabel"> Create a new Self Healing Message </span> </button> </div> </h2> @@ -25,20 +25,20 @@ <jhi-alert></jhi-alert> <div class="alert alert-warning" id="no-result" *ngIf="selfHealingMessages?.length === 0"> - <span>No selfHealingMessages found</span> + <span jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.home.notFound">No selfHealingMessages found</span> </div> <div class="table-responsive" id="entities" *ngIf="selfHealingMessages && selfHealingMessages.length > 0"> <table class="table table-striped" aria-describedby="page-heading"> <thead> <tr> - <th scope="col"><span>ID</span></th> - <th scope="col"><span>Origin</span></th> - <th scope="col"><span>Application Id</span></th> - <th scope="col"><span>Timestamp</span></th> - <th scope="col"><span>Status</span></th> - <th scope="col"><span>Error</span></th> - <th scope="col"><span>Event Type</span></th> + <th scope="col"><span jhiTranslate="global.field.id">ID</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.timestamp">Timestamp</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.origin">Origin</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.deploymentId">Deployment Id</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.status">Status</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.error">Error</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.eventType">Event Type</span></th> <th scope="col"></th> </tr> </thead> @@ -47,10 +47,10 @@ <td> <a [routerLink]="['/self-healing-message', selfHealingMessage.id, 'view']">{{ selfHealingMessage.id }}</a> </td> - <td>{{ selfHealingMessage.origin }}</td> - <td>{{ selfHealingMessage.applicationId }}</td> <td>{{ selfHealingMessage.timestamp | formatMediumDatetime }}</td> - <td>{{ selfHealingMessage.status }}</td> + <td>{{ selfHealingMessage.origin }}</td> + <td>{{ selfHealingMessage.deploymentId }}</td> + <td jhiTranslate="{{ 'shGatewayApp.Status.' + selfHealingMessage.status }}">{{ selfHealingMessage.status }}</td> <td>{{ selfHealingMessage.error }}</td> <td> <div *ngIf="selfHealingMessage.eventType"> @@ -66,7 +66,7 @@ data-cy="entityDetailsButton" > <fa-icon icon="eye"></fa-icon> - <span class="d-none d-md-inline">View</span> + <span class="d-none d-md-inline" jhiTranslate="entity.action.view">View</span> </button> <button @@ -76,12 +76,12 @@ data-cy="entityEditButton" > <fa-icon icon="pencil-alt"></fa-icon> - <span class="d-none d-md-inline">Edit</span> + <span class="d-none d-md-inline" jhiTranslate="entity.action.edit">Edit</span> </button> <button type="submit" (click)="delete(selfHealingMessage)" class="btn btn-danger btn-sm" data-cy="entityDeleteButton"> <fa-icon icon="times"></fa-icon> - <span class="d-none d-md-inline">Delete</span> + <span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span> </button> </div> </td> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/list/self-healing-message.component.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/list/self-healing-message.component.ts index e4b238d1d2afa1cdb327b6ebbb0fb6dc29c206d4..551de7f61ecf303793581fa774c2192f6720d8fe 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/list/self-healing-message.component.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/list/self-healing-message.component.ts @@ -5,6 +5,7 @@ import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { ISelfHealingMessage } from '../self-healing-message.model'; import { SelfHealingMessageService } from '../service/self-healing-message.service'; import { SelfHealingMessageDeleteDialogComponent } from '../delete/self-healing-message-delete-dialog.component'; +import { DataUtils } from 'app/core/util/data-util.service'; @Component({ selector: 'jhi-self-healing-message', @@ -14,7 +15,11 @@ export class SelfHealingMessageComponent implements OnInit { selfHealingMessages?: ISelfHealingMessage[]; isLoading = false; - constructor(protected selfHealingMessageService: SelfHealingMessageService, protected modalService: NgbModal) {} + constructor( + protected selfHealingMessageService: SelfHealingMessageService, + protected dataUtils: DataUtils, + protected modalService: NgbModal + ) {} loadAll(): void { this.isLoading = true; @@ -38,6 +43,14 @@ export class SelfHealingMessageComponent implements OnInit { return item.id!; } + byteSize(base64String: string): string { + return this.dataUtils.byteSize(base64String); + } + + openFile(base64String: string, contentType: string | null | undefined): void { + return this.dataUtils.openFile(base64String, contentType); + } + delete(selfHealingMessage: ISelfHealingMessage): void { const modalRef = this.modalService.open(SelfHealingMessageDeleteDialogComponent, { size: 'lg', backdrop: 'static' }); modalRef.componentInstance.selfHealingMessage = selfHealingMessage; diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/self-healing-message.model.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/self-healing-message.model.ts index fb9cf67f8a8e28e7ed7bb22329f7c154591e14db..d334f5b81eef1b8a2070a7ca3231b2b7a685ac93 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/self-healing-message.model.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/self-healing-message.model.ts @@ -4,23 +4,23 @@ import { Status } from 'app/entities/enumerations/status.model'; export interface ISelfHealingMessage { id?: number; - origin?: string; - applicationId?: string | null; timestamp?: dayjs.Dayjs | null; + origin?: string; + deploymentId?: string | null; status?: Status | null; error?: string | null; - eventType?: IEventType; + eventType?: IEventType | null; } export class SelfHealingMessage implements ISelfHealingMessage { constructor( public id?: number, - public origin?: string, - public applicationId?: string | null, public timestamp?: dayjs.Dayjs | null, + public origin?: string, + public deploymentId?: string | null, public status?: Status | null, public error?: string | null, - public eventType?: IEventType + public eventType?: IEventType | null ) {} } diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/self-healing-message.module.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/self-healing-message.module.ts index aea95b15805a42b218617c93ae75807792a9b9cc..fa598b9aa82e7075fe7775c7fc8becdb3cd71d40 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/self-healing-message.module.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/self-healing-message.module.ts @@ -16,4 +16,4 @@ import { SelfHealingMessageRoutingModule } from './route/self-healing-message-ro ], entryComponents: [SelfHealingMessageDeleteDialogComponent], }) -export class SelfHealingServiceSelfHealingMessageModule {} +export class ShBackendSelfHealingMessageModule {} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/service/self-healing-message.service.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/service/self-healing-message.service.spec.ts index 83cff12ae1530d727c8b8360a545f656c3381e6c..fe306e721b69541a3faca500901445b65daa6eca 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/service/self-healing-message.service.spec.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/service/self-healing-message.service.spec.ts @@ -27,9 +27,9 @@ describe('Service Tests', () => { elemDefault = { id: 0, - origin: 'AAAAAAA', - applicationId: 'AAAAAAA', timestamp: currentDate, + origin: 'AAAAAAA', + deploymentId: 'AAAAAAA', status: Status.PENDING, error: 'AAAAAAA', }; @@ -78,9 +78,9 @@ describe('Service Tests', () => { const returnedFromService = Object.assign( { id: 1, - origin: 'BBBBBB', - applicationId: 'BBBBBB', timestamp: currentDate.format(DATE_TIME_FORMAT), + origin: 'BBBBBB', + deploymentId: 'BBBBBB', status: 'BBBBBB', error: 'BBBBBB', }, @@ -129,9 +129,9 @@ describe('Service Tests', () => { const returnedFromService = Object.assign( { id: 1, - origin: 'BBBBBB', - applicationId: 'BBBBBB', timestamp: currentDate.format(DATE_TIME_FORMAT), + origin: 'BBBBBB', + deploymentId: 'BBBBBB', status: 'BBBBBB', error: 'BBBBBB', }, diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/update/self-healing-message-update.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/update/self-healing-message-update.component.html index e275098a997b220807b3d4b7cd93fd28ad208d57..ae98dce46efabe492920199cb4c2acf573abb7a6 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/update/self-healing-message-update.component.html +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/update/self-healing-message-update.component.html @@ -1,38 +1,30 @@ <div class="row justify-content-center"> <div class="col-8"> <form name="editForm" role="form" novalidate (ngSubmit)="save()" [formGroup]="editForm"> - <h2 id="jhi-self-healing-message-heading" data-cy="SelfHealingMessageCreateUpdateHeading">Create or edit a Self Healing Message</h2> + <h2 + id="jhi-self-healing-message-heading" + data-cy="SelfHealingMessageCreateUpdateHeading" + jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.home.createOrEditLabel" + > + Create or edit a Self Healing Message + </h2> <div> <jhi-alert-error></jhi-alert-error> <div class="form-group" [hidden]="editForm.get('id')!.value == null"> - <label class="form-control-label" for="field_id">ID</label> + <label class="form-control-label" jhiTranslate="global.field.id" for="field_id">ID</label> <input type="number" class="form-control" name="id" id="field_id" data-cy="id" formControlName="id" [readonly]="true" /> </div> <div class="form-group"> - <label class="form-control-label" for="field_origin" ngbTooltip="message origin component">Origin</label> - <input type="text" class="form-control" name="origin" id="field_origin" data-cy="origin" formControlName="origin" /> - <div *ngIf="editForm.get('origin')!.invalid && (editForm.get('origin')!.dirty || editForm.get('origin')!.touched)"> - <small class="form-text text-danger" *ngIf="editForm.get('origin')?.errors?.required"> This field is required. </small> - </div> - </div> - - <div class="form-group"> - <label class="form-control-label" for="field_applicationId" ngbTooltip="id of app related to message">Application Id</label> - <input - type="text" - class="form-control" - name="applicationId" - id="field_applicationId" - data-cy="applicationId" - formControlName="applicationId" - /> - </div> - - <div class="form-group"> - <label class="form-control-label" for="field_timestamp" ngbTooltip="message timestamp">Timestamp</label> + <label + class="form-control-label" + jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.timestamp" + for="field_timestamp" + [ngbTooltip]="'shGatewayApp.shBackendSelfHealingMessage.help.timestamp' | translate" + >Timestamp</label + > <div class="d-flex"> <input id="field_timestamp" @@ -47,24 +39,73 @@ </div> <div class="form-group"> - <label class="form-control-label" for="field_status" ngbTooltip="status of the message">Status</label> + <label + class="form-control-label" + jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.origin" + for="field_origin" + [ngbTooltip]="'shGatewayApp.shBackendSelfHealingMessage.help.origin' | translate" + >Origin</label + > + <input type="text" class="form-control" name="origin" id="field_origin" data-cy="origin" formControlName="origin" /> + <div *ngIf="editForm.get('origin')!.invalid && (editForm.get('origin')!.dirty || editForm.get('origin')!.touched)"> + <small class="form-text text-danger" *ngIf="editForm.get('origin')?.errors?.required" jhiTranslate="entity.validation.required"> + This field is required. + </small> + </div> + </div> + + <div class="form-group"> + <label + class="form-control-label" + jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.deploymentId" + for="field_deploymentId" + [ngbTooltip]="'shGatewayApp.shBackendSelfHealingMessage.help.deploymentId' | translate" + >Deployment Id</label + > + <input + type="text" + class="form-control" + name="deploymentId" + id="field_deploymentId" + data-cy="deploymentId" + formControlName="deploymentId" + /> + </div> + + <div class="form-group"> + <label + class="form-control-label" + jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.status" + for="field_status" + [ngbTooltip]="'shGatewayApp.shBackendSelfHealingMessage.help.status' | translate" + >Status</label + > <select class="form-control" name="status" formControlName="status" id="field_status" data-cy="status"> - <option [ngValue]="null"></option> - <option value="PENDING">Pending</option> - <option value="PROCESSED">Processed</option> - <option value="ERROR">Error</option> + <option [ngValue]="null">{{ 'shGatewayApp.Status.null' | translate }}</option> + <option value="PENDING">{{ 'shGatewayApp.Status.PENDING' | translate }}</option> + <option value="PROCESSED">{{ 'shGatewayApp.Status.PROCESSED' | translate }}</option> + <option value="IGNORED">{{ 'shGatewayApp.Status.IGNORED' | translate }}</option> + <option value="ERROR">{{ 'shGatewayApp.Status.ERROR' | translate }}</option> </select> </div> <div class="form-group"> - <label class="form-control-label" for="field_error" ngbTooltip="error description if status error">Error</label> - <input type="text" class="form-control" name="error" id="field_error" data-cy="error" formControlName="error" /> + <label + class="form-control-label" + jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.error" + for="field_error" + [ngbTooltip]="'shGatewayApp.shBackendSelfHealingMessage.help.error' | translate" + >Error</label + > + <textarea class="form-control" name="error" id="field_error" data-cy="error" formControlName="error"></textarea> </div> <div class="form-group"> - <label class="form-control-label" for="field_eventType">Event Type</label> + <label class="form-control-label" jhiTranslate="shGatewayApp.shBackendSelfHealingMessage.eventType" for="field_eventType" + >Event Type</label + > <select class="form-control" id="field_eventType" data-cy="eventType" name="eventType" formControlName="eventType"> - <option *ngIf="!editForm.get('eventType')!.value" [ngValue]="null" selected></option> + <option [ngValue]="null"></option> <option [ngValue]="eventTypeOption.id === editForm.get('eventType')!.value?.id ? editForm.get('eventType')!.value : eventTypeOption" *ngFor="let eventTypeOption of eventTypesSharedCollection; trackBy: trackEventTypeById" @@ -73,14 +114,11 @@ </option> </select> </div> - <div *ngIf="editForm.get(['eventType'])!.invalid && (editForm.get(['eventType'])!.dirty || editForm.get(['eventType'])!.touched)"> - <small class="form-text text-danger" *ngIf="editForm.get(['eventType'])?.errors?.required"> This field is required. </small> - </div> </div> <div> <button type="button" id="cancel-save" data-cy="entityCreateCancelButton" class="btn btn-secondary" (click)="previousState()"> - <fa-icon icon="ban"></fa-icon> <span>Cancel</span> + <fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span> </button> <button @@ -90,7 +128,7 @@ [disabled]="editForm.invalid || isSaving" class="btn btn-primary" > - <fa-icon icon="save"></fa-icon> <span>Save</span> + <fa-icon icon="save"></fa-icon> <span jhiTranslate="entity.action.save">Save</span> </button> </div> </form> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/update/self-healing-message-update.component.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/update/self-healing-message-update.component.ts index 42053040fc5e0b153eb2ab724e679766f3d0c286..be81f4e3bcfc92c7ce4a9b7672e26a58fdada508 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/update/self-healing-message-update.component.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/self-healing-message/update/self-healing-message-update.component.ts @@ -10,6 +10,9 @@ import { DATE_TIME_FORMAT } from 'app/config/input.constants'; import { ISelfHealingMessage, SelfHealingMessage } from '../self-healing-message.model'; import { SelfHealingMessageService } from '../service/self-healing-message.service'; +import { AlertError } from 'app/shared/alert/alert-error.model'; +import { EventManager, EventWithContent } from 'app/core/util/event-manager.service'; +import { DataUtils, FileLoadError } from 'app/core/util/data-util.service'; import { IEventType } from 'app/entities/shBackend/event-type/event-type.model'; import { EventTypeService } from 'app/entities/shBackend/event-type/service/event-type.service'; @@ -24,15 +27,17 @@ export class SelfHealingMessageUpdateComponent implements OnInit { editForm = this.fb.group({ id: [], - origin: [null, [Validators.required]], - applicationId: [], timestamp: [], + origin: [null, [Validators.required]], + deploymentId: [], status: [], error: [], - eventType: [null, Validators.required], + eventType: [], }); constructor( + protected dataUtils: DataUtils, + protected eventManager: EventManager, protected selfHealingMessageService: SelfHealingMessageService, protected eventTypeService: EventTypeService, protected activatedRoute: ActivatedRoute, @@ -52,6 +57,21 @@ export class SelfHealingMessageUpdateComponent implements OnInit { }); } + byteSize(base64String: string): string { + return this.dataUtils.byteSize(base64String); + } + + openFile(base64String: string, contentType: string | null | undefined): void { + this.dataUtils.openFile(base64String, contentType); + } + + setFileData(event: Event, field: string, isImage: boolean): void { + this.dataUtils.loadFileToForm(event, this.editForm, field, isImage).subscribe({ + error: (err: FileLoadError) => + this.eventManager.broadcast(new EventWithContent<AlertError>('shGatewayApp.error', { ...err, key: 'error.file.' + err.key })), + }); + } + previousState(): void { window.history.back(); } @@ -92,9 +112,9 @@ export class SelfHealingMessageUpdateComponent implements OnInit { protected updateForm(selfHealingMessage: ISelfHealingMessage): void { this.editForm.patchValue({ id: selfHealingMessage.id, - origin: selfHealingMessage.origin, - applicationId: selfHealingMessage.applicationId, timestamp: selfHealingMessage.timestamp ? selfHealingMessage.timestamp.format(DATE_TIME_FORMAT) : null, + origin: selfHealingMessage.origin, + deploymentId: selfHealingMessage.deploymentId, status: selfHealingMessage.status, error: selfHealingMessage.error, eventType: selfHealingMessage.eventType, @@ -122,9 +142,9 @@ export class SelfHealingMessageUpdateComponent implements OnInit { return { ...new SelfHealingMessage(), id: this.editForm.get(['id'])!.value, - origin: this.editForm.get(['origin'])!.value, - applicationId: this.editForm.get(['applicationId'])!.value, timestamp: this.editForm.get(['timestamp'])!.value ? dayjs(this.editForm.get(['timestamp'])!.value, DATE_TIME_FORMAT) : undefined, + origin: this.editForm.get(['origin'])!.value, + deploymentId: this.editForm.get(['deploymentId'])!.value, status: this.editForm.get(['status'])!.value, error: this.editForm.get(['error'])!.value, eventType: this.editForm.get(['eventType'])!.value, diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/delete/strategy-application-delete-dialog.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/delete/strategy-application-delete-dialog.component.html new file mode 100644 index 0000000000000000000000000000000000000000..6bcc28766aef9c8fa24ba93cbc9599f0917d600b --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/delete/strategy-application-delete-dialog.component.html @@ -0,0 +1,31 @@ +<form *ngIf="strategyApplication" name="deleteForm" (ngSubmit)="confirmDelete(strategyApplication.id!)"> + <div class="modal-header"> + <h4 class="modal-title" data-cy="strategyApplicationDeleteDialogHeading" jhiTranslate="entity.delete.title"> + Confirm delete operation + </h4> + + <button type="button" class="close" data-dismiss="modal" aria-hidden="true" (click)="cancel()">×</button> + </div> + + <div class="modal-body"> + <jhi-alert-error></jhi-alert-error> + + <p + id="jhi-delete-strategyApplication-heading" + jhiTranslate="shGatewayApp.shBackendStrategyApplication.delete.question" + [translateValues]="{ id: strategyApplication.id }" + > + Are you sure you want to delete this Strategy Application? + </p> + </div> + + <div class="modal-footer"> + <button type="button" class="btn btn-secondary" data-dismiss="modal" (click)="cancel()"> + <fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span> + </button> + + <button id="jhi-confirm-delete-strategyApplication" data-cy="entityConfirmDeleteButton" type="submit" class="btn btn-danger"> + <fa-icon icon="times"></fa-icon> <span jhiTranslate="entity.action.delete">Delete</span> + </button> + </div> +</form> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/delete/strategy-application-delete-dialog.component.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/delete/strategy-application-delete-dialog.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..bca4a6a8215c8730a28bbacf91d2ceae5425ac34 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/delete/strategy-application-delete-dialog.component.spec.ts @@ -0,0 +1,65 @@ +jest.mock('@ng-bootstrap/ng-bootstrap'); + +import { ComponentFixture, TestBed, inject, fakeAsync, tick } from '@angular/core/testing'; +import { HttpResponse } from '@angular/common/http'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { of } from 'rxjs'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; + +import { StrategyApplicationService } from '../service/strategy-application.service'; + +import { StrategyApplicationDeleteDialogComponent } from './strategy-application-delete-dialog.component'; + +describe('Component Tests', () => { + describe('StrategyApplication Management Delete Component', () => { + let comp: StrategyApplicationDeleteDialogComponent; + let fixture: ComponentFixture<StrategyApplicationDeleteDialogComponent>; + let service: StrategyApplicationService; + let mockActiveModal: NgbActiveModal; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + declarations: [StrategyApplicationDeleteDialogComponent], + providers: [NgbActiveModal], + }) + .overrideTemplate(StrategyApplicationDeleteDialogComponent, '') + .compileComponents(); + fixture = TestBed.createComponent(StrategyApplicationDeleteDialogComponent); + comp = fixture.componentInstance; + service = TestBed.inject(StrategyApplicationService); + mockActiveModal = TestBed.inject(NgbActiveModal); + }); + + describe('confirmDelete', () => { + it('Should call delete service on confirmDelete', inject( + [], + fakeAsync(() => { + // GIVEN + jest.spyOn(service, 'delete').mockReturnValue(of(new HttpResponse({}))); + + // WHEN + comp.confirmDelete(123); + tick(); + + // THEN + expect(service.delete).toHaveBeenCalledWith(123); + expect(mockActiveModal.close).toHaveBeenCalledWith('deleted'); + }) + )); + + it('Should not call delete service on clear', () => { + // GIVEN + jest.spyOn(service, 'delete'); + + // WHEN + comp.cancel(); + + // THEN + expect(service.delete).not.toHaveBeenCalled(); + expect(mockActiveModal.close).not.toHaveBeenCalled(); + expect(mockActiveModal.dismiss).toHaveBeenCalled(); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/delete/strategy-application-delete-dialog.component.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/delete/strategy-application-delete-dialog.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..4d0b63005f8fdb96c0de8c34119ae89f93b0f08e --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/delete/strategy-application-delete-dialog.component.ts @@ -0,0 +1,24 @@ +import { Component } from '@angular/core'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; + +import { IStrategyApplication } from '../strategy-application.model'; +import { StrategyApplicationService } from '../service/strategy-application.service'; + +@Component({ + templateUrl: './strategy-application-delete-dialog.component.html', +}) +export class StrategyApplicationDeleteDialogComponent { + strategyApplication?: IStrategyApplication; + + constructor(protected strategyApplicationService: StrategyApplicationService, protected activeModal: NgbActiveModal) {} + + cancel(): void { + this.activeModal.dismiss(); + } + + confirmDelete(id: number): void { + this.strategyApplicationService.delete(id).subscribe(() => { + this.activeModal.close('deleted'); + }); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/detail/strategy-application-detail.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/detail/strategy-application-detail.component.html new file mode 100644 index 0000000000000000000000000000000000000000..4ca8d5f8c22731d6d3b52993fece0f7541a6bb17 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/detail/strategy-application-detail.component.html @@ -0,0 +1,79 @@ +<div class="row justify-content-center"> + <div class="col-8"> + <div *ngIf="strategyApplication"> + <h2 data-cy="strategyApplicationDetailsHeading"> + <span jhiTranslate="shGatewayApp.shBackendStrategyApplication.detail.title">Strategy Application</span> + </h2> + + <hr /> + + <jhi-alert-error></jhi-alert-error> + + <jhi-alert></jhi-alert> + + <dl class="row-md jh-entity-details"> + <dt><span jhiTranslate="global.field.id">ID</span></dt> + <dd> + <span>{{ strategyApplication.id }}</span> + </dd> + <dt> + <span + jhiTranslate="shGatewayApp.shBackendStrategyApplication.timestamp" + [ngbTooltip]="'shGatewayApp.shBackendStrategyApplication.help.timestamp' | translate" + >Timestamp</span + > + </dt> + <dd> + <span>{{ strategyApplication.timestamp | formatMediumDatetime }}</span> + </dd> + <dt> + <span + jhiTranslate="shGatewayApp.shBackendStrategyApplication.summary" + [ngbTooltip]="'shGatewayApp.shBackendStrategyApplication.help.summary' | translate" + >Summary</span + > + </dt> + <dd> + <span>{{ strategyApplication.summary }}</span> + </dd> + <dt> + <span + jhiTranslate="shGatewayApp.shBackendStrategyApplication.bundle" + [ngbTooltip]="'shGatewayApp.shBackendStrategyApplication.help.bundle' | translate" + >Bundle</span + > + </dt> + <dd> + <div *ngIf="strategyApplication.bundle"> + <a (click)="openFile(strategyApplication.bundle, strategyApplication.bundleContentType)" jhiTranslate="entity.action.open" + >open</a + > + {{ strategyApplication.bundleContentType }}, {{ byteSize(strategyApplication.bundle) }} + </div> + </dd> + <dt><span jhiTranslate="shGatewayApp.shBackendStrategyApplication.strategy">Strategy</span></dt> + <dd> + <div *ngIf="strategyApplication.strategy"> + <a [routerLink]="['/strategy', strategyApplication.strategy?.id, 'view']">{{ strategyApplication.strategy?.code }}</a> + </div> + </dd> + <dt><span jhiTranslate="shGatewayApp.shBackendStrategyApplication.deployment">Deployment</span></dt> + <dd> + <div *ngIf="strategyApplication.deployment"> + <a [routerLink]="['/deployment', strategyApplication.deployment?.id, 'view']">{{ + strategyApplication.deployment?.deploymentId + }}</a> + </div> + </dd> + </dl> + + <button type="submit" (click)="previousState()" class="btn btn-info" data-cy="entityDetailsBackButton"> + <fa-icon icon="arrow-left"></fa-icon> <span jhiTranslate="entity.action.back">Back</span> + </button> + + <button type="button" [routerLink]="['/strategy-application', strategyApplication.id, 'edit']" class="btn btn-primary"> + <fa-icon icon="pencil-alt"></fa-icon> <span jhiTranslate="entity.action.edit">Edit</span> + </button> + </div> + </div> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/detail/strategy-application-detail.component.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/detail/strategy-application-detail.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..88f081d40a3b85ac1c036874569be15a2d5ae0c2 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/detail/strategy-application-detail.component.spec.ts @@ -0,0 +1,77 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { ActivatedRoute } from '@angular/router'; +import { of } from 'rxjs'; + +import { DataUtils } from 'app/core/util/data-util.service'; + +import { StrategyApplicationDetailComponent } from './strategy-application-detail.component'; + +describe('Component Tests', () => { + describe('StrategyApplication Management Detail Component', () => { + let comp: StrategyApplicationDetailComponent; + let fixture: ComponentFixture<StrategyApplicationDetailComponent>; + let dataUtils: DataUtils; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [StrategyApplicationDetailComponent], + providers: [ + { + provide: ActivatedRoute, + useValue: { data: of({ strategyApplication: { id: 123 } }) }, + }, + ], + }) + .overrideTemplate(StrategyApplicationDetailComponent, '') + .compileComponents(); + fixture = TestBed.createComponent(StrategyApplicationDetailComponent); + comp = fixture.componentInstance; + dataUtils = TestBed.inject(DataUtils); + jest.spyOn(window, 'open').mockImplementation(() => null); + }); + + describe('OnInit', () => { + it('Should load strategyApplication on init', () => { + // WHEN + comp.ngOnInit(); + + // THEN + expect(comp.strategyApplication).toEqual(expect.objectContaining({ id: 123 })); + }); + }); + + describe('byteSize', () => { + it('Should call byteSize from DataUtils', () => { + // GIVEN + jest.spyOn(dataUtils, 'byteSize'); + const fakeBase64 = 'fake base64'; + + // WHEN + comp.byteSize(fakeBase64); + + // THEN + expect(dataUtils.byteSize).toBeCalledWith(fakeBase64); + }); + }); + + describe('openFile', () => { + it('Should call openFile from DataUtils', () => { + const newWindow = { ...window }; + newWindow.document.write = jest.fn(); + window.open = jest.fn(() => newWindow); + window.onload = jest.fn(() => newWindow); + window.URL.createObjectURL = jest.fn(); + // GIVEN + jest.spyOn(dataUtils, 'openFile'); + const fakeContentType = 'fake content type'; + const fakeBase64 = 'fake base64'; + + // WHEN + comp.openFile(fakeBase64, fakeContentType); + + // THEN + expect(dataUtils.openFile).toBeCalledWith(fakeBase64, fakeContentType); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/detail/strategy-application-detail.component.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/detail/strategy-application-detail.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..0d7b6a545d75376670ef55a304c5a94f9f01cf63 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/detail/strategy-application-detail.component.ts @@ -0,0 +1,33 @@ +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; + +import { IStrategyApplication } from '../strategy-application.model'; +import { DataUtils } from 'app/core/util/data-util.service'; + +@Component({ + selector: 'jhi-strategy-application-detail', + templateUrl: './strategy-application-detail.component.html', +}) +export class StrategyApplicationDetailComponent implements OnInit { + strategyApplication: IStrategyApplication | null = null; + + constructor(protected dataUtils: DataUtils, protected activatedRoute: ActivatedRoute) {} + + ngOnInit(): void { + this.activatedRoute.data.subscribe(({ strategyApplication }) => { + this.strategyApplication = strategyApplication; + }); + } + + byteSize(base64String: string): string { + return this.dataUtils.byteSize(base64String); + } + + openFile(base64String: string, contentType: string | null | undefined): void { + this.dataUtils.openFile(base64String, contentType); + } + + previousState(): void { + window.history.back(); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/list/strategy-application.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/list/strategy-application.component.html new file mode 100644 index 0000000000000000000000000000000000000000..c5525e696adbb7bc7458bf0876b47de686ed11a6 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/list/strategy-application.component.html @@ -0,0 +1,106 @@ +<div> + <h2 id="page-heading" data-cy="StrategyApplicationHeading"> + <span jhiTranslate="shGatewayApp.shBackendStrategyApplication.home.title">Strategy Applications</span> + + <div class="d-flex justify-content-end"> + <button class="btn btn-info mr-2" (click)="loadAll()" [disabled]="isLoading"> + <fa-icon icon="sync" [spin]="isLoading"></fa-icon> + <span jhiTranslate="shGatewayApp.shBackendStrategyApplication.home.refreshListLabel">Refresh List</span> + </button> + + <button + id="jh-create-entity" + data-cy="entityCreateButton" + class="btn btn-primary jh-create-entity create-strategy-application" + [routerLink]="['/strategy-application/new']" + > + <fa-icon icon="plus"></fa-icon> + <span jhiTranslate="shGatewayApp.shBackendStrategyApplication.home.createLabel"> Create a new Strategy Application </span> + </button> + </div> + </h2> + + <jhi-alert-error></jhi-alert-error> + + <jhi-alert></jhi-alert> + + <div class="alert alert-warning" id="no-result" *ngIf="strategyApplications?.length === 0"> + <span jhiTranslate="shGatewayApp.shBackendStrategyApplication.home.notFound">No strategyApplications found</span> + </div> + + <div class="table-responsive" id="entities" *ngIf="strategyApplications && strategyApplications.length > 0"> + <table class="table table-striped" aria-describedby="page-heading"> + <thead> + <tr> + <th scope="col"><span jhiTranslate="global.field.id">ID</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendStrategyApplication.timestamp">Timestamp</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendStrategyApplication.summary">Summary</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendStrategyApplication.bundle">Bundle</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendStrategyApplication.strategy">Strategy</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendStrategyApplication.deployment">Deployment</span></th> + <th scope="col"></th> + </tr> + </thead> + <tbody> + <tr *ngFor="let strategyApplication of strategyApplications; trackBy: trackId" data-cy="entityTable"> + <td> + <a [routerLink]="['/strategy-application', strategyApplication.id, 'view']">{{ strategyApplication.id }}</a> + </td> + <td>{{ strategyApplication.timestamp | formatMediumDatetime }}</td> + <td>{{ strategyApplication.summary }}</td> + <td> + <a + *ngIf="strategyApplication.bundle" + (click)="openFile(strategyApplication.bundle, strategyApplication.bundleContentType)" + jhiTranslate="entity.action.open" + >open</a + > + <span *ngIf="strategyApplication.bundle" + >{{ strategyApplication.bundleContentType }}, {{ byteSize(strategyApplication.bundle) }}</span + > + </td> + <td> + <div *ngIf="strategyApplication.strategy"> + <a [routerLink]="['/strategy', strategyApplication.strategy?.id, 'view']">{{ strategyApplication.strategy?.code }}</a> + </div> + </td> + <td> + <div *ngIf="strategyApplication.deployment"> + <a [routerLink]="['/deployment', strategyApplication.deployment?.id, 'view']">{{ + strategyApplication.deployment?.deploymentId + }}</a> + </div> + </td> + <td class="text-right"> + <div class="btn-group"> + <button + type="submit" + [routerLink]="['/strategy-application', strategyApplication.id, 'view']" + class="btn btn-info btn-sm" + data-cy="entityDetailsButton" + > + <fa-icon icon="eye"></fa-icon> + <span class="d-none d-md-inline" jhiTranslate="entity.action.view">View</span> + </button> + + <button + type="submit" + [routerLink]="['/strategy-application', strategyApplication.id, 'edit']" + class="btn btn-primary btn-sm" + data-cy="entityEditButton" + > + <fa-icon icon="pencil-alt"></fa-icon> + <span class="d-none d-md-inline" jhiTranslate="entity.action.edit">Edit</span> + </button> + + <button type="submit" (click)="delete(strategyApplication)" class="btn btn-danger btn-sm" data-cy="entityDeleteButton"> + <fa-icon icon="times"></fa-icon> + <span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span> + </button> + </div> + </td> + </tr> + </tbody> + </table> + </div> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/list/strategy-application.component.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/list/strategy-application.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..b7af6b58cefbbad550aaa9042c2d844da1f6addf --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/list/strategy-application.component.spec.ts @@ -0,0 +1,48 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { HttpHeaders, HttpResponse } from '@angular/common/http'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { of } from 'rxjs'; + +import { StrategyApplicationService } from '../service/strategy-application.service'; + +import { StrategyApplicationComponent } from './strategy-application.component'; + +describe('Component Tests', () => { + describe('StrategyApplication Management Component', () => { + let comp: StrategyApplicationComponent; + let fixture: ComponentFixture<StrategyApplicationComponent>; + let service: StrategyApplicationService; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + declarations: [StrategyApplicationComponent], + }) + .overrideTemplate(StrategyApplicationComponent, '') + .compileComponents(); + + fixture = TestBed.createComponent(StrategyApplicationComponent); + comp = fixture.componentInstance; + service = TestBed.inject(StrategyApplicationService); + + const headers = new HttpHeaders().append('link', 'link;link'); + jest.spyOn(service, 'query').mockReturnValue( + of( + new HttpResponse({ + body: [{ id: 123 }], + headers, + }) + ) + ); + }); + + it('Should call load all on init', () => { + // WHEN + comp.ngOnInit(); + + // THEN + expect(service.query).toHaveBeenCalled(); + expect(comp.strategyApplications?.[0]).toEqual(expect.objectContaining({ id: 123 })); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/list/strategy-application.component.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/list/strategy-application.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..d055330d69d8f0c4b940813ab08ad4c8b284b7dd --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/list/strategy-application.component.ts @@ -0,0 +1,64 @@ +import { Component, OnInit } from '@angular/core'; +import { HttpResponse } from '@angular/common/http'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; + +import { IStrategyApplication } from '../strategy-application.model'; +import { StrategyApplicationService } from '../service/strategy-application.service'; +import { StrategyApplicationDeleteDialogComponent } from '../delete/strategy-application-delete-dialog.component'; +import { DataUtils } from 'app/core/util/data-util.service'; + +@Component({ + selector: 'jhi-strategy-application', + templateUrl: './strategy-application.component.html', +}) +export class StrategyApplicationComponent implements OnInit { + strategyApplications?: IStrategyApplication[]; + isLoading = false; + + constructor( + protected strategyApplicationService: StrategyApplicationService, + protected dataUtils: DataUtils, + protected modalService: NgbModal + ) {} + + loadAll(): void { + this.isLoading = true; + + this.strategyApplicationService.query().subscribe( + (res: HttpResponse<IStrategyApplication[]>) => { + this.isLoading = false; + this.strategyApplications = res.body ?? []; + }, + () => { + this.isLoading = false; + } + ); + } + + ngOnInit(): void { + this.loadAll(); + } + + trackId(index: number, item: IStrategyApplication): number { + return item.id!; + } + + byteSize(base64String: string): string { + return this.dataUtils.byteSize(base64String); + } + + openFile(base64String: string, contentType: string | null | undefined): void { + return this.dataUtils.openFile(base64String, contentType); + } + + delete(strategyApplication: IStrategyApplication): void { + const modalRef = this.modalService.open(StrategyApplicationDeleteDialogComponent, { size: 'lg', backdrop: 'static' }); + modalRef.componentInstance.strategyApplication = strategyApplication; + // unsubscribe not needed because closed completes on modal close + modalRef.closed.subscribe(reason => { + if (reason === 'deleted') { + this.loadAll(); + } + }); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/route/strategy-application-routing-resolve.service.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/route/strategy-application-routing-resolve.service.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..e023c75c5ebc4a5bc0cbb1b4bc6c3e0daf48fcf8 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/route/strategy-application-routing-resolve.service.spec.ts @@ -0,0 +1,82 @@ +jest.mock('@angular/router'); + +import { TestBed } from '@angular/core/testing'; +import { HttpResponse } from '@angular/common/http'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { ActivatedRouteSnapshot, Router } from '@angular/router'; +import { of } from 'rxjs'; + +import { IStrategyApplication, StrategyApplication } from '../strategy-application.model'; +import { StrategyApplicationService } from '../service/strategy-application.service'; + +import { StrategyApplicationRoutingResolveService } from './strategy-application-routing-resolve.service'; + +describe('Service Tests', () => { + describe('StrategyApplication routing resolve service', () => { + let mockRouter: Router; + let mockActivatedRouteSnapshot: ActivatedRouteSnapshot; + let routingResolveService: StrategyApplicationRoutingResolveService; + let service: StrategyApplicationService; + let resultStrategyApplication: IStrategyApplication | undefined; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + providers: [Router, ActivatedRouteSnapshot], + }); + mockRouter = TestBed.inject(Router); + mockActivatedRouteSnapshot = TestBed.inject(ActivatedRouteSnapshot); + routingResolveService = TestBed.inject(StrategyApplicationRoutingResolveService); + service = TestBed.inject(StrategyApplicationService); + resultStrategyApplication = undefined; + }); + + describe('resolve', () => { + it('should return IStrategyApplication returned by find', () => { + // GIVEN + service.find = jest.fn(id => of(new HttpResponse({ body: { id } }))); + mockActivatedRouteSnapshot.params = { id: 123 }; + + // WHEN + routingResolveService.resolve(mockActivatedRouteSnapshot).subscribe(result => { + resultStrategyApplication = result; + }); + + // THEN + expect(service.find).toBeCalledWith(123); + expect(resultStrategyApplication).toEqual({ id: 123 }); + }); + + it('should return new IStrategyApplication if id is not provided', () => { + // GIVEN + service.find = jest.fn(); + mockActivatedRouteSnapshot.params = {}; + + // WHEN + routingResolveService.resolve(mockActivatedRouteSnapshot).subscribe(result => { + resultStrategyApplication = result; + }); + + // THEN + expect(service.find).not.toBeCalled(); + expect(resultStrategyApplication).toEqual(new StrategyApplication()); + }); + + it('should route to 404 page if data not found in server', () => { + // GIVEN + jest.spyOn(service, 'find').mockReturnValue(of(new HttpResponse({ body: null as unknown as StrategyApplication }))); + mockActivatedRouteSnapshot.params = { id: 123 }; + + // WHEN + routingResolveService.resolve(mockActivatedRouteSnapshot).subscribe(result => { + resultStrategyApplication = result; + }); + + // THEN + expect(service.find).toBeCalledWith(123); + expect(resultStrategyApplication).toEqual(undefined); + expect(mockRouter.navigate).toHaveBeenCalledWith(['404']); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/route/strategy-application-routing-resolve.service.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/route/strategy-application-routing-resolve.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..b6801fad6ea10b893bd66b618601772d3e83105a --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/route/strategy-application-routing-resolve.service.ts @@ -0,0 +1,30 @@ +import { Injectable } from '@angular/core'; +import { HttpResponse } from '@angular/common/http'; +import { Resolve, ActivatedRouteSnapshot, Router } from '@angular/router'; +import { Observable, of, EMPTY } from 'rxjs'; +import { mergeMap } from 'rxjs/operators'; + +import { IStrategyApplication, StrategyApplication } from '../strategy-application.model'; +import { StrategyApplicationService } from '../service/strategy-application.service'; + +@Injectable({ providedIn: 'root' }) +export class StrategyApplicationRoutingResolveService implements Resolve<IStrategyApplication> { + constructor(protected service: StrategyApplicationService, protected router: Router) {} + + resolve(route: ActivatedRouteSnapshot): Observable<IStrategyApplication> | Observable<never> { + const id = route.params['id']; + if (id) { + return this.service.find(id).pipe( + mergeMap((strategyApplication: HttpResponse<StrategyApplication>) => { + if (strategyApplication.body) { + return of(strategyApplication.body); + } else { + this.router.navigate(['404']); + return EMPTY; + } + }) + ); + } + return of(new StrategyApplication()); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/route/strategy-application-routing.module.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/route/strategy-application-routing.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..bf5a9dfba3eda290e2cc9145ec8e7f7523063f0b --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/route/strategy-application-routing.module.ts @@ -0,0 +1,46 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +import { UserRouteAccessService } from 'app/core/auth/user-route-access.service'; +import { StrategyApplicationComponent } from '../list/strategy-application.component'; +import { StrategyApplicationDetailComponent } from '../detail/strategy-application-detail.component'; +import { StrategyApplicationUpdateComponent } from '../update/strategy-application-update.component'; +import { StrategyApplicationRoutingResolveService } from './strategy-application-routing-resolve.service'; + +const strategyApplicationRoute: Routes = [ + { + path: '', + component: StrategyApplicationComponent, + canActivate: [UserRouteAccessService], + }, + { + path: ':id/view', + component: StrategyApplicationDetailComponent, + resolve: { + strategyApplication: StrategyApplicationRoutingResolveService, + }, + canActivate: [UserRouteAccessService], + }, + { + path: 'new', + component: StrategyApplicationUpdateComponent, + resolve: { + strategyApplication: StrategyApplicationRoutingResolveService, + }, + canActivate: [UserRouteAccessService], + }, + { + path: ':id/edit', + component: StrategyApplicationUpdateComponent, + resolve: { + strategyApplication: StrategyApplicationRoutingResolveService, + }, + canActivate: [UserRouteAccessService], + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(strategyApplicationRoute)], + exports: [RouterModule], +}) +export class StrategyApplicationRoutingModule {} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/service/strategy-application.service.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/service/strategy-application.service.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..0278d9766f9fc2895fddf43be1cc606504b17190 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/service/strategy-application.service.spec.ts @@ -0,0 +1,221 @@ +import { TestBed } from '@angular/core/testing'; +import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; +import * as dayjs from 'dayjs'; + +import { DATE_TIME_FORMAT } from 'app/config/input.constants'; +import { IStrategyApplication, StrategyApplication } from '../strategy-application.model'; + +import { StrategyApplicationService } from './strategy-application.service'; + +describe('Service Tests', () => { + describe('StrategyApplication Service', () => { + let service: StrategyApplicationService; + let httpMock: HttpTestingController; + let elemDefault: IStrategyApplication; + let expectedResult: IStrategyApplication | IStrategyApplication[] | boolean | null; + let currentDate: dayjs.Dayjs; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + }); + expectedResult = null; + service = TestBed.inject(StrategyApplicationService); + httpMock = TestBed.inject(HttpTestingController); + currentDate = dayjs(); + + elemDefault = { + id: 0, + timestamp: currentDate, + summary: 'AAAAAAA', + bundleContentType: 'image/png', + bundle: 'AAAAAAA', + }; + }); + + describe('Service methods', () => { + it('should find an element', () => { + const returnedFromService = Object.assign( + { + timestamp: currentDate.format(DATE_TIME_FORMAT), + }, + elemDefault + ); + + service.find(123).subscribe(resp => (expectedResult = resp.body)); + + const req = httpMock.expectOne({ method: 'GET' }); + req.flush(returnedFromService); + expect(expectedResult).toMatchObject(elemDefault); + }); + + it('should create a StrategyApplication', () => { + const returnedFromService = Object.assign( + { + id: 0, + timestamp: currentDate.format(DATE_TIME_FORMAT), + }, + elemDefault + ); + + const expected = Object.assign( + { + timestamp: currentDate, + }, + returnedFromService + ); + + service.create(new StrategyApplication()).subscribe(resp => (expectedResult = resp.body)); + + const req = httpMock.expectOne({ method: 'POST' }); + req.flush(returnedFromService); + expect(expectedResult).toMatchObject(expected); + }); + + it('should update a StrategyApplication', () => { + const returnedFromService = Object.assign( + { + id: 1, + timestamp: currentDate.format(DATE_TIME_FORMAT), + summary: 'BBBBBB', + bundle: 'BBBBBB', + }, + elemDefault + ); + + const expected = Object.assign( + { + timestamp: currentDate, + }, + returnedFromService + ); + + service.update(expected).subscribe(resp => (expectedResult = resp.body)); + + const req = httpMock.expectOne({ method: 'PUT' }); + req.flush(returnedFromService); + expect(expectedResult).toMatchObject(expected); + }); + + it('should partial update a StrategyApplication', () => { + const patchObject = Object.assign( + { + bundle: 'BBBBBB', + }, + new StrategyApplication() + ); + + const returnedFromService = Object.assign(patchObject, elemDefault); + + const expected = Object.assign( + { + timestamp: currentDate, + }, + returnedFromService + ); + + service.partialUpdate(patchObject).subscribe(resp => (expectedResult = resp.body)); + + const req = httpMock.expectOne({ method: 'PATCH' }); + req.flush(returnedFromService); + expect(expectedResult).toMatchObject(expected); + }); + + it('should return a list of StrategyApplication', () => { + const returnedFromService = Object.assign( + { + id: 1, + timestamp: currentDate.format(DATE_TIME_FORMAT), + summary: 'BBBBBB', + bundle: 'BBBBBB', + }, + elemDefault + ); + + const expected = Object.assign( + { + timestamp: currentDate, + }, + returnedFromService + ); + + service.query().subscribe(resp => (expectedResult = resp.body)); + + const req = httpMock.expectOne({ method: 'GET' }); + req.flush([returnedFromService]); + httpMock.verify(); + expect(expectedResult).toContainEqual(expected); + }); + + it('should delete a StrategyApplication', () => { + service.delete(123).subscribe(resp => (expectedResult = resp.ok)); + + const req = httpMock.expectOne({ method: 'DELETE' }); + req.flush({ status: 200 }); + expect(expectedResult); + }); + + describe('addStrategyApplicationToCollectionIfMissing', () => { + it('should add a StrategyApplication to an empty array', () => { + const strategyApplication: IStrategyApplication = { id: 123 }; + expectedResult = service.addStrategyApplicationToCollectionIfMissing([], strategyApplication); + expect(expectedResult).toHaveLength(1); + expect(expectedResult).toContain(strategyApplication); + }); + + it('should not add a StrategyApplication to an array that contains it', () => { + const strategyApplication: IStrategyApplication = { id: 123 }; + const strategyApplicationCollection: IStrategyApplication[] = [ + { + ...strategyApplication, + }, + { id: 456 }, + ]; + expectedResult = service.addStrategyApplicationToCollectionIfMissing(strategyApplicationCollection, strategyApplication); + expect(expectedResult).toHaveLength(2); + }); + + it("should add a StrategyApplication to an array that doesn't contain it", () => { + const strategyApplication: IStrategyApplication = { id: 123 }; + const strategyApplicationCollection: IStrategyApplication[] = [{ id: 456 }]; + expectedResult = service.addStrategyApplicationToCollectionIfMissing(strategyApplicationCollection, strategyApplication); + expect(expectedResult).toHaveLength(2); + expect(expectedResult).toContain(strategyApplication); + }); + + it('should add only unique StrategyApplication to an array', () => { + const strategyApplicationArray: IStrategyApplication[] = [{ id: 123 }, { id: 456 }, { id: 59740 }]; + const strategyApplicationCollection: IStrategyApplication[] = [{ id: 123 }]; + expectedResult = service.addStrategyApplicationToCollectionIfMissing(strategyApplicationCollection, ...strategyApplicationArray); + expect(expectedResult).toHaveLength(3); + }); + + it('should accept varargs', () => { + const strategyApplication: IStrategyApplication = { id: 123 }; + const strategyApplication2: IStrategyApplication = { id: 456 }; + expectedResult = service.addStrategyApplicationToCollectionIfMissing([], strategyApplication, strategyApplication2); + expect(expectedResult).toHaveLength(2); + expect(expectedResult).toContain(strategyApplication); + expect(expectedResult).toContain(strategyApplication2); + }); + + it('should accept null and undefined values', () => { + const strategyApplication: IStrategyApplication = { id: 123 }; + expectedResult = service.addStrategyApplicationToCollectionIfMissing([], null, strategyApplication, undefined); + expect(expectedResult).toHaveLength(1); + expect(expectedResult).toContain(strategyApplication); + }); + + it('should return initial array if no StrategyApplication is added', () => { + const strategyApplicationCollection: IStrategyApplication[] = [{ id: 123 }]; + expectedResult = service.addStrategyApplicationToCollectionIfMissing(strategyApplicationCollection, undefined, null); + expect(expectedResult).toEqual(strategyApplicationCollection); + }); + }); + }); + + afterEach(() => { + httpMock.verify(); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/service/strategy-application.service.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/service/strategy-application.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..d45ae3c28ae72d1e5e69c346578a6dd746843c8b --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/service/strategy-application.service.ts @@ -0,0 +1,106 @@ +import { Injectable } from '@angular/core'; +import { HttpClient, HttpResponse } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; +import * as dayjs from 'dayjs'; + +import { isPresent } from 'app/core/util/operators'; +import { ApplicationConfigService } from 'app/core/config/application-config.service'; +import { createRequestOption } from 'app/core/request/request-util'; +import { IStrategyApplication, getStrategyApplicationIdentifier } from '../strategy-application.model'; + +export type EntityResponseType = HttpResponse<IStrategyApplication>; +export type EntityArrayResponseType = HttpResponse<IStrategyApplication[]>; + +@Injectable({ providedIn: 'root' }) +export class StrategyApplicationService { + protected resourceUrl = this.applicationConfigService.getEndpointFor('api/strategy-applications', 'shbackend'); + + constructor(protected http: HttpClient, protected applicationConfigService: ApplicationConfigService) {} + + create(strategyApplication: IStrategyApplication): Observable<EntityResponseType> { + const copy = this.convertDateFromClient(strategyApplication); + return this.http + .post<IStrategyApplication>(this.resourceUrl, copy, { observe: 'response' }) + .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res))); + } + + update(strategyApplication: IStrategyApplication): Observable<EntityResponseType> { + const copy = this.convertDateFromClient(strategyApplication); + return this.http + .put<IStrategyApplication>(`${this.resourceUrl}/${getStrategyApplicationIdentifier(strategyApplication) as number}`, copy, { + observe: 'response', + }) + .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res))); + } + + partialUpdate(strategyApplication: IStrategyApplication): Observable<EntityResponseType> { + const copy = this.convertDateFromClient(strategyApplication); + return this.http + .patch<IStrategyApplication>(`${this.resourceUrl}/${getStrategyApplicationIdentifier(strategyApplication) as number}`, copy, { + observe: 'response', + }) + .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res))); + } + + find(id: number): Observable<EntityResponseType> { + return this.http + .get<IStrategyApplication>(`${this.resourceUrl}/${id}`, { observe: 'response' }) + .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res))); + } + + query(req?: any): Observable<EntityArrayResponseType> { + const options = createRequestOption(req); + return this.http + .get<IStrategyApplication[]>(this.resourceUrl, { params: options, observe: 'response' }) + .pipe(map((res: EntityArrayResponseType) => this.convertDateArrayFromServer(res))); + } + + delete(id: number): Observable<HttpResponse<{}>> { + return this.http.delete(`${this.resourceUrl}/${id}`, { observe: 'response' }); + } + + addStrategyApplicationToCollectionIfMissing( + strategyApplicationCollection: IStrategyApplication[], + ...strategyApplicationsToCheck: (IStrategyApplication | null | undefined)[] + ): IStrategyApplication[] { + const strategyApplications: IStrategyApplication[] = strategyApplicationsToCheck.filter(isPresent); + if (strategyApplications.length > 0) { + const strategyApplicationCollectionIdentifiers = strategyApplicationCollection.map( + strategyApplicationItem => getStrategyApplicationIdentifier(strategyApplicationItem)! + ); + const strategyApplicationsToAdd = strategyApplications.filter(strategyApplicationItem => { + const strategyApplicationIdentifier = getStrategyApplicationIdentifier(strategyApplicationItem); + if (strategyApplicationIdentifier == null || strategyApplicationCollectionIdentifiers.includes(strategyApplicationIdentifier)) { + return false; + } + strategyApplicationCollectionIdentifiers.push(strategyApplicationIdentifier); + return true; + }); + return [...strategyApplicationsToAdd, ...strategyApplicationCollection]; + } + return strategyApplicationCollection; + } + + protected convertDateFromClient(strategyApplication: IStrategyApplication): IStrategyApplication { + return Object.assign({}, strategyApplication, { + timestamp: strategyApplication.timestamp?.isValid() ? strategyApplication.timestamp.toJSON() : undefined, + }); + } + + protected convertDateFromServer(res: EntityResponseType): EntityResponseType { + if (res.body) { + res.body.timestamp = res.body.timestamp ? dayjs(res.body.timestamp) : undefined; + } + return res; + } + + protected convertDateArrayFromServer(res: EntityArrayResponseType): EntityArrayResponseType { + if (res.body) { + res.body.forEach((strategyApplication: IStrategyApplication) => { + strategyApplication.timestamp = strategyApplication.timestamp ? dayjs(strategyApplication.timestamp) : undefined; + }); + } + return res; + } +} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/strategy-application.model.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/strategy-application.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..fd3ebc6ec1e10edf889da9e98062b5ef9e5629c9 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/strategy-application.model.ts @@ -0,0 +1,29 @@ +import * as dayjs from 'dayjs'; +import { IStrategy } from 'app/entities/shBackend/strategy/strategy.model'; +import { IDeployment } from 'app/entities/shBackend/deployment/deployment.model'; + +export interface IStrategyApplication { + id?: number; + timestamp?: dayjs.Dayjs | null; + summary?: string | null; + bundleContentType?: string | null; + bundle?: string | null; + strategy?: IStrategy | null; + deployment?: IDeployment | null; +} + +export class StrategyApplication implements IStrategyApplication { + constructor( + public id?: number, + public timestamp?: dayjs.Dayjs | null, + public summary?: string | null, + public bundleContentType?: string | null, + public bundle?: string | null, + public strategy?: IStrategy | null, + public deployment?: IDeployment | null + ) {} +} + +export function getStrategyApplicationIdentifier(strategyApplication: IStrategyApplication): number | undefined { + return strategyApplication.id; +} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/strategy-application.module.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/strategy-application.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..3a6600a0485c96b0507c77bb986f0f69f2e46ad3 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/strategy-application.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; +import { SharedModule } from 'app/shared/shared.module'; +import { StrategyApplicationComponent } from './list/strategy-application.component'; +import { StrategyApplicationDetailComponent } from './detail/strategy-application-detail.component'; +import { StrategyApplicationUpdateComponent } from './update/strategy-application-update.component'; +import { StrategyApplicationDeleteDialogComponent } from './delete/strategy-application-delete-dialog.component'; +import { StrategyApplicationRoutingModule } from './route/strategy-application-routing.module'; + +@NgModule({ + imports: [SharedModule, StrategyApplicationRoutingModule], + declarations: [ + StrategyApplicationComponent, + StrategyApplicationDetailComponent, + StrategyApplicationUpdateComponent, + StrategyApplicationDeleteDialogComponent, + ], + entryComponents: [StrategyApplicationDeleteDialogComponent], +}) +export class ShBackendStrategyApplicationModule {} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/update/strategy-application-update.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/update/strategy-application-update.component.html new file mode 100644 index 0000000000000000000000000000000000000000..d962ce7a0b1a4207868ccf3e410c92bbd453e23d --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/update/strategy-application-update.component.html @@ -0,0 +1,145 @@ +<div class="row justify-content-center"> + <div class="col-8"> + <form name="editForm" role="form" novalidate (ngSubmit)="save()" [formGroup]="editForm"> + <h2 + id="jhi-strategy-application-heading" + data-cy="StrategyApplicationCreateUpdateHeading" + jhiTranslate="shGatewayApp.shBackendStrategyApplication.home.createOrEditLabel" + > + Create or edit a Strategy Application + </h2> + + <div> + <jhi-alert-error></jhi-alert-error> + + <div class="form-group" [hidden]="editForm.get('id')!.value == null"> + <label class="form-control-label" jhiTranslate="global.field.id" for="field_id">ID</label> + <input type="number" class="form-control" name="id" id="field_id" data-cy="id" formControlName="id" [readonly]="true" /> + </div> + + <div class="form-group"> + <label + class="form-control-label" + jhiTranslate="shGatewayApp.shBackendStrategyApplication.timestamp" + for="field_timestamp" + [ngbTooltip]="'shGatewayApp.shBackendStrategyApplication.help.timestamp' | translate" + >Timestamp</label + > + <div class="d-flex"> + <input + id="field_timestamp" + data-cy="timestamp" + type="datetime-local" + class="form-control" + name="timestamp" + formControlName="timestamp" + placeholder="YYYY-MM-DD HH:mm" + /> + </div> + </div> + + <div class="form-group"> + <label + class="form-control-label" + jhiTranslate="shGatewayApp.shBackendStrategyApplication.summary" + for="field_summary" + [ngbTooltip]="'shGatewayApp.shBackendStrategyApplication.help.summary' | translate" + >Summary</label + > + <textarea class="form-control" name="summary" id="field_summary" data-cy="summary" formControlName="summary"></textarea> + </div> + + <div class="form-group"> + <label + class="form-control-label" + jhiTranslate="shGatewayApp.shBackendStrategyApplication.bundle" + for="field_bundle" + [ngbTooltip]="'shGatewayApp.shBackendStrategyApplication.help.bundle' | translate" + >Bundle</label + > + <div> + <div *ngIf="editForm.get('bundle')!.value" class="form-text text-danger clearfix"> + <a + class="pull-left" + (click)="openFile(editForm.get('bundle')!.value, editForm.get('bundleContentType')!.value)" + jhiTranslate="entity.action.open" + >open</a + ><br /> + <span class="pull-left">{{ editForm.get('bundleContentType')!.value }}, {{ byteSize(editForm.get('bundle')!.value) }}</span> + <button + type="button" + (click)="editForm.patchValue({ bundle: null }); editForm.patchValue({ bundleContentType: null })" + class="btn btn-secondary btn-xs pull-right" + > + <fa-icon icon="times"></fa-icon> + </button> + </div> + <input + type="file" + id="file_bundle" + data-cy="bundle" + (change)="setFileData($event, 'bundle', false)" + jhiTranslate="entity.action.addblob" + /> + </div> + <input type="hidden" class="form-control" name="bundle" id="field_bundle" data-cy="bundle" formControlName="bundle" /> + <input + type="hidden" + class="form-control" + name="bundleContentType" + id="field_bundleContentType" + formControlName="bundleContentType" + /> + </div> + + <div class="form-group"> + <label class="form-control-label" jhiTranslate="shGatewayApp.shBackendStrategyApplication.strategy" for="field_strategy" + >Strategy</label + > + <select class="form-control" id="field_strategy" data-cy="strategy" name="strategy" formControlName="strategy"> + <option [ngValue]="null"></option> + <option + [ngValue]="strategyOption.id === editForm.get('strategy')!.value?.id ? editForm.get('strategy')!.value : strategyOption" + *ngFor="let strategyOption of strategiesSharedCollection; trackBy: trackStrategyById" + > + {{ strategyOption.code }} + </option> + </select> + </div> + + <div class="form-group"> + <label class="form-control-label" jhiTranslate="shGatewayApp.shBackendStrategyApplication.deployment" for="field_deployment" + >Deployment</label + > + <select class="form-control" id="field_deployment" data-cy="deployment" name="deployment" formControlName="deployment"> + <option [ngValue]="null"></option> + <option + [ngValue]=" + deploymentOption.id === editForm.get('deployment')!.value?.id ? editForm.get('deployment')!.value : deploymentOption + " + *ngFor="let deploymentOption of deploymentsSharedCollection; trackBy: trackDeploymentById" + > + {{ deploymentOption.deploymentId }} + </option> + </select> + </div> + </div> + + <div> + <button type="button" id="cancel-save" data-cy="entityCreateCancelButton" class="btn btn-secondary" (click)="previousState()"> + <fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span> + </button> + + <button + type="submit" + id="save-entity" + data-cy="entityCreateSaveButton" + [disabled]="editForm.invalid || isSaving" + class="btn btn-primary" + > + <fa-icon icon="save"></fa-icon> <span jhiTranslate="entity.action.save">Save</span> + </button> + </div> + </form> + </div> +</div> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/update/strategy-application-update.component.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/update/strategy-application-update.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..46e7135097bbab449b99be2b189e0313a8b0c7d1 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/update/strategy-application-update.component.spec.ts @@ -0,0 +1,183 @@ +jest.mock('@angular/router'); + +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { HttpResponse } from '@angular/common/http'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { FormBuilder } from '@angular/forms'; +import { ActivatedRoute } from '@angular/router'; +import { of, Subject } from 'rxjs'; + +import { StrategyApplicationService } from '../service/strategy-application.service'; +import { IStrategyApplication, StrategyApplication } from '../strategy-application.model'; +import { IStrategy } from 'app/entities/shBackend/strategy/strategy.model'; +import { StrategyService } from 'app/entities/shBackend/strategy/service/strategy.service'; +import { IDeployment } from 'app/entities/shBackend/deployment/deployment.model'; +import { DeploymentService } from 'app/entities/shBackend/deployment/service/deployment.service'; + +import { StrategyApplicationUpdateComponent } from './strategy-application-update.component'; + +describe('Component Tests', () => { + describe('StrategyApplication Management Update Component', () => { + let comp: StrategyApplicationUpdateComponent; + let fixture: ComponentFixture<StrategyApplicationUpdateComponent>; + let activatedRoute: ActivatedRoute; + let strategyApplicationService: StrategyApplicationService; + let strategyService: StrategyService; + let deploymentService: DeploymentService; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + declarations: [StrategyApplicationUpdateComponent], + providers: [FormBuilder, ActivatedRoute], + }) + .overrideTemplate(StrategyApplicationUpdateComponent, '') + .compileComponents(); + + fixture = TestBed.createComponent(StrategyApplicationUpdateComponent); + activatedRoute = TestBed.inject(ActivatedRoute); + strategyApplicationService = TestBed.inject(StrategyApplicationService); + strategyService = TestBed.inject(StrategyService); + deploymentService = TestBed.inject(DeploymentService); + + comp = fixture.componentInstance; + }); + + describe('ngOnInit', () => { + it('Should call Strategy query and add missing value', () => { + const strategyApplication: IStrategyApplication = { id: 456 }; + const strategy: IStrategy = { id: 88753 }; + strategyApplication.strategy = strategy; + + const strategyCollection: IStrategy[] = [{ id: 30811 }]; + jest.spyOn(strategyService, 'query').mockReturnValue(of(new HttpResponse({ body: strategyCollection }))); + const additionalStrategies = [strategy]; + const expectedCollection: IStrategy[] = [...additionalStrategies, ...strategyCollection]; + jest.spyOn(strategyService, 'addStrategyToCollectionIfMissing').mockReturnValue(expectedCollection); + + activatedRoute.data = of({ strategyApplication }); + comp.ngOnInit(); + + expect(strategyService.query).toHaveBeenCalled(); + expect(strategyService.addStrategyToCollectionIfMissing).toHaveBeenCalledWith(strategyCollection, ...additionalStrategies); + expect(comp.strategiesSharedCollection).toEqual(expectedCollection); + }); + + it('Should call Deployment query and add missing value', () => { + const strategyApplication: IStrategyApplication = { id: 456 }; + const deployment: IDeployment = { id: 77820 }; + strategyApplication.deployment = deployment; + + const deploymentCollection: IDeployment[] = [{ id: 14102 }]; + jest.spyOn(deploymentService, 'query').mockReturnValue(of(new HttpResponse({ body: deploymentCollection }))); + const additionalDeployments = [deployment]; + const expectedCollection: IDeployment[] = [...additionalDeployments, ...deploymentCollection]; + jest.spyOn(deploymentService, 'addDeploymentToCollectionIfMissing').mockReturnValue(expectedCollection); + + activatedRoute.data = of({ strategyApplication }); + comp.ngOnInit(); + + expect(deploymentService.query).toHaveBeenCalled(); + expect(deploymentService.addDeploymentToCollectionIfMissing).toHaveBeenCalledWith(deploymentCollection, ...additionalDeployments); + expect(comp.deploymentsSharedCollection).toEqual(expectedCollection); + }); + + it('Should update editForm', () => { + const strategyApplication: IStrategyApplication = { id: 456 }; + const strategy: IStrategy = { id: 11396 }; + strategyApplication.strategy = strategy; + const deployment: IDeployment = { id: 76547 }; + strategyApplication.deployment = deployment; + + activatedRoute.data = of({ strategyApplication }); + comp.ngOnInit(); + + expect(comp.editForm.value).toEqual(expect.objectContaining(strategyApplication)); + expect(comp.strategiesSharedCollection).toContain(strategy); + expect(comp.deploymentsSharedCollection).toContain(deployment); + }); + }); + + describe('save', () => { + it('Should call update service on save for existing entity', () => { + // GIVEN + const saveSubject = new Subject<HttpResponse<StrategyApplication>>(); + const strategyApplication = { id: 123 }; + jest.spyOn(strategyApplicationService, 'update').mockReturnValue(saveSubject); + jest.spyOn(comp, 'previousState'); + activatedRoute.data = of({ strategyApplication }); + comp.ngOnInit(); + + // WHEN + comp.save(); + expect(comp.isSaving).toEqual(true); + saveSubject.next(new HttpResponse({ body: strategyApplication })); + saveSubject.complete(); + + // THEN + expect(comp.previousState).toHaveBeenCalled(); + expect(strategyApplicationService.update).toHaveBeenCalledWith(strategyApplication); + expect(comp.isSaving).toEqual(false); + }); + + it('Should call create service on save for new entity', () => { + // GIVEN + const saveSubject = new Subject<HttpResponse<StrategyApplication>>(); + const strategyApplication = new StrategyApplication(); + jest.spyOn(strategyApplicationService, 'create').mockReturnValue(saveSubject); + jest.spyOn(comp, 'previousState'); + activatedRoute.data = of({ strategyApplication }); + comp.ngOnInit(); + + // WHEN + comp.save(); + expect(comp.isSaving).toEqual(true); + saveSubject.next(new HttpResponse({ body: strategyApplication })); + saveSubject.complete(); + + // THEN + expect(strategyApplicationService.create).toHaveBeenCalledWith(strategyApplication); + expect(comp.isSaving).toEqual(false); + expect(comp.previousState).toHaveBeenCalled(); + }); + + it('Should set isSaving to false on error', () => { + // GIVEN + const saveSubject = new Subject<HttpResponse<StrategyApplication>>(); + const strategyApplication = { id: 123 }; + jest.spyOn(strategyApplicationService, 'update').mockReturnValue(saveSubject); + jest.spyOn(comp, 'previousState'); + activatedRoute.data = of({ strategyApplication }); + comp.ngOnInit(); + + // WHEN + comp.save(); + expect(comp.isSaving).toEqual(true); + saveSubject.error('This is an error!'); + + // THEN + expect(strategyApplicationService.update).toHaveBeenCalledWith(strategyApplication); + expect(comp.isSaving).toEqual(false); + expect(comp.previousState).not.toHaveBeenCalled(); + }); + }); + + describe('Tracking relationships identifiers', () => { + describe('trackStrategyById', () => { + it('Should return tracked Strategy primary key', () => { + const entity = { id: 123 }; + const trackResult = comp.trackStrategyById(0, entity); + expect(trackResult).toEqual(entity.id); + }); + }); + + describe('trackDeploymentById', () => { + it('Should return tracked Deployment primary key', () => { + const entity = { id: 123 }; + const trackResult = comp.trackDeploymentById(0, entity); + expect(trackResult).toEqual(entity.id); + }); + }); + }); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/update/strategy-application-update.component.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/update/strategy-application-update.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..9561662424cb3aa3f5dfdb8f07e1478215ed7281 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy-application/update/strategy-application-update.component.ts @@ -0,0 +1,175 @@ +import { Component, OnInit } from '@angular/core'; +import { HttpResponse } from '@angular/common/http'; +import { FormBuilder } from '@angular/forms'; +import { ActivatedRoute } from '@angular/router'; +import { Observable } from 'rxjs'; +import { finalize, map } from 'rxjs/operators'; + +import * as dayjs from 'dayjs'; +import { DATE_TIME_FORMAT } from 'app/config/input.constants'; + +import { IStrategyApplication, StrategyApplication } from '../strategy-application.model'; +import { StrategyApplicationService } from '../service/strategy-application.service'; +import { AlertError } from 'app/shared/alert/alert-error.model'; +import { EventManager, EventWithContent } from 'app/core/util/event-manager.service'; +import { DataUtils, FileLoadError } from 'app/core/util/data-util.service'; +import { IStrategy } from 'app/entities/shBackend/strategy/strategy.model'; +import { StrategyService } from 'app/entities/shBackend/strategy/service/strategy.service'; +import { IDeployment } from 'app/entities/shBackend/deployment/deployment.model'; +import { DeploymentService } from 'app/entities/shBackend/deployment/service/deployment.service'; + +@Component({ + selector: 'jhi-strategy-application-update', + templateUrl: './strategy-application-update.component.html', +}) +export class StrategyApplicationUpdateComponent implements OnInit { + isSaving = false; + + strategiesSharedCollection: IStrategy[] = []; + deploymentsSharedCollection: IDeployment[] = []; + + editForm = this.fb.group({ + id: [], + timestamp: [], + summary: [], + bundle: [], + bundleContentType: [], + strategy: [], + deployment: [], + }); + + constructor( + protected dataUtils: DataUtils, + protected eventManager: EventManager, + protected strategyApplicationService: StrategyApplicationService, + protected strategyService: StrategyService, + protected deploymentService: DeploymentService, + protected activatedRoute: ActivatedRoute, + protected fb: FormBuilder + ) {} + + ngOnInit(): void { + this.activatedRoute.data.subscribe(({ strategyApplication }) => { + if (strategyApplication.id === undefined) { + const today = dayjs().startOf('day'); + strategyApplication.timestamp = today; + } + + this.updateForm(strategyApplication); + + this.loadRelationshipsOptions(); + }); + } + + byteSize(base64String: string): string { + return this.dataUtils.byteSize(base64String); + } + + openFile(base64String: string, contentType: string | null | undefined): void { + this.dataUtils.openFile(base64String, contentType); + } + + setFileData(event: Event, field: string, isImage: boolean): void { + this.dataUtils.loadFileToForm(event, this.editForm, field, isImage).subscribe({ + error: (err: FileLoadError) => + this.eventManager.broadcast(new EventWithContent<AlertError>('shGatewayApp.error', { ...err, key: 'error.file.' + err.key })), + }); + } + + previousState(): void { + window.history.back(); + } + + save(): void { + this.isSaving = true; + const strategyApplication = this.createFromForm(); + if (strategyApplication.id !== undefined) { + this.subscribeToSaveResponse(this.strategyApplicationService.update(strategyApplication)); + } else { + this.subscribeToSaveResponse(this.strategyApplicationService.create(strategyApplication)); + } + } + + trackStrategyById(index: number, item: IStrategy): number { + return item.id!; + } + + trackDeploymentById(index: number, item: IDeployment): number { + return item.id!; + } + + protected subscribeToSaveResponse(result: Observable<HttpResponse<IStrategyApplication>>): void { + result.pipe(finalize(() => this.onSaveFinalize())).subscribe( + () => this.onSaveSuccess(), + () => this.onSaveError() + ); + } + + protected onSaveSuccess(): void { + this.previousState(); + } + + protected onSaveError(): void { + // Api for inheritance. + } + + protected onSaveFinalize(): void { + this.isSaving = false; + } + + protected updateForm(strategyApplication: IStrategyApplication): void { + this.editForm.patchValue({ + id: strategyApplication.id, + timestamp: strategyApplication.timestamp ? strategyApplication.timestamp.format(DATE_TIME_FORMAT) : null, + summary: strategyApplication.summary, + bundle: strategyApplication.bundle, + bundleContentType: strategyApplication.bundleContentType, + strategy: strategyApplication.strategy, + deployment: strategyApplication.deployment, + }); + + this.strategiesSharedCollection = this.strategyService.addStrategyToCollectionIfMissing( + this.strategiesSharedCollection, + strategyApplication.strategy + ); + this.deploymentsSharedCollection = this.deploymentService.addDeploymentToCollectionIfMissing( + this.deploymentsSharedCollection, + strategyApplication.deployment + ); + } + + protected loadRelationshipsOptions(): void { + this.strategyService + .query() + .pipe(map((res: HttpResponse<IStrategy[]>) => res.body ?? [])) + .pipe( + map((strategies: IStrategy[]) => + this.strategyService.addStrategyToCollectionIfMissing(strategies, this.editForm.get('strategy')!.value) + ) + ) + .subscribe((strategies: IStrategy[]) => (this.strategiesSharedCollection = strategies)); + + this.deploymentService + .query() + .pipe(map((res: HttpResponse<IDeployment[]>) => res.body ?? [])) + .pipe( + map((deployments: IDeployment[]) => + this.deploymentService.addDeploymentToCollectionIfMissing(deployments, this.editForm.get('deployment')!.value) + ) + ) + .subscribe((deployments: IDeployment[]) => (this.deploymentsSharedCollection = deployments)); + } + + protected createFromForm(): IStrategyApplication { + return { + ...new StrategyApplication(), + id: this.editForm.get(['id'])!.value, + timestamp: this.editForm.get(['timestamp'])!.value ? dayjs(this.editForm.get(['timestamp'])!.value, DATE_TIME_FORMAT) : undefined, + summary: this.editForm.get(['summary'])!.value, + bundleContentType: this.editForm.get(['bundleContentType'])!.value, + bundle: this.editForm.get(['bundle'])!.value, + strategy: this.editForm.get(['strategy'])!.value, + deployment: this.editForm.get(['deployment'])!.value, + }; + } +} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/delete/strategy-delete-dialog.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/delete/strategy-delete-dialog.component.html index 44978fa8bc651cb88a17db00566ed709f6413b48..43142bdf84ee6ce32db6a488029c82921373dda1 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/delete/strategy-delete-dialog.component.html +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/delete/strategy-delete-dialog.component.html @@ -1,6 +1,6 @@ <form *ngIf="strategy" name="deleteForm" (ngSubmit)="confirmDelete(strategy.id!)"> <div class="modal-header"> - <h4 class="modal-title" data-cy="strategyDeleteDialogHeading">Confirm delete operation</h4> + <h4 class="modal-title" data-cy="strategyDeleteDialogHeading" jhiTranslate="entity.delete.title">Confirm delete operation</h4> <button type="button" class="close" data-dismiss="modal" aria-hidden="true" (click)="cancel()">×</button> </div> @@ -8,16 +8,22 @@ <div class="modal-body"> <jhi-alert-error></jhi-alert-error> - <p id="jhi-delete-strategy-heading">Are you sure you want to delete this Strategy?</p> + <p + id="jhi-delete-strategy-heading" + jhiTranslate="shGatewayApp.shBackendStrategy.delete.question" + [translateValues]="{ id: strategy.id }" + > + Are you sure you want to delete this Strategy? + </p> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal" (click)="cancel()"> - <fa-icon icon="ban"></fa-icon> <span>Cancel</span> + <fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span> </button> <button id="jhi-confirm-delete-strategy" data-cy="entityConfirmDeleteButton" type="submit" class="btn btn-danger"> - <fa-icon icon="times"></fa-icon> <span>Delete</span> + <fa-icon icon="times"></fa-icon> <span jhiTranslate="entity.action.delete">Delete</span> </button> </div> </form> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/detail/strategy-detail.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/detail/strategy-detail.component.html index 5e364b6c130039665f1b60cb88dfdf2813af8b20..e17e232f65b1b4440121f6fa1976111f1c8b34a8 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/detail/strategy-detail.component.html +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/detail/strategy-detail.component.html @@ -1,7 +1,7 @@ <div class="row justify-content-center"> <div class="col-8"> <div *ngIf="strategy"> - <h2 data-cy="strategyDetailsHeading"><span>Strategy</span></h2> + <h2 data-cy="strategyDetailsHeading"><span jhiTranslate="shGatewayApp.shBackendStrategy.detail.title">Strategy</span></h2> <hr /> @@ -10,30 +10,52 @@ <jhi-alert></jhi-alert> <dl class="row-md jh-entity-details"> - <dt><span>ID</span></dt> + <dt><span jhiTranslate="global.field.id">ID</span></dt> <dd> <span>{{ strategy.id }}</span> </dd> - <dt><span ngbTooltip="strategy code">Code</span></dt> + <dt> + <span jhiTranslate="shGatewayApp.shBackendStrategy.code" [ngbTooltip]="'shGatewayApp.shBackendStrategy.help.code' | translate" + >Code</span + > + </dt> <dd> <span>{{ strategy.code }}</span> </dd> - <dt><span ngbTooltip="strategy description">Description</span></dt> + <dt> + <span + jhiTranslate="shGatewayApp.shBackendStrategy.description" + [ngbTooltip]="'shGatewayApp.shBackendStrategy.help.description' | translate" + >Description</span + > + </dt> <dd> <span>{{ strategy.description }}</span> </dd> - <dt><span ngbTooltip="business process modelling annotation to propose">Bpmn</span></dt> + <dt> + <span + jhiTranslate="shGatewayApp.shBackendStrategy.configuration" + [ngbTooltip]="'shGatewayApp.shBackendStrategy.help.configuration' | translate" + >Configuration</span + > + </dt> <dd> - <span>{{ strategy.bpmn }}</span> + <span>{{ strategy.configuration }}</span> + </dd> + <dt><span jhiTranslate="shGatewayApp.shBackendStrategy.deployment">Deployment</span></dt> + <dd> + <div *ngIf="strategy.deployment"> + <a [routerLink]="['/deployment', strategy.deployment?.id, 'view']">{{ strategy.deployment?.deploymentId }}</a> + </div> </dd> </dl> <button type="submit" (click)="previousState()" class="btn btn-info" data-cy="entityDetailsBackButton"> - <fa-icon icon="arrow-left"></fa-icon> <span>Back</span> + <fa-icon icon="arrow-left"></fa-icon> <span jhiTranslate="entity.action.back">Back</span> </button> <button type="button" [routerLink]="['/strategy', strategy.id, 'edit']" class="btn btn-primary"> - <fa-icon icon="pencil-alt"></fa-icon> <span>Edit</span> + <fa-icon icon="pencil-alt"></fa-icon> <span jhiTranslate="entity.action.edit">Edit</span> </button> </div> </div> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/detail/strategy-detail.component.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/detail/strategy-detail.component.spec.ts index 6c3fabdee3f2601b426fd8547ffbde76cf75d92e..ea06ab200ef788206acea1f962b4acff4f19d268 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/detail/strategy-detail.component.spec.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/detail/strategy-detail.component.spec.ts @@ -2,12 +2,15 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ActivatedRoute } from '@angular/router'; import { of } from 'rxjs'; +import { DataUtils } from 'app/core/util/data-util.service'; + import { StrategyDetailComponent } from './strategy-detail.component'; describe('Component Tests', () => { describe('Strategy Management Detail Component', () => { let comp: StrategyDetailComponent; let fixture: ComponentFixture<StrategyDetailComponent>; + let dataUtils: DataUtils; beforeEach(() => { TestBed.configureTestingModule({ @@ -23,6 +26,8 @@ describe('Component Tests', () => { .compileComponents(); fixture = TestBed.createComponent(StrategyDetailComponent); comp = fixture.componentInstance; + dataUtils = TestBed.inject(DataUtils); + jest.spyOn(window, 'open').mockImplementation(() => null); }); describe('OnInit', () => { @@ -34,5 +39,39 @@ describe('Component Tests', () => { expect(comp.strategy).toEqual(expect.objectContaining({ id: 123 })); }); }); + + describe('byteSize', () => { + it('Should call byteSize from DataUtils', () => { + // GIVEN + jest.spyOn(dataUtils, 'byteSize'); + const fakeBase64 = 'fake base64'; + + // WHEN + comp.byteSize(fakeBase64); + + // THEN + expect(dataUtils.byteSize).toBeCalledWith(fakeBase64); + }); + }); + + describe('openFile', () => { + it('Should call openFile from DataUtils', () => { + const newWindow = { ...window }; + newWindow.document.write = jest.fn(); + window.open = jest.fn(() => newWindow); + window.onload = jest.fn(() => newWindow); + window.URL.createObjectURL = jest.fn(); + // GIVEN + jest.spyOn(dataUtils, 'openFile'); + const fakeContentType = 'fake content type'; + const fakeBase64 = 'fake base64'; + + // WHEN + comp.openFile(fakeBase64, fakeContentType); + + // THEN + expect(dataUtils.openFile).toBeCalledWith(fakeBase64, fakeContentType); + }); + }); }); }); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/detail/strategy-detail.component.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/detail/strategy-detail.component.ts index 34f8a8dda460e173334cb2b5ac42350a6c2b4b56..ce0cd7ad022c2d8cb0107da78e4aa142fc6b02ca 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/detail/strategy-detail.component.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/detail/strategy-detail.component.ts @@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { IStrategy } from '../strategy.model'; +import { DataUtils } from 'app/core/util/data-util.service'; @Component({ selector: 'jhi-strategy-detail', @@ -10,7 +11,7 @@ import { IStrategy } from '../strategy.model'; export class StrategyDetailComponent implements OnInit { strategy: IStrategy | null = null; - constructor(protected activatedRoute: ActivatedRoute) {} + constructor(protected dataUtils: DataUtils, protected activatedRoute: ActivatedRoute) {} ngOnInit(): void { this.activatedRoute.data.subscribe(({ strategy }) => { @@ -18,6 +19,14 @@ export class StrategyDetailComponent implements OnInit { }); } + byteSize(base64String: string): string { + return this.dataUtils.byteSize(base64String); + } + + openFile(base64String: string, contentType: string | null | undefined): void { + this.dataUtils.openFile(base64String, contentType); + } + previousState(): void { window.history.back(); } diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/list/strategy.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/list/strategy.component.html index 1b4b141129499adec33da14d659409b9b5060b88..e3b04aa17dcefafeb6db6512063f59f4aa3469f2 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/list/strategy.component.html +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/list/strategy.component.html @@ -1,11 +1,11 @@ <div> <h2 id="page-heading" data-cy="StrategyHeading"> - <span>Strategies</span> + <span jhiTranslate="shGatewayApp.shBackendStrategy.home.title">Strategies</span> <div class="d-flex justify-content-end"> <button class="btn btn-info mr-2" (click)="loadAll()" [disabled]="isLoading"> <fa-icon icon="sync" [spin]="isLoading"></fa-icon> - <span>Refresh List</span> + <span jhiTranslate="shGatewayApp.shBackendStrategy.home.refreshListLabel">Refresh List</span> </button> <button @@ -15,7 +15,7 @@ [routerLink]="['/strategy/new']" > <fa-icon icon="plus"></fa-icon> - <span> Create a new Strategy </span> + <span jhiTranslate="shGatewayApp.shBackendStrategy.home.createLabel"> Create a new Strategy </span> </button> </div> </h2> @@ -25,17 +25,18 @@ <jhi-alert></jhi-alert> <div class="alert alert-warning" id="no-result" *ngIf="strategies?.length === 0"> - <span>No strategies found</span> + <span jhiTranslate="shGatewayApp.shBackendStrategy.home.notFound">No strategies found</span> </div> <div class="table-responsive" id="entities" *ngIf="strategies && strategies.length > 0"> <table class="table table-striped" aria-describedby="page-heading"> <thead> <tr> - <th scope="col"><span>ID</span></th> - <th scope="col"><span>Code</span></th> - <th scope="col"><span>Description</span></th> - <th scope="col"><span>Bpmn</span></th> + <th scope="col"><span jhiTranslate="global.field.id">ID</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendStrategy.code">Code</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendStrategy.description">Description</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendStrategy.configuration">Configuration</span></th> + <th scope="col"><span jhiTranslate="shGatewayApp.shBackendStrategy.deployment">Deployment</span></th> <th scope="col"></th> </tr> </thead> @@ -46,7 +47,12 @@ </td> <td>{{ strategy.code }}</td> <td>{{ strategy.description }}</td> - <td>{{ strategy.bpmn }}</td> + <td>{{ strategy.configuration }}</td> + <td> + <div *ngIf="strategy.deployment"> + <a [routerLink]="['/deployment', strategy.deployment?.id, 'view']">{{ strategy.deployment?.deploymentId }}</a> + </div> + </td> <td class="text-right"> <div class="btn-group"> <button @@ -56,7 +62,7 @@ data-cy="entityDetailsButton" > <fa-icon icon="eye"></fa-icon> - <span class="d-none d-md-inline">View</span> + <span class="d-none d-md-inline" jhiTranslate="entity.action.view">View</span> </button> <button @@ -66,12 +72,12 @@ data-cy="entityEditButton" > <fa-icon icon="pencil-alt"></fa-icon> - <span class="d-none d-md-inline">Edit</span> + <span class="d-none d-md-inline" jhiTranslate="entity.action.edit">Edit</span> </button> <button type="submit" (click)="delete(strategy)" class="btn btn-danger btn-sm" data-cy="entityDeleteButton"> <fa-icon icon="times"></fa-icon> - <span class="d-none d-md-inline">Delete</span> + <span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span> </button> </div> </td> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/list/strategy.component.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/list/strategy.component.ts index b3fd953b502db87821197c61b800ff95dfd62802..2405a3be290f4cacbda6b364947ceb812cdd3e21 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/list/strategy.component.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/list/strategy.component.ts @@ -5,6 +5,7 @@ import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { IStrategy } from '../strategy.model'; import { StrategyService } from '../service/strategy.service'; import { StrategyDeleteDialogComponent } from '../delete/strategy-delete-dialog.component'; +import { DataUtils } from 'app/core/util/data-util.service'; @Component({ selector: 'jhi-strategy', @@ -14,7 +15,7 @@ export class StrategyComponent implements OnInit { strategies?: IStrategy[]; isLoading = false; - constructor(protected strategyService: StrategyService, protected modalService: NgbModal) {} + constructor(protected strategyService: StrategyService, protected dataUtils: DataUtils, protected modalService: NgbModal) {} loadAll(): void { this.isLoading = true; @@ -38,6 +39,14 @@ export class StrategyComponent implements OnInit { return item.id!; } + byteSize(base64String: string): string { + return this.dataUtils.byteSize(base64String); + } + + openFile(base64String: string, contentType: string | null | undefined): void { + return this.dataUtils.openFile(base64String, contentType); + } + delete(strategy: IStrategy): void { const modalRef = this.modalService.open(StrategyDeleteDialogComponent, { size: 'lg', backdrop: 'static' }); modalRef.componentInstance.strategy = strategy; diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/service/strategy.service.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/service/strategy.service.spec.ts index c7d47107f7083eab7cadd525c5728d2aa3b29e67..111be54f635e6e6b9b8d312d05eb023d32184058 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/service/strategy.service.spec.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/service/strategy.service.spec.ts @@ -24,7 +24,7 @@ describe('Service Tests', () => { id: 0, code: 'AAAAAAA', description: 'AAAAAAA', - bpmn: 'AAAAAAA', + configuration: 'AAAAAAA', }; }); @@ -62,7 +62,7 @@ describe('Service Tests', () => { id: 1, code: 'BBBBBB', description: 'BBBBBB', - bpmn: 'BBBBBB', + configuration: 'BBBBBB', }, elemDefault ); @@ -79,7 +79,7 @@ describe('Service Tests', () => { it('should partial update a Strategy', () => { const patchObject = Object.assign( { - bpmn: 'BBBBBB', + configuration: 'BBBBBB', }, new Strategy() ); @@ -101,7 +101,7 @@ describe('Service Tests', () => { id: 1, code: 'BBBBBB', description: 'BBBBBB', - bpmn: 'BBBBBB', + configuration: 'BBBBBB', }, elemDefault ); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/strategy.model.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/strategy.model.ts index 08fd8486df39277cf9850cafeec58e79c68066ef..99a90e2ea1768f060fae4862ffaa33350b2c92ea 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/strategy.model.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/strategy.model.ts @@ -1,11 +1,11 @@ -import { IEventType } from 'app/entities/shBackend/event-type/event-type.model'; +import { IDeployment } from 'app/entities/shBackend/deployment/deployment.model'; export interface IStrategy { id?: number; code?: string; description?: string | null; - bpmn?: string | null; - eventTypes?: IEventType[] | null; + configuration?: string | null; + deployment?: IDeployment | null; } export class Strategy implements IStrategy { @@ -13,8 +13,8 @@ export class Strategy implements IStrategy { public id?: number, public code?: string, public description?: string | null, - public bpmn?: string | null, - public eventTypes?: IEventType[] | null + public configuration?: string | null, + public deployment?: IDeployment | null ) {} } diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/strategy.module.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/strategy.module.ts index 767f02ace0c95d372c3f09da7afd094de18454df..d9ec7545cbc360cda1810597a03c544218251e3f 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/strategy.module.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/strategy.module.ts @@ -11,4 +11,4 @@ import { StrategyRoutingModule } from './route/strategy-routing.module'; declarations: [StrategyComponent, StrategyDetailComponent, StrategyUpdateComponent, StrategyDeleteDialogComponent], entryComponents: [StrategyDeleteDialogComponent], }) -export class SelfHealingServiceStrategyModule {} +export class ShBackendStrategyModule {} diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/update/strategy-update.component.html b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/update/strategy-update.component.html index 690b251aeef07717df72d0ea9a43aa68fb3a4bcd..f88e43d3554202dfe9b7f7cc3e664aa5903d3d4e 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/update/strategy-update.component.html +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/update/strategy-update.component.html @@ -1,26 +1,46 @@ <div class="row justify-content-center"> <div class="col-8"> <form name="editForm" role="form" novalidate (ngSubmit)="save()" [formGroup]="editForm"> - <h2 id="jhi-strategy-heading" data-cy="StrategyCreateUpdateHeading">Create or edit a Strategy</h2> + <h2 + id="jhi-strategy-heading" + data-cy="StrategyCreateUpdateHeading" + jhiTranslate="shGatewayApp.shBackendStrategy.home.createOrEditLabel" + > + Create or edit a Strategy + </h2> <div> <jhi-alert-error></jhi-alert-error> <div class="form-group" [hidden]="editForm.get('id')!.value == null"> - <label class="form-control-label" for="field_id">ID</label> + <label class="form-control-label" jhiTranslate="global.field.id" for="field_id">ID</label> <input type="number" class="form-control" name="id" id="field_id" data-cy="id" formControlName="id" [readonly]="true" /> </div> <div class="form-group"> - <label class="form-control-label" for="field_code" ngbTooltip="strategy code">Code</label> + <label + class="form-control-label" + jhiTranslate="shGatewayApp.shBackendStrategy.code" + for="field_code" + [ngbTooltip]="'shGatewayApp.shBackendStrategy.help.code' | translate" + >Code</label + > <input type="text" class="form-control" name="code" id="field_code" data-cy="code" formControlName="code" /> <div *ngIf="editForm.get('code')!.invalid && (editForm.get('code')!.dirty || editForm.get('code')!.touched)"> - <small class="form-text text-danger" *ngIf="editForm.get('code')?.errors?.required"> This field is required. </small> + <small class="form-text text-danger" *ngIf="editForm.get('code')?.errors?.required" jhiTranslate="entity.validation.required"> + This field is required. + </small> </div> </div> <div class="form-group"> - <label class="form-control-label" for="field_description" ngbTooltip="strategy description">Description</label> + <label + class="form-control-label" + jhiTranslate="shGatewayApp.shBackendStrategy.description" + for="field_description" + [ngbTooltip]="'shGatewayApp.shBackendStrategy.help.description' | translate" + >Description</label + > <input type="text" class="form-control" @@ -32,14 +52,43 @@ </div> <div class="form-group"> - <label class="form-control-label" for="field_bpmn" ngbTooltip="business process modelling annotation to propose">Bpmn</label> - <input type="text" class="form-control" name="bpmn" id="field_bpmn" data-cy="bpmn" formControlName="bpmn" /> + <label + class="form-control-label" + jhiTranslate="shGatewayApp.shBackendStrategy.configuration" + for="field_configuration" + [ngbTooltip]="'shGatewayApp.shBackendStrategy.help.configuration' | translate" + >Configuration</label + > + <textarea + class="form-control" + name="configuration" + id="field_configuration" + data-cy="configuration" + formControlName="configuration" + ></textarea> + </div> + + <div class="form-group"> + <label class="form-control-label" jhiTranslate="shGatewayApp.shBackendStrategy.deployment" for="field_deployment" + >Deployment</label + > + <select class="form-control" id="field_deployment" data-cy="deployment" name="deployment" formControlName="deployment"> + <option [ngValue]="null"></option> + <option + [ngValue]=" + deploymentOption.id === editForm.get('deployment')!.value?.id ? editForm.get('deployment')!.value : deploymentOption + " + *ngFor="let deploymentOption of deploymentsSharedCollection; trackBy: trackDeploymentById" + > + {{ deploymentOption.deploymentId }} + </option> + </select> </div> </div> <div> <button type="button" id="cancel-save" data-cy="entityCreateCancelButton" class="btn btn-secondary" (click)="previousState()"> - <fa-icon icon="ban"></fa-icon> <span>Cancel</span> + <fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span> </button> <button @@ -49,7 +98,7 @@ [disabled]="editForm.invalid || isSaving" class="btn btn-primary" > - <fa-icon icon="save"></fa-icon> <span>Save</span> + <fa-icon icon="save"></fa-icon> <span jhiTranslate="entity.action.save">Save</span> </button> </div> </form> diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/update/strategy-update.component.spec.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/update/strategy-update.component.spec.ts index d2ab5f9647e2d28189ba77edd0f2f05244753f3f..4a12b9fe6ff80f44da7a45ee9dc6e2e7d11b9b4a 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/update/strategy-update.component.spec.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/update/strategy-update.component.spec.ts @@ -9,6 +9,8 @@ import { of, Subject } from 'rxjs'; import { StrategyService } from '../service/strategy.service'; import { IStrategy, Strategy } from '../strategy.model'; +import { IDeployment } from 'app/entities/shBackend/deployment/deployment.model'; +import { DeploymentService } from 'app/entities/shBackend/deployment/service/deployment.service'; import { StrategyUpdateComponent } from './strategy-update.component'; @@ -18,6 +20,7 @@ describe('Component Tests', () => { let fixture: ComponentFixture<StrategyUpdateComponent>; let activatedRoute: ActivatedRoute; let strategyService: StrategyService; + let deploymentService: DeploymentService; beforeEach(() => { TestBed.configureTestingModule({ @@ -31,18 +34,41 @@ describe('Component Tests', () => { fixture = TestBed.createComponent(StrategyUpdateComponent); activatedRoute = TestBed.inject(ActivatedRoute); strategyService = TestBed.inject(StrategyService); + deploymentService = TestBed.inject(DeploymentService); comp = fixture.componentInstance; }); describe('ngOnInit', () => { + it('Should call Deployment query and add missing value', () => { + const strategy: IStrategy = { id: 456 }; + const deployment: IDeployment = { id: 49042 }; + strategy.deployment = deployment; + + const deploymentCollection: IDeployment[] = [{ id: 37200 }]; + jest.spyOn(deploymentService, 'query').mockReturnValue(of(new HttpResponse({ body: deploymentCollection }))); + const additionalDeployments = [deployment]; + const expectedCollection: IDeployment[] = [...additionalDeployments, ...deploymentCollection]; + jest.spyOn(deploymentService, 'addDeploymentToCollectionIfMissing').mockReturnValue(expectedCollection); + + activatedRoute.data = of({ strategy }); + comp.ngOnInit(); + + expect(deploymentService.query).toHaveBeenCalled(); + expect(deploymentService.addDeploymentToCollectionIfMissing).toHaveBeenCalledWith(deploymentCollection, ...additionalDeployments); + expect(comp.deploymentsSharedCollection).toEqual(expectedCollection); + }); + it('Should update editForm', () => { const strategy: IStrategy = { id: 456 }; + const deployment: IDeployment = { id: 30841 }; + strategy.deployment = deployment; activatedRoute.data = of({ strategy }); comp.ngOnInit(); expect(comp.editForm.value).toEqual(expect.objectContaining(strategy)); + expect(comp.deploymentsSharedCollection).toContain(deployment); }); }); @@ -109,5 +135,15 @@ describe('Component Tests', () => { expect(comp.previousState).not.toHaveBeenCalled(); }); }); + + describe('Tracking relationships identifiers', () => { + describe('trackDeploymentById', () => { + it('Should return tracked Deployment primary key', () => { + const entity = { id: 123 }; + const trackResult = comp.trackDeploymentById(0, entity); + expect(trackResult).toEqual(entity.id); + }); + }); + }); }); }); diff --git a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/update/strategy-update.component.ts b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/update/strategy-update.component.ts index 91b3702add08743e062be833a138d25b79b2c304..6d0764f6f8fb901b5089a15dbe143c8a81cf1bae 100644 --- a/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/update/strategy-update.component.ts +++ b/git/sh-gateway/src/main/webapp/app/entities/shBackend/strategy/update/strategy-update.component.ts @@ -3,10 +3,15 @@ import { HttpResponse } from '@angular/common/http'; import { FormBuilder, Validators } from '@angular/forms'; import { ActivatedRoute } from '@angular/router'; import { Observable } from 'rxjs'; -import { finalize } from 'rxjs/operators'; +import { finalize, map } from 'rxjs/operators'; import { IStrategy, Strategy } from '../strategy.model'; import { StrategyService } from '../service/strategy.service'; +import { AlertError } from 'app/shared/alert/alert-error.model'; +import { EventManager, EventWithContent } from 'app/core/util/event-manager.service'; +import { DataUtils, FileLoadError } from 'app/core/util/data-util.service'; +import { IDeployment } from 'app/entities/shBackend/deployment/deployment.model'; +import { DeploymentService } from 'app/entities/shBackend/deployment/service/deployment.service'; @Component({ selector: 'jhi-strategy-update', @@ -15,18 +20,45 @@ import { StrategyService } from '../service/strategy.service'; export class StrategyUpdateComponent implements OnInit { isSaving = false; + deploymentsSharedCollection: IDeployment[] = []; + editForm = this.fb.group({ id: [], code: [null, [Validators.required]], description: [], - bpmn: [], + configuration: [], + deployment: [], }); - constructor(protected strategyService: StrategyService, protected activatedRoute: ActivatedRoute, protected fb: FormBuilder) {} + constructor( + protected dataUtils: DataUtils, + protected eventManager: EventManager, + protected strategyService: StrategyService, + protected deploymentService: DeploymentService, + protected activatedRoute: ActivatedRoute, + protected fb: FormBuilder + ) {} ngOnInit(): void { this.activatedRoute.data.subscribe(({ strategy }) => { this.updateForm(strategy); + + this.loadRelationshipsOptions(); + }); + } + + byteSize(base64String: string): string { + return this.dataUtils.byteSize(base64String); + } + + openFile(base64String: string, contentType: string | null | undefined): void { + this.dataUtils.openFile(base64String, contentType); + } + + setFileData(event: Event, field: string, isImage: boolean): void { + this.dataUtils.loadFileToForm(event, this.editForm, field, isImage).subscribe({ + error: (err: FileLoadError) => + this.eventManager.broadcast(new EventWithContent<AlertError>('shGatewayApp.error', { ...err, key: 'error.file.' + err.key })), }); } @@ -44,6 +76,10 @@ export class StrategyUpdateComponent implements OnInit { } } + trackDeploymentById(index: number, item: IDeployment): number { + return item.id!; + } + protected subscribeToSaveResponse(result: Observable<HttpResponse<IStrategy>>): void { result.pipe(finalize(() => this.onSaveFinalize())).subscribe( () => this.onSaveSuccess(), @@ -68,8 +104,26 @@ export class StrategyUpdateComponent implements OnInit { id: strategy.id, code: strategy.code, description: strategy.description, - bpmn: strategy.bpmn, + configuration: strategy.configuration, + deployment: strategy.deployment, }); + + this.deploymentsSharedCollection = this.deploymentService.addDeploymentToCollectionIfMissing( + this.deploymentsSharedCollection, + strategy.deployment + ); + } + + protected loadRelationshipsOptions(): void { + this.deploymentService + .query() + .pipe(map((res: HttpResponse<IDeployment[]>) => res.body ?? [])) + .pipe( + map((deployments: IDeployment[]) => + this.deploymentService.addDeploymentToCollectionIfMissing(deployments, this.editForm.get('deployment')!.value) + ) + ) + .subscribe((deployments: IDeployment[]) => (this.deploymentsSharedCollection = deployments)); } protected createFromForm(): IStrategy { @@ -78,7 +132,8 @@ export class StrategyUpdateComponent implements OnInit { id: this.editForm.get(['id'])!.value, code: this.editForm.get(['code'])!.value, description: this.editForm.get(['description'])!.value, - bpmn: this.editForm.get(['bpmn'])!.value, + configuration: this.editForm.get(['configuration'])!.value, + deployment: this.editForm.get(['deployment'])!.value, }; } } diff --git a/git/sh-gateway/src/main/webapp/app/home/home.component.html b/git/sh-gateway/src/main/webapp/app/home/home.component.html index 8bee1fb971747c7438c1516d6f8b55212e6f0896..eac646110c70511c9ea9ba21f52eccfa9fb8aeec 100644 --- a/git/sh-gateway/src/main/webapp/app/home/home.component.html +++ b/git/sh-gateway/src/main/webapp/app/home/home.component.html @@ -3,21 +3,23 @@ <h1 class="display-4"><span>Welcome!</span> (Self Healing Test Gateway)</h1> <div [ngSwitch]="account !== null"> <div class="alert alert-success" *ngSwitchCase="true"> - <span id="home-logged-message" *ngIf="account">You are logged in as user "{{ account.login }}".</span> + <span id="home-logged-message" *ngIf="account" jhiTranslate="home.logged.message" [translateValues]="{ username: account.login }" + >You are logged in as user "{{ account.login }}".</span + > </div> <div class="alert alert-warning" *ngSwitchCase="false"> - <span>If you want to </span> - <a class="alert-link" (click)="login()">sign in</a - ><span + <span jhiTranslate="global.messages.info.authenticated.prefix">If you want to </span> + <a class="alert-link" (click)="login()" jhiTranslate="global.messages.info.authenticated.link">sign in</a + ><span jhiTranslate="global.messages.info.authenticated.suffix" >, you can try the default accounts:<br />- Administrator (login="admin" and password="admin") <br />- User (login="user" and password="user").</span > </div> <div class="alert alert-warning" *ngSwitchCase="false"> - <span>You don't have an account yet?</span> - <a class="alert-link" routerLink="account/register">Register a new account</a> + <span jhiTranslate="global.messages.info.register.noaccount">You don't have an account yet?</span> + <a class="alert-link" routerLink="account/register" jhiTranslate="global.messages.info.register.link">Register a new account</a> </div> </div> </div> diff --git a/git/sh-gateway/src/main/webapp/app/home/home.component.scss b/git/sh-gateway/src/main/webapp/app/home/home.component.scss index 5a70609d373cf817f2e45d558cb47f1f0eea384e..e61f621fccb0a1dcc95cadbd422265f7c0fae115 100644 --- a/git/sh-gateway/src/main/webapp/app/home/home.component.scss +++ b/git/sh-gateway/src/main/webapp/app/home/home.component.scss @@ -1,23 +1,23 @@ /* ========================================================================== Main page styles -========================================================================== +========================================================================== */ .hipster { display: inline-block; width: 347px; height: 497px; - background: url('../../content/images/jhipster_family_member_2.svg') no-repeat center top; + background: url('../../content/images/jhipster_family_member_3.svg') no-repeat center top; background-size: contain; } +/* wait autoprefixer update to allow simple generation of high pixel density media query */ @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-moz-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { .hipster { - background: url('../../content/images/jhipster_family_member_2.svg') no-repeat center top; + background: url('../../content/images/jhipster_family_member_3.svg') no-repeat center top; background-size: contain; } } -*/ \ No newline at end of file diff --git a/git/sh-gateway/src/main/webapp/app/home/home.route.ts b/git/sh-gateway/src/main/webapp/app/home/home.route.ts index afe6735aff9e5fcd1f3bf49566d606a018a0e897..213002d1969314b0b11e70aaac8e3b0f22e60b13 100644 --- a/git/sh-gateway/src/main/webapp/app/home/home.route.ts +++ b/git/sh-gateway/src/main/webapp/app/home/home.route.ts @@ -6,6 +6,6 @@ export const HOME_ROUTE: Route = { path: '', component: HomeComponent, data: { - pageTitle: 'Welcome, Java Hipster!', + pageTitle: 'home.title', }, }; diff --git a/git/sh-gateway/src/main/webapp/app/layouts/error/error.component.html b/git/sh-gateway/src/main/webapp/app/layouts/error/error.component.html index 9b10dac8d71b197020092ec883e53d62a15a971c..570dd100e5549fcf3469eb12d49e930ddb9ba866 100644 --- a/git/sh-gateway/src/main/webapp/app/layouts/error/error.component.html +++ b/git/sh-gateway/src/main/webapp/app/layouts/error/error.component.html @@ -5,7 +5,7 @@ </div> <div class="col-md-8"> - <h1>Error Page!</h1> + <h1 jhiTranslate="error.title">Error Page!</h1> <div *ngIf="errorMessage"> <div class="alert alert-danger">{{ errorMessage }}</div> diff --git a/git/sh-gateway/src/main/webapp/app/layouts/error/error.component.ts b/git/sh-gateway/src/main/webapp/app/layouts/error/error.component.ts index 011feae694b4dfaecaa7bf5b18fe7d770f7a01f3..86ba97826ae02dbd3017e51a2dcffe26618fcf29 100644 --- a/git/sh-gateway/src/main/webapp/app/layouts/error/error.component.ts +++ b/git/sh-gateway/src/main/webapp/app/layouts/error/error.component.ts @@ -1,20 +1,41 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, OnDestroy } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; +import { Subscription } from 'rxjs'; +import { TranslateService } from '@ngx-translate/core'; @Component({ selector: 'jhi-error', templateUrl: './error.component.html', }) -export class ErrorComponent implements OnInit { +export class ErrorComponent implements OnInit, OnDestroy { errorMessage?: string; + errorKey?: string; + langChangeSubscription?: Subscription; - constructor(private route: ActivatedRoute) {} + constructor(private translateService: TranslateService, private route: ActivatedRoute) {} ngOnInit(): void { this.route.data.subscribe(routeData => { if (routeData.errorMessage) { - this.errorMessage = routeData.errorMessage; + this.errorKey = routeData.errorMessage; + this.getErrorMessageTranslation(); + this.langChangeSubscription = this.translateService.onLangChange.subscribe(() => this.getErrorMessageTranslation()); } }); } + + ngOnDestroy(): void { + if (this.langChangeSubscription) { + this.langChangeSubscription.unsubscribe(); + } + } + + private getErrorMessageTranslation(): void { + this.errorMessage = ''; + if (this.errorKey) { + this.translateService.get(this.errorKey).subscribe(translatedErrorMessage => { + this.errorMessage = translatedErrorMessage; + }); + } + } } diff --git a/git/sh-gateway/src/main/webapp/app/layouts/error/error.route.ts b/git/sh-gateway/src/main/webapp/app/layouts/error/error.route.ts index d6c2169a6c364e32ffb9936900c02deb7b506fc3..a857401998bc3b2af06e16fc723a48b2a8ef372b 100644 --- a/git/sh-gateway/src/main/webapp/app/layouts/error/error.route.ts +++ b/git/sh-gateway/src/main/webapp/app/layouts/error/error.route.ts @@ -7,23 +7,23 @@ export const errorRoute: Routes = [ path: 'error', component: ErrorComponent, data: { - pageTitle: 'Error page!', + pageTitle: 'error.title', }, }, { path: 'accessdenied', component: ErrorComponent, data: { - pageTitle: 'Error page!', - errorMessage: 'You are not authorized to access this page.', + pageTitle: 'error.title', + errorMessage: 'error.http.403', }, }, { path: '404', component: ErrorComponent, data: { - pageTitle: 'Error page!', - errorMessage: 'The page does not exist.', + pageTitle: 'error.title', + errorMessage: 'error.http.404', }, }, { diff --git a/git/sh-gateway/src/main/webapp/app/layouts/main/main.component.html b/git/sh-gateway/src/main/webapp/app/layouts/main/main.component.html index 304826e7598c9036adda422b694690574435f7f1..3ac9be942b1b59b899ba252f19b94051c7053ccd 100644 --- a/git/sh-gateway/src/main/webapp/app/layouts/main/main.component.html +++ b/git/sh-gateway/src/main/webapp/app/layouts/main/main.component.html @@ -8,5 +8,6 @@ <div class="card jh-card"> <router-outlet></router-outlet> </div> + + <jhi-footer></jhi-footer> </div> -<jhi-footer></jhi-footer> diff --git a/git/sh-gateway/src/main/webapp/app/layouts/main/main.component.spec.ts b/git/sh-gateway/src/main/webapp/app/layouts/main/main.component.spec.ts index 8429488a0f755ced1f911534de6ed750229f60d1..2940f969e068a340f6454463edfdf32d0e2873fd 100644 --- a/git/sh-gateway/src/main/webapp/app/layouts/main/main.component.spec.ts +++ b/git/sh-gateway/src/main/webapp/app/layouts/main/main.component.spec.ts @@ -4,6 +4,7 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { Router, RouterEvent, NavigationEnd, NavigationStart } from '@angular/router'; import { Title } from '@angular/platform-browser'; import { Subject, of } from 'rxjs'; +import { TranslateModule, TranslateService, LangChangeEvent } from '@ngx-translate/core'; import { AccountService } from 'app/core/auth/account.service'; @@ -14,6 +15,7 @@ describe('Component Tests', () => { let comp: MainComponent; let fixture: ComponentFixture<MainComponent>; let titleService: Title; + let translateService: TranslateService; let mockAccountService: AccountService; const routerEventsSubject = new Subject<RouterEvent>(); const routerState: any = { snapshot: { root: { data: {} } } }; @@ -25,6 +27,7 @@ describe('Component Tests', () => { beforeEach( waitForAsync(() => { TestBed.configureTestingModule({ + imports: [TranslateModule.forRoot()], declarations: [MainComponent], providers: [ Title, @@ -44,20 +47,24 @@ describe('Component Tests', () => { fixture = TestBed.createComponent(MainComponent); comp = fixture.componentInstance; titleService = TestBed.inject(Title); + translateService = TestBed.inject(TranslateService); mockAccountService = TestBed.inject(AccountService); mockAccountService.identity = jest.fn(() => of(null)); mockAccountService.getAuthenticationState = jest.fn(() => of(null)); }); describe('page title', () => { - const defaultPageTitle = 'Self Healing Gateway'; + const defaultPageTitle = 'global.title'; const parentRoutePageTitle = 'parentTitle'; const childRoutePageTitle = 'childTitle'; const navigationEnd = new NavigationEnd(1, '', ''); const navigationStart = new NavigationStart(1, ''); + const langChangeEvent: LangChangeEvent = { lang: 'en', translations: null }; beforeEach(() => { routerState.snapshot.root = { data: {} }; + jest.spyOn(translateService, 'get').mockImplementation((key: string | string[]) => of(`${key as string} translated`)); + translateService.currentLang = 'en'; jest.spyOn(titleService, 'setTitle'); comp.ngOnInit(); }); @@ -68,7 +75,8 @@ describe('Component Tests', () => { routerEventsSubject.next(navigationEnd); // THEN - expect(titleService.setTitle).toHaveBeenCalledWith(defaultPageTitle); + expect(translateService.get).toHaveBeenCalledWith(defaultPageTitle); + expect(titleService.setTitle).toHaveBeenCalledWith(defaultPageTitle + ' translated'); }); it('should set page title to root route pageTitle if there is no child routes', () => { @@ -79,7 +87,8 @@ describe('Component Tests', () => { routerEventsSubject.next(navigationEnd); // THEN - expect(titleService.setTitle).toHaveBeenCalledWith(parentRoutePageTitle); + expect(translateService.get).toHaveBeenCalledWith(parentRoutePageTitle); + expect(titleService.setTitle).toHaveBeenCalledWith(parentRoutePageTitle + ' translated'); }); it('should set page title to child route pageTitle if child routes exist and pageTitle is set for child route', () => { @@ -91,7 +100,8 @@ describe('Component Tests', () => { routerEventsSubject.next(navigationEnd); // THEN - expect(titleService.setTitle).toHaveBeenCalledWith(childRoutePageTitle); + expect(translateService.get).toHaveBeenCalledWith(childRoutePageTitle); + expect(titleService.setTitle).toHaveBeenCalledWith(childRoutePageTitle + ' translated'); }); it('should set page title to parent route pageTitle if child routes exists but pageTitle is not set for child route data', () => { @@ -103,7 +113,8 @@ describe('Component Tests', () => { routerEventsSubject.next(navigationEnd); // THEN - expect(titleService.setTitle).toHaveBeenCalledWith(parentRoutePageTitle); + expect(translateService.get).toHaveBeenCalledWith(parentRoutePageTitle); + expect(titleService.setTitle).toHaveBeenCalledWith(parentRoutePageTitle + ' translated'); }); }); @@ -116,6 +127,74 @@ describe('Component Tests', () => { expect(titleService.setTitle).not.toHaveBeenCalled(); }); }); + + describe('language change', () => { + it('should set page title to default title if pageTitle is missing on routes', () => { + // WHEN + translateService.onLangChange.emit(langChangeEvent); + + // THEN + expect(translateService.get).toHaveBeenCalledWith(defaultPageTitle); + expect(titleService.setTitle).toHaveBeenCalledWith(defaultPageTitle + ' translated'); + }); + + it('should set page title to root route pageTitle if there is no child routes', () => { + // GIVEN + routerState.snapshot.root.data = { pageTitle: parentRoutePageTitle }; + + // WHEN + translateService.onLangChange.emit(langChangeEvent); + + // THEN + expect(translateService.get).toHaveBeenCalledWith(parentRoutePageTitle); + expect(titleService.setTitle).toHaveBeenCalledWith(parentRoutePageTitle + ' translated'); + }); + + it('should set page title to child route pageTitle if child routes exist and pageTitle is set for child route', () => { + // GIVEN + routerState.snapshot.root.data = { pageTitle: parentRoutePageTitle }; + routerState.snapshot.root.firstChild = { data: { pageTitle: childRoutePageTitle } }; + + // WHEN + translateService.onLangChange.emit(langChangeEvent); + + // THEN + expect(translateService.get).toHaveBeenCalledWith(childRoutePageTitle); + expect(titleService.setTitle).toHaveBeenCalledWith(childRoutePageTitle + ' translated'); + }); + + it('should set page title to parent route pageTitle if child routes exists but pageTitle is not set for child route data', () => { + // GIVEN + routerState.snapshot.root.data = { pageTitle: parentRoutePageTitle }; + routerState.snapshot.root.firstChild = { data: {} }; + + // WHEN + translateService.onLangChange.emit(langChangeEvent); + + // THEN + expect(translateService.get).toHaveBeenCalledWith(parentRoutePageTitle); + expect(titleService.setTitle).toHaveBeenCalledWith(parentRoutePageTitle + ' translated'); + }); + }); + }); + + describe('page language attribute', () => { + it('should change page language attribute on language change', () => { + // GIVEN + comp.ngOnInit(); + + // WHEN + translateService.onLangChange.emit({ lang: 'lang1', translations: null }); + + // THEN + expect(document.querySelector('html')?.getAttribute('lang')).toEqual('lang1'); + + // WHEN + translateService.onLangChange.emit({ lang: 'lang2', translations: null }); + + // THEN + expect(document.querySelector('html')?.getAttribute('lang')).toEqual('lang2'); + }); }); }); }); diff --git a/git/sh-gateway/src/main/webapp/app/layouts/main/main.component.ts b/git/sh-gateway/src/main/webapp/app/layouts/main/main.component.ts index 3b8f14ba11b351fe5fa439b4b8bf82666cc478af..634507321a0e24fbd3684ac8ab85bb74c08d76c1 100644 --- a/git/sh-gateway/src/main/webapp/app/layouts/main/main.component.ts +++ b/git/sh-gateway/src/main/webapp/app/layouts/main/main.component.ts @@ -1,6 +1,8 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, RendererFactory2, Renderer2 } from '@angular/core'; import { Title } from '@angular/platform-browser'; import { Router, ActivatedRouteSnapshot, NavigationEnd } from '@angular/router'; +import { TranslateService, LangChangeEvent } from '@ngx-translate/core'; +import * as dayjs from 'dayjs'; import { AccountService } from 'app/core/auth/account.service'; @@ -9,7 +11,17 @@ import { AccountService } from 'app/core/auth/account.service'; templateUrl: './main.component.html', }) export class MainComponent implements OnInit { - constructor(private accountService: AccountService, private titleService: Title, private router: Router) {} + private renderer: Renderer2; + + constructor( + private accountService: AccountService, + private titleService: Title, + private router: Router, + private translateService: TranslateService, + rootRenderer: RendererFactory2 + ) { + this.renderer = rootRenderer.createRenderer(document.querySelector('html'), null); + } ngOnInit(): void { // try to log in automatically @@ -20,6 +32,12 @@ export class MainComponent implements OnInit { this.updateTitle(); } }); + + this.translateService.onLangChange.subscribe((langChangeEvent: LangChangeEvent) => { + this.updateTitle(); + dayjs.locale(langChangeEvent.lang); + this.renderer.setAttribute(document.querySelector('html'), 'lang', langChangeEvent.lang); + }); } private getPageTitle(routeSnapshot: ActivatedRouteSnapshot): string { @@ -33,8 +51,8 @@ export class MainComponent implements OnInit { private updateTitle(): void { let pageTitle = this.getPageTitle(this.router.routerState.snapshot.root); if (!pageTitle) { - pageTitle = 'Self Healing Gateway'; + pageTitle = 'global.title'; } - this.titleService.setTitle(pageTitle); + this.translateService.get(pageTitle).subscribe(title => this.titleService.setTitle(title)); } } diff --git a/git/sh-gateway/src/main/webapp/app/layouts/navbar/active-menu.directive.ts b/git/sh-gateway/src/main/webapp/app/layouts/navbar/active-menu.directive.ts new file mode 100644 index 0000000000000000000000000000000000000000..6150841e01104e9dbe7bc292ca7f174bb2e1ef91 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/layouts/navbar/active-menu.directive.ts @@ -0,0 +1,27 @@ +import { Directive, OnInit, ElementRef, Renderer2, Input } from '@angular/core'; +import { TranslateService, LangChangeEvent } from '@ngx-translate/core'; + +@Directive({ + selector: '[jhiActiveMenu]', +}) +export class ActiveMenuDirective implements OnInit { + @Input() jhiActiveMenu?: string; + + constructor(private el: ElementRef, private renderer: Renderer2, private translateService: TranslateService) {} + + ngOnInit(): void { + this.translateService.onLangChange.subscribe((event: LangChangeEvent) => { + this.updateActiveFlag(event.lang); + }); + + this.updateActiveFlag(this.translateService.currentLang); + } + + updateActiveFlag(selectedLanguage: string): void { + if (this.jhiActiveMenu === selectedLanguage) { + this.renderer.addClass(this.el.nativeElement, 'active'); + } else { + this.renderer.removeClass(this.el.nativeElement, 'active'); + } + } +} diff --git a/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.html b/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.html index fe4afc08ec1e4bc9fb3bc1946adc29cc8a9560d3..905abcbba640340bc4f166e31252137789f124c9 100644 --- a/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.html +++ b/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.html @@ -1,7 +1,7 @@ <nav data-cy="navbar" class="navbar navbar-dark navbar-expand-md bg-dark"> <a class="navbar-brand logo" routerLink="/" (click)="collapseNavbar()"> <span class="logo-img"></span> - <span class="navbar-title">Self Healing Test Gateway</span> + <span jhiTranslate="global.title" class="navbar-title">ShGateway</span> <span class="navbar-version">{{ version }}</span> </a> <a @@ -22,7 +22,7 @@ <a class="nav-link" routerLink="/" (click)="collapseNavbar()"> <span> <fa-icon icon="home"></fa-icon> - <span>Home</span> + <span jhiTranslate="global.menu.home">Home</span> </span> </a> </li> @@ -38,7 +38,7 @@ <a class="nav-link dropdown-toggle" ngbDropdownToggle href="javascript:void(0);" id="entity-menu" data-cy="entity"> <span> <fa-icon icon="th-list"></fa-icon> - <span>Entities</span> + <span jhiTranslate="global.menu.entities.main">Entities</span> </span> </a> <ul class="dropdown-menu" ngbDropdownMenu aria-labelledby="entity-menu"> @@ -51,7 +51,7 @@ (click)="collapseNavbar()" > <fa-icon icon="asterisk" [fixedWidth]="true"></fa-icon> - <span>Self Healing Messages</span> + <span jhiTranslate="global.menu.entities.shBackendSelfHealingMessage">Self Healing Message</span> </a> </li> <li> @@ -63,7 +63,7 @@ (click)="collapseNavbar()" > <fa-icon icon="asterisk" [fixedWidth]="true"></fa-icon> - <span>Event Types</span> + <span jhiTranslate="global.menu.entities.shBackendEventType">Event Type</span> </a> </li> <li> @@ -75,7 +75,31 @@ (click)="collapseNavbar()" > <fa-icon icon="asterisk" [fixedWidth]="true"></fa-icon> - <span>Strategy</span> + <span jhiTranslate="global.menu.entities.shBackendStrategy">Strategy</span> + </a> + </li> + <li> + <a + class="dropdown-item" + routerLink="deployment" + routerLinkActive="active" + [routerLinkActiveOptions]="{ exact: true }" + (click)="collapseNavbar()" + > + <fa-icon icon="asterisk" [fixedWidth]="true"></fa-icon> + <span jhiTranslate="global.menu.entities.shBackendDeployment">Deployment</span> + </a> + </li> + <li> + <a + class="dropdown-item" + routerLink="strategy-application" + routerLinkActive="active" + [routerLinkActiveOptions]="{ exact: true }" + (click)="collapseNavbar()" + > + <fa-icon icon="asterisk" [fixedWidth]="true"></fa-icon> + <span jhiTranslate="global.menu.entities.shBackendStrategyApplication">Strategy Application</span> </a> </li> <!-- jhipster-needle-add-entity-to-menu - JHipster will add entities to the menu here --> @@ -92,31 +116,74 @@ <a class="nav-link dropdown-toggle" ngbDropdownToggle href="javascript:void(0);" id="admin-menu" data-cy="adminMenu"> <span> <fa-icon icon="users-cog"></fa-icon> - <span>Administration</span> + <span jhiTranslate="global.menu.admin.main">Administration</span> </span> </a> <ul class="dropdown-menu" ngbDropdownMenu aria-labelledby="admin-menu"> <li> <a class="dropdown-item" routerLink="admin/gateway" routerLinkActive="active" (click)="collapseNavbar()"> <fa-icon icon="road" [fixedWidth]="true"></fa-icon> - <span>Gateway</span> + <span jhiTranslate="global.menu.admin.gateway">Gateway</span> </a> </li> <li> <a class="dropdown-item" routerLink="admin/user-management" routerLinkActive="active" (click)="collapseNavbar()"> <fa-icon icon="users" [fixedWidth]="true"></fa-icon> - <span>User management</span> + <span jhiTranslate="global.menu.admin.userManagement">User management</span> + </a> + </li> + <li> + <a class="dropdown-item" routerLink="admin/metrics" routerLinkActive="active" (click)="collapseNavbar()"> + <fa-icon icon="tachometer-alt" [fixedWidth]="true"></fa-icon> + <span jhiTranslate="global.menu.admin.metrics">Metrics</span> + </a> + </li> + <li> + <a class="dropdown-item" routerLink="admin/health" routerLinkActive="active" (click)="collapseNavbar()"> + <fa-icon icon="heart" [fixedWidth]="true"></fa-icon> + <span jhiTranslate="global.menu.admin.health">Health</span> + </a> + </li> + <li> + <a class="dropdown-item" routerLink="admin/configuration" routerLinkActive="active" (click)="collapseNavbar()"> + <fa-icon icon="cogs" [fixedWidth]="true"></fa-icon> + <span jhiTranslate="global.menu.admin.configuration">Configuration</span> + </a> + </li> + <li> + <a class="dropdown-item" routerLink="admin/logs" routerLinkActive="active" (click)="collapseNavbar()"> + <fa-icon icon="tasks" [fixedWidth]="true"></fa-icon> + <span jhiTranslate="global.menu.admin.logs">Logs</span> </a> </li> <li *ngIf="openAPIEnabled"> <a class="dropdown-item" routerLink="admin/docs" routerLinkActive="active" (click)="collapseNavbar()"> <fa-icon icon="book" [fixedWidth]="true"></fa-icon> - <span>API</span> + <span jhiTranslate="global.menu.admin.apidocs">API</span> </a> </li> <!-- jhipster-needle-add-element-to-admin-menu - JHipster will add entities to the admin menu here --> </ul> </li> + <li ngbDropdown class="nav-item dropdown pointer" display="dynamic" *ngIf="languages && languages.length > 1"> + <a class="nav-link dropdown-toggle" ngbDropdownToggle href="javascript:void(0);" id="languagesnavBarDropdown"> + <span> + <fa-icon icon="flag"></fa-icon> + <span jhiTranslate="global.menu.language">Language</span> + </span> + </a> + <ul class="dropdown-menu" ngbDropdownMenu aria-labelledby="languagesnavBarDropdown"> + <li *ngFor="let language of languages"> + <a + class="dropdown-item" + [jhiActiveMenu]="language" + href="javascript:void(0);" + (click)="changeLanguage(language); collapseNavbar()" + >{{ language | findLanguageFromKey }}</a + > + </li> + </ul> + </li> <li ngbDropdown class="nav-item dropdown pointer" @@ -127,7 +194,7 @@ <a class="nav-link dropdown-toggle" ngbDropdownToggle href="javascript:void(0);" id="account-menu" data-cy="accountMenu"> <span *ngIf="!account?.imageUrl"> <fa-icon icon="user"></fa-icon> - <span>Account</span> + <span jhiTranslate="global.menu.account.main">Account</span> </span> <span *ngIf="account?.imageUrl"> <img [src]="account!.imageUrl" class="profile-image rounded-circle" alt="Avatar" /> @@ -137,7 +204,7 @@ <li *ngSwitchCase="true"> <a class="dropdown-item" routerLink="account/settings" routerLinkActive="active" (click)="collapseNavbar()" data-cy="settings"> <fa-icon icon="wrench" [fixedWidth]="true"></fa-icon> - <span>Settings</span> + <span jhiTranslate="global.menu.account.settings">Settings</span> </a> </li> <li *ngSwitchCase="true"> @@ -149,25 +216,25 @@ data-cy="passwordItem" > <fa-icon icon="lock" [fixedWidth]="true"></fa-icon> - <span>Password</span> + <span jhiTranslate="global.menu.account.password">Password</span> </a> </li> <li *ngSwitchCase="true"> <a class="dropdown-item" (click)="logout()" id="logout" data-cy="logout"> <fa-icon icon="sign-out-alt" [fixedWidth]="true"></fa-icon> - <span>Sign out</span> + <span jhiTranslate="global.menu.account.logout">Sign out</span> </a> </li> <li *ngSwitchCase="false"> <a class="dropdown-item" (click)="login()" id="login" data-cy="login"> <fa-icon icon="sign-in-alt" [fixedWidth]="true"></fa-icon> - <span>Sign in</span> + <span jhiTranslate="global.menu.account.login">Sign in</span> </a> </li> <li *ngSwitchCase="false"> <a class="dropdown-item" routerLink="account/register" routerLinkActive="active" (click)="collapseNavbar()" data-cy="register"> <fa-icon icon="user-plus" [fixedWidth]="true"></fa-icon> - <span>Register</span> + <span jhiTranslate="global.menu.account.register">Register</span> </a> </li> </ul> diff --git a/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.scss b/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.scss index cfef0ce2ec062c34aa6c537521e2c74ab8052bb0..41ae29e94e1ddef8a4aeb2d2427b3917b50df04a 100644 --- a/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.scss +++ b/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.scss @@ -40,4 +40,4 @@ Logo styles //background: url('../../../content/images/logo-jhipster.png') no-repeat center center; background: url('../../../content/images/PIACERE_logo.jpg') no-repeat center center; background-size: contain; -} \ No newline at end of file +} diff --git a/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts b/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts index 30426780e9039b58509ac7e308d74cf427d74643..3e2ec360143473976737c60fdcccdf29d68e4529 100644 --- a/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts +++ b/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts @@ -6,6 +6,7 @@ import { HttpClientTestingModule } from '@angular/common/http/testing'; import { Router } from '@angular/router'; import { of } from 'rxjs'; import { NgxWebstorageModule } from 'ngx-webstorage'; +import { TranslateModule } from '@ngx-translate/core'; import { ProfileInfo } from 'app/layouts/profiles/profile-info.model'; import { Account } from 'app/core/auth/account.model'; @@ -35,7 +36,7 @@ describe('Component Tests', () => { beforeEach( waitForAsync(() => { TestBed.configureTestingModule({ - imports: [HttpClientTestingModule, NgxWebstorageModule.forRoot()], + imports: [HttpClientTestingModule, NgxWebstorageModule.forRoot(), TranslateModule.forRoot()], declarations: [NavbarComponent], providers: [Router, LoginService], }) diff --git a/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.ts b/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.ts index cea589fa5c7cf429c761048fc4ae2e4a3aacd6f1..0a531748d1a814742a14ffaadd985461fdb986e9 100644 --- a/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.ts +++ b/git/sh-gateway/src/main/webapp/app/layouts/navbar/navbar.component.ts @@ -1,7 +1,10 @@ import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; +import { SessionStorageService } from 'ngx-webstorage'; import { VERSION } from 'app/app.constants'; +import { LANGUAGES } from 'app/config/language.constants'; import { Account } from 'app/core/auth/account.model'; import { AccountService } from 'app/core/auth/account.service'; import { LoginService } from 'app/login/login.service'; @@ -15,12 +18,15 @@ import { ProfileService } from 'app/layouts/profiles/profile.service'; export class NavbarComponent implements OnInit { inProduction?: boolean; isNavbarCollapsed = true; + languages = LANGUAGES; openAPIEnabled?: boolean; version = ''; account: Account | null = null; constructor( private loginService: LoginService, + private translateService: TranslateService, + private sessionStorageService: SessionStorageService, private accountService: AccountService, private profileService: ProfileService, private router: Router @@ -38,6 +44,11 @@ export class NavbarComponent implements OnInit { this.accountService.getAuthenticationState().subscribe(account => (this.account = account)); } + changeLanguage(languageKey: string): void { + this.sessionStorageService.store('locale', languageKey); + this.translateService.use(languageKey); + } + collapseNavbar(): void { this.isNavbarCollapsed = true; } diff --git a/git/sh-gateway/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts b/git/sh-gateway/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts index 5a8d5121a173315a039ae9ec1380566690a42134..24b87b541a6fe9b1bb2060af33e2235ca3f835a8 100644 --- a/git/sh-gateway/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts +++ b/git/sh-gateway/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts @@ -8,7 +8,7 @@ import { ProfileService } from './profile.service'; selector: 'jhi-page-ribbon', template: ` <div class="ribbon" *ngIf="ribbonEnv$ | async as ribbonEnv"> - <a href="">{{ ribbonEnv }}</a> + <a href="" jhiTranslate="global.ribbon.{{ ribbonEnv }}">{{ ribbonEnv }}</a> </div> `, styleUrls: ['./page-ribbon.component.scss'], diff --git a/git/sh-gateway/src/main/webapp/app/login/login.component.html b/git/sh-gateway/src/main/webapp/app/login/login.component.html index 7df83cbfc5fc9785d881f2ae394ca907b0b67daf..ff21a8180e31be133e4416b1749424eaaf4bdd62 100644 --- a/git/sh-gateway/src/main/webapp/app/login/login.component.html +++ b/git/sh-gateway/src/main/webapp/app/login/login.component.html @@ -1,19 +1,19 @@ <div> <div class="row justify-content-center"> <div class="col-lg-6 col-md-8 col-sm-10"> - <h1 data-cy="loginTitle">Sign in</h1> - <div class="alert alert-danger" *ngIf="authenticationError" data-cy="loginError"> + <h1 jhiTranslate="login.title" data-cy="loginTitle">Sign in</h1> + <div class="alert alert-danger" *ngIf="authenticationError" jhiTranslate="login.messages.error.authentication" data-cy="loginError"> <strong>Failed to sign in!</strong> Please check your credentials and try again. </div> <form class="form" role="form" (ngSubmit)="login()" [formGroup]="loginForm"> <div class="form-group"> - <label class="username-label" for="username">Login</label> + <label class="username-label" for="username" jhiTranslate="global.form.username.label">Login</label> <input type="text" class="form-control" name="username" id="username" - placeholder="Your username" + placeholder="{{ 'global.form.username.placeholder' | translate }}" formControlName="username" #username data-cy="username" @@ -21,13 +21,13 @@ </div> <div class="form-group"> - <label for="password">Password</label> + <label for="password" jhiTranslate="login.form.password">Password</label> <input type="password" class="form-control" name="password" id="password" - placeholder="Your password" + placeholder="{{ 'login.form.password.placeholder' | translate }}" formControlName="password" data-cy="password" /> @@ -36,19 +36,21 @@ <div class="form-check"> <label class="form-check-label" for="rememberMe"> <input class="form-check-input" type="checkbox" name="rememberMe" id="rememberMe" formControlName="rememberMe" /> - <span>Remember me</span> + <span jhiTranslate="login.form.rememberme">Remember me</span> </label> </div> - <button type="submit" class="btn btn-primary" data-cy="submit">Sign in</button> + <button type="submit" class="btn btn-primary" jhiTranslate="login.form.button" data-cy="submit">Sign in</button> </form> <div class="mt-3 alert alert-warning"> - <a class="alert-link" routerLink="/account/reset/request" data-cy="forgetYourPasswordSelector">Did you forget your password?</a> + <a class="alert-link" routerLink="/account/reset/request" jhiTranslate="login.password.forgot" data-cy="forgetYourPasswordSelector" + >Did you forget your password?</a + > </div> <div class="alert alert-warning"> - <span>You don't have an account yet?</span> - <a class="alert-link" routerLink="/account/register">Register a new account</a> + <span jhiTranslate="global.messages.info.register.noaccount">You don't have an account yet?</span> + <a class="alert-link" routerLink="/account/register" jhiTranslate="global.messages.info.register.link">Register a new account</a> </div> </div> </div> diff --git a/git/sh-gateway/src/main/webapp/app/login/login.route.ts b/git/sh-gateway/src/main/webapp/app/login/login.route.ts index cd0554f1763291142618c40823d8b2e81ed81517..002cc9dc4a47b228ddf1ac85e84d6e08d8241407 100644 --- a/git/sh-gateway/src/main/webapp/app/login/login.route.ts +++ b/git/sh-gateway/src/main/webapp/app/login/login.route.ts @@ -6,6 +6,6 @@ export const LOGIN_ROUTE: Route = { path: '', component: LoginComponent, data: { - pageTitle: 'Sign in', + pageTitle: 'login.title', }, }; diff --git a/git/sh-gateway/src/main/webapp/app/shared/alert/alert-error.component.spec.ts b/git/sh-gateway/src/main/webapp/app/shared/alert/alert-error.component.spec.ts index 44f2cd48cd5ed5d490dbf328e6acd5facdc3b5fe..4c6cdefda4e527d8c66cfeecb36104d890887509 100644 --- a/git/sh-gateway/src/main/webapp/app/shared/alert/alert-error.component.spec.ts +++ b/git/sh-gateway/src/main/webapp/app/shared/alert/alert-error.component.spec.ts @@ -1,5 +1,6 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { HttpErrorResponse, HttpHeaders } from '@angular/common/http'; +import { TranslateModule } from '@ngx-translate/core'; import { EventManager } from 'app/core/util/event-manager.service'; import { Alert, AlertService } from 'app/core/util/alert.service'; @@ -16,6 +17,7 @@ describe('Component Tests', () => { beforeEach( waitForAsync(() => { TestBed.configureTestingModule({ + imports: [TranslateModule.forRoot()], declarations: [AlertErrorComponent], providers: [EventManager, AlertService], }) @@ -40,28 +42,28 @@ describe('Component Tests', () => { describe('Error Handling', () => { it('Should display an alert on status 0', () => { // GIVEN - eventManager.broadcast({ name: 'selfHealingGatewayApp.httpError', content: { status: 0 } }); + eventManager.broadcast({ name: 'shGatewayApp.httpError', content: { status: 0 } }); // THEN expect(comp.alerts.length).toBe(1); - expect(comp.alerts[0].message).toBe('Server not reachable'); + expect(comp.alerts[0].translationKey).toBe('error.server.not.reachable'); }); it('Should display an alert on status 404', () => { // GIVEN - eventManager.broadcast({ name: 'selfHealingGatewayApp.httpError', content: { status: 404 } }); + eventManager.broadcast({ name: 'shGatewayApp.httpError', content: { status: 404 } }); // THEN expect(comp.alerts.length).toBe(1); - expect(comp.alerts[0].message).toBe('Not found'); + expect(comp.alerts[0].translationKey).toBe('error.url.not.found'); }); it('Should display an alert on generic error', () => { // GIVEN - eventManager.broadcast({ name: 'selfHealingGatewayApp.httpError', content: { error: { message: 'Error Message' } } }); - eventManager.broadcast({ name: 'selfHealingGatewayApp.httpError', content: { error: 'Second Error Message' } }); + eventManager.broadcast({ name: 'shGatewayApp.httpError', content: { error: { message: 'Error Message' } } }); + eventManager.broadcast({ name: 'shGatewayApp.httpError', content: { error: 'Second Error Message' } }); // THEN expect(comp.alerts.length).toBe(2); - expect(comp.alerts[0].message).toBe('Error Message'); - expect(comp.alerts[1].message).toBe('Second Error Message'); + expect(comp.alerts[0].translationKey).toBe('Error Message'); + expect(comp.alerts[1].translationKey).toBe('Second Error Message'); }); it('Should display an alert on status 400 for generic error', () => { @@ -79,10 +81,10 @@ describe('Component Tests', () => { message: 'error.validation', }, }); - eventManager.broadcast({ name: 'selfHealingGatewayApp.httpError', content: response }); + eventManager.broadcast({ name: 'shGatewayApp.httpError', content: response }); // THEN expect(comp.alerts.length).toBe(1); - expect(comp.alerts[0].message).toBe('error.validation'); + expect(comp.alerts[0].translationKey).toBe('error.validation'); }); it('Should display an alert on status 400 for generic error without message', () => { @@ -93,10 +95,10 @@ describe('Component Tests', () => { status: 400, error: 'Bad Request', }); - eventManager.broadcast({ name: 'selfHealingGatewayApp.httpError', content: response }); + eventManager.broadcast({ name: 'shGatewayApp.httpError', content: response }); // THEN expect(comp.alerts.length).toBe(1); - expect(comp.alerts[0].message).toBe('Bad Request'); + expect(comp.alerts[0].translationKey).toBe('Bad Request'); }); it('Should display an alert on status 400 for invalid parameters', () => { @@ -115,10 +117,10 @@ describe('Component Tests', () => { fieldErrors: [{ objectName: 'foo', field: 'minField', message: 'Min' }], }, }); - eventManager.broadcast({ name: 'selfHealingGatewayApp.httpError', content: response }); + eventManager.broadcast({ name: 'shGatewayApp.httpError', content: response }); // THEN expect(comp.alerts.length).toBe(1); - expect(comp.alerts[0].message).toBe('Error on field "MinField"'); + expect(comp.alerts[0].translationKey).toBe('error.Size'); }); it('Should display an alert on status 400 for error headers', () => { @@ -133,10 +135,10 @@ describe('Component Tests', () => { message: 'error.validation', }, }); - eventManager.broadcast({ name: 'selfHealingGatewayApp.httpError', content: response }); + eventManager.broadcast({ name: 'shGatewayApp.httpError', content: response }); // THEN expect(comp.alerts.length).toBe(1); - expect(comp.alerts[0].message).toBe('Error Message'); + expect(comp.alerts[0].translationKey).toBe('Error Message'); }); it('Should display an alert on status 500 with detail', () => { @@ -152,10 +154,10 @@ describe('Component Tests', () => { detail: 'Detailed error message', }, }); - eventManager.broadcast({ name: 'selfHealingGatewayApp.httpError', content: response }); + eventManager.broadcast({ name: 'shGatewayApp.httpError', content: response }); // THEN expect(comp.alerts.length).toBe(1); - expect(comp.alerts[0].message).toBe('Detailed error message'); + expect(comp.alerts[0].translationKey).toBe('error.http.500'); }); }); }); diff --git a/git/sh-gateway/src/main/webapp/app/shared/alert/alert-error.component.ts b/git/sh-gateway/src/main/webapp/app/shared/alert/alert-error.component.ts index f9def714a8b085f0541b50f285f070c7db1e1a58..d3791bf1e00194b1418940b4d3b06ccef490b37b 100644 --- a/git/sh-gateway/src/main/webapp/app/shared/alert/alert-error.component.ts +++ b/git/sh-gateway/src/main/webapp/app/shared/alert/alert-error.component.ts @@ -1,6 +1,7 @@ import { Component, OnDestroy } from '@angular/core'; import { HttpErrorResponse } from '@angular/common/http'; import { Subscription } from 'rxjs'; +import { TranslateService } from '@ngx-translate/core'; import { AlertError } from './alert-error.model'; import { Alert, AlertService } from 'app/core/util/alert.service'; @@ -15,30 +16,34 @@ export class AlertErrorComponent implements OnDestroy { errorListener: Subscription; httpErrorListener: Subscription; - constructor(private alertService: AlertService, private eventManager: EventManager) { - this.errorListener = eventManager.subscribe('selfHealingGatewayApp.error', (response: EventWithContent<unknown> | string) => { + constructor(private alertService: AlertService, private eventManager: EventManager, translateService: TranslateService) { + this.errorListener = eventManager.subscribe('shGatewayApp.error', (response: EventWithContent<unknown> | string) => { const errorResponse = (response as EventWithContent<AlertError>).content; - this.addErrorAlert(errorResponse.message); + this.addErrorAlert(errorResponse.message, errorResponse.key, errorResponse.params); }); - this.httpErrorListener = eventManager.subscribe('selfHealingGatewayApp.httpError', (response: EventWithContent<unknown> | string) => { + this.httpErrorListener = eventManager.subscribe('shGatewayApp.httpError', (response: EventWithContent<unknown> | string) => { const httpErrorResponse = (response as EventWithContent<HttpErrorResponse>).content; switch (httpErrorResponse.status) { // connection refused, server not reachable case 0: - this.addErrorAlert('Server not reachable'); + this.addErrorAlert('Server not reachable', 'error.server.not.reachable'); break; case 400: { const arr = httpErrorResponse.headers.keys(); let errorHeader: string | null = null; + let entityKey: string | null = null; for (const entry of arr) { if (entry.toLowerCase().endsWith('app-error')) { errorHeader = httpErrorResponse.headers.get(entry); + } else if (entry.toLowerCase().endsWith('app-params')) { + entityKey = httpErrorResponse.headers.get(entry); } } if (errorHeader) { - this.addErrorAlert(errorHeader); + const alertData = entityKey ? { entityName: translateService.instant(`global.menu.entities.${entityKey}`) } : undefined; + this.addErrorAlert(errorHeader, errorHeader, alertData); } else if (httpErrorResponse.error !== '' && httpErrorResponse.error.fieldErrors) { const fieldErrors = httpErrorResponse.error.fieldErrors; for (const fieldError of fieldErrors) { @@ -47,26 +52,34 @@ export class AlertErrorComponent implements OnDestroy { } // convert 'something[14].other[4].id' to 'something[].other[].id' so translations can be written to it const convertedField: string = fieldError.field.replace(/\[\d*\]/g, '[]'); - const fieldName: string = convertedField.charAt(0).toUpperCase() + convertedField.slice(1); - this.addErrorAlert(`Error on field "${fieldName}"`); + const fieldName: string = translateService.instant(`shGatewayApp.${fieldError.objectName as string}.${convertedField}`); + this.addErrorAlert(`Error on field "${fieldName}"`, `error.${fieldError.message as string}`, { fieldName }); } } else if (httpErrorResponse.error !== '' && httpErrorResponse.error.message) { - this.addErrorAlert(httpErrorResponse.error.detail ?? httpErrorResponse.error.message); + this.addErrorAlert( + httpErrorResponse.error.detail ?? httpErrorResponse.error.message, + httpErrorResponse.error.message, + httpErrorResponse.error.params + ); } else { - this.addErrorAlert(httpErrorResponse.error); + this.addErrorAlert(httpErrorResponse.error, httpErrorResponse.error); } break; } case 404: - this.addErrorAlert('Not found'); + this.addErrorAlert('Not found', 'error.url.not.found'); break; default: if (httpErrorResponse.error !== '' && httpErrorResponse.error.message) { - this.addErrorAlert(httpErrorResponse.error.detail ?? httpErrorResponse.error.message); + this.addErrorAlert( + httpErrorResponse.error.detail ?? httpErrorResponse.error.message, + httpErrorResponse.error.message, + httpErrorResponse.error.params + ); } else { - this.addErrorAlert(httpErrorResponse.error); + this.addErrorAlert(httpErrorResponse.error, httpErrorResponse.error); } } }); @@ -89,7 +102,7 @@ export class AlertErrorComponent implements OnDestroy { alert.close?.(this.alerts); } - private addErrorAlert(message?: string): void { - this.alertService.addAlert({ type: 'danger', message }, this.alerts); + private addErrorAlert(message?: string, translationKey?: string, translationParams?: { [key: string]: unknown }): void { + this.alertService.addAlert({ type: 'danger', message, translationKey, translationParams }, this.alerts); } } diff --git a/git/sh-gateway/src/main/webapp/app/shared/alert/alert-error.model.ts b/git/sh-gateway/src/main/webapp/app/shared/alert/alert-error.model.ts index 2b8cb8f523091fd1cd23d74ed9c1391d0b7017bd..4fca767cc56b0d4df80d192e009c8a8565e76985 100644 --- a/git/sh-gateway/src/main/webapp/app/shared/alert/alert-error.model.ts +++ b/git/sh-gateway/src/main/webapp/app/shared/alert/alert-error.model.ts @@ -1,3 +1,3 @@ export class AlertError { - constructor(public message: string) {} + constructor(public message: string, public key?: string, public params?: { [key: string]: unknown }) {} } diff --git a/git/sh-gateway/src/main/webapp/app/shared/language/find-language-from-key.pipe.ts b/git/sh-gateway/src/main/webapp/app/shared/language/find-language-from-key.pipe.ts new file mode 100644 index 0000000000000000000000000000000000000000..d01a5d7b32f516e0b43297526e4f9636e873683e --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/shared/language/find-language-from-key.pipe.ts @@ -0,0 +1,13 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ name: 'findLanguageFromKey' }) +export class FindLanguageFromKeyPipe implements PipeTransform { + private languages: { [key: string]: { name: string; rtl?: boolean } } = { + en: { name: 'English' }, + // jhipster-needle-i18n-language-key-pipe - JHipster will add/remove languages in this object + }; + + transform(lang: string): string { + return this.languages[lang].name; + } +} diff --git a/git/sh-gateway/src/main/webapp/app/shared/language/translate.directive.spec.ts b/git/sh-gateway/src/main/webapp/app/shared/language/translate.directive.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..d64b6e7cbbfbaea8d1f835905e449f8dd576414d --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/shared/language/translate.directive.spec.ts @@ -0,0 +1,37 @@ +import { Component } from '@angular/core'; +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { TranslateModule, TranslateService } from '@ngx-translate/core'; + +import { TranslateDirective } from './translate.directive'; + +@Component({ + template: ` <div jhiTranslate="test"></div> `, +}) +class TestTranslateDirectiveComponent {} + +describe('TranslateDirective Tests', () => { + let fixture: ComponentFixture<TestTranslateDirectiveComponent>; + let translateService: TranslateService; + + beforeEach( + waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [TranslateModule.forRoot()], + declarations: [TranslateDirective, TestTranslateDirectiveComponent], + }); + }) + ); + + beforeEach(() => { + translateService = TestBed.inject(TranslateService); + fixture = TestBed.createComponent(TestTranslateDirectiveComponent); + }); + + it('should change HTML', () => { + const spy = jest.spyOn(translateService, 'get'); + + fixture.detectChanges(); + + expect(spy).toHaveBeenCalled(); + }); +}); diff --git a/git/sh-gateway/src/main/webapp/app/shared/language/translate.directive.ts b/git/sh-gateway/src/main/webapp/app/shared/language/translate.directive.ts new file mode 100644 index 0000000000000000000000000000000000000000..15d5dff5d96c7b59420f1fe5c188b888f7fe9981 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/app/shared/language/translate.directive.ts @@ -0,0 +1,51 @@ +import { Input, Directive, ElementRef, OnChanges, OnInit, OnDestroy } from '@angular/core'; +import { TranslateService } from '@ngx-translate/core'; +import { Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; + +import { translationNotFoundMessage } from 'app/config/translation.config'; + +/** + * A wrapper directive on top of the translate pipe as the inbuilt translate directive from ngx-translate is too verbose and buggy + */ +@Directive({ + selector: '[jhiTranslate]', +}) +export class TranslateDirective implements OnChanges, OnInit, OnDestroy { + @Input() jhiTranslate!: string; + @Input() translateValues?: { [key: string]: unknown }; + + private readonly directiveDestroyed = new Subject<never>(); + + constructor(private el: ElementRef, private translateService: TranslateService) {} + + ngOnInit(): void { + this.translateService.onLangChange.pipe(takeUntil(this.directiveDestroyed)).subscribe(() => { + this.getTranslation(); + }); + this.translateService.onTranslationChange.pipe(takeUntil(this.directiveDestroyed)).subscribe(() => { + this.getTranslation(); + }); + } + + ngOnChanges(): void { + this.getTranslation(); + } + + ngOnDestroy(): void { + this.directiveDestroyed.next(); + this.directiveDestroyed.complete(); + } + + private getTranslation(): void { + this.translateService + .get(this.jhiTranslate, this.translateValues) + .pipe(takeUntil(this.directiveDestroyed)) + .subscribe( + value => { + this.el.nativeElement.innerHTML = value; + }, + () => `${translationNotFoundMessage}[${this.jhiTranslate}]` + ); + } +} diff --git a/git/sh-gateway/src/main/webapp/app/shared/pagination/item-count.component.spec.ts b/git/sh-gateway/src/main/webapp/app/shared/pagination/item-count.component.spec.ts index 023e0fb448fe89c88a13efe20f3be088430d72c4..c44ede1e844be02bd61b47c10ff8f8101f7e08fd 100644 --- a/git/sh-gateway/src/main/webapp/app/shared/pagination/item-count.component.spec.ts +++ b/git/sh-gateway/src/main/webapp/app/shared/pagination/item-count.component.spec.ts @@ -1,4 +1,7 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { TranslateModule } from '@ngx-translate/core'; + +import { TranslateDirective } from 'app/shared/language/translate.directive'; import { ItemCountComponent } from './item-count.component'; @@ -9,7 +12,8 @@ describe('ItemCountComponent test', () => { beforeEach( waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ItemCountComponent], + imports: [TranslateModule.forRoot()], + declarations: [ItemCountComponent, TranslateDirective], }).compileComponents(); }) ); diff --git a/git/sh-gateway/src/main/webapp/app/shared/pagination/item-count.component.ts b/git/sh-gateway/src/main/webapp/app/shared/pagination/item-count.component.ts index 1f86dae3531a5a0d6f6b312889ab2c07acb837d0..ca05ebb56eaef920f47a15ed416453a4054b20ed 100644 --- a/git/sh-gateway/src/main/webapp/app/shared/pagination/item-count.component.ts +++ b/git/sh-gateway/src/main/webapp/app/shared/pagination/item-count.component.ts @@ -5,7 +5,7 @@ import { Component, Input } from '@angular/core'; */ @Component({ selector: 'jhi-item-count', - template: ` <div>Showing {{ first }} - {{ second }} of {{ total }} items.</div> `, + template: ` <div jhiTranslate="global.item-count" [translateValues]="{ first: first, second: second, total: total }"></div> `, }) export class ItemCountComponent { /** diff --git a/git/sh-gateway/src/main/webapp/app/shared/shared-libs.module.ts b/git/sh-gateway/src/main/webapp/app/shared/shared-libs.module.ts index be083e2ba2d8ee907ded87166fd8ca71f8031c38..368647c3885711ebd9cd698a3ca234ed1621d3ba 100644 --- a/git/sh-gateway/src/main/webapp/app/shared/shared-libs.module.ts +++ b/git/sh-gateway/src/main/webapp/app/shared/shared-libs.module.ts @@ -4,8 +4,9 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; import { InfiniteScrollModule } from 'ngx-infinite-scroll'; import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; +import { TranslateModule } from '@ngx-translate/core'; @NgModule({ - exports: [FormsModule, CommonModule, NgbModule, InfiniteScrollModule, FontAwesomeModule, ReactiveFormsModule], + exports: [FormsModule, CommonModule, NgbModule, InfiniteScrollModule, FontAwesomeModule, ReactiveFormsModule, TranslateModule], }) export class SharedLibsModule {} diff --git a/git/sh-gateway/src/main/webapp/app/shared/shared.module.ts b/git/sh-gateway/src/main/webapp/app/shared/shared.module.ts index fe49fd191f50ccbfd10f062e8ee1b42311455fbb..22628929b1bb6e0abf03af4926b7482339745696 100644 --- a/git/sh-gateway/src/main/webapp/app/shared/shared.module.ts +++ b/git/sh-gateway/src/main/webapp/app/shared/shared.module.ts @@ -1,6 +1,8 @@ import { NgModule } from '@angular/core'; import { SharedLibsModule } from './shared-libs.module'; +import { FindLanguageFromKeyPipe } from './language/find-language-from-key.pipe'; +import { TranslateDirective } from './language/translate.directive'; import { AlertComponent } from './alert/alert.component'; import { AlertErrorComponent } from './alert/alert-error.component'; import { HasAnyAuthorityDirective } from './auth/has-any-authority.directive'; @@ -14,6 +16,8 @@ import { ItemCountComponent } from './pagination/item-count.component'; @NgModule({ imports: [SharedLibsModule], declarations: [ + FindLanguageFromKeyPipe, + TranslateDirective, AlertComponent, AlertErrorComponent, HasAnyAuthorityDirective, @@ -26,6 +30,8 @@ import { ItemCountComponent } from './pagination/item-count.component'; ], exports: [ SharedLibsModule, + FindLanguageFromKeyPipe, + TranslateDirective, AlertComponent, AlertErrorComponent, HasAnyAuthorityDirective, diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_0.svg b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_0.svg new file mode 100644 index 0000000000000000000000000000000000000000..d6df83ceb8555ad49f8eb74d4cee9228275d04ef Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_0.svg differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_0_head-192.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_0_head-192.png new file mode 100644 index 0000000000000000000000000000000000000000..6d90ab36d37914257d5f3d0356e7895ccc0596f2 Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_0_head-192.png differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_0_head-256.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_0_head-256.png new file mode 100644 index 0000000000000000000000000000000000000000..8e99bfe66d5a0e4831fcdc4031c1a57ba9b9cb1a Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_0_head-256.png differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_0_head-384.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_0_head-384.png new file mode 100644 index 0000000000000000000000000000000000000000..c7ca46022548477085d9c10966c94131e7290df6 Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_0_head-384.png differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_0_head-512.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_0_head-512.png new file mode 100644 index 0000000000000000000000000000000000000000..7e0b8436e82d0b3536909e53a0d435669e6b77cd Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_0_head-512.png differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_1.svg b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_1.svg new file mode 100644 index 0000000000000000000000000000000000000000..e3a0f3db9fac1dcf48fe52bdfe437835e38e0182 Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_1.svg differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_1_head-192.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_1_head-192.png new file mode 100644 index 0000000000000000000000000000000000000000..ac5f2a00ac809809f7e48628d79e04849ebad98b Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_1_head-192.png differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_1_head-256.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_1_head-256.png new file mode 100644 index 0000000000000000000000000000000000000000..443822e8ea1f8db01adc11f33e8685fb14b997dc Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_1_head-256.png differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_1_head-384.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_1_head-384.png new file mode 100644 index 0000000000000000000000000000000000000000..4a5e9fe4775b79347fcf33c97a7ad10e3f693b2c Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_1_head-384.png differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_1_head-512.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_1_head-512.png new file mode 100644 index 0000000000000000000000000000000000000000..66c625c10626011b5e142ce32ca009cbaea5f0bb Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_1_head-512.png differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_2.svg b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_2.svg new file mode 100644 index 0000000000000000000000000000000000000000..51c6a5a9865606b4cd332e008cb1ec79b39e7e40 Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_2.svg differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_2_head-192.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_2_head-192.png new file mode 100644 index 0000000000000000000000000000000000000000..24baf78ce8326c3c2756f10ebed90829d0bddf30 Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_2_head-192.png differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_2_head-256.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_2_head-256.png new file mode 100644 index 0000000000000000000000000000000000000000..7b25f52f93d109da2df18f8442ef2104a6e14b8f Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_2_head-256.png differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_2_head-384.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_2_head-384.png new file mode 100644 index 0000000000000000000000000000000000000000..e89e120c2f015ccb140678ffff8ccbacb1ae1f20 Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_2_head-384.png differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_2_head-512.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_2_head-512.png new file mode 100644 index 0000000000000000000000000000000000000000..3c0e6cb9af31e2e46d9e9b6c8cec99c0d4c5e5c6 Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_2_head-512.png differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_3.svg b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_3.svg new file mode 100644 index 0000000000000000000000000000000000000000..cc0d01f1ea00f8c4b12b2318363f398766cf64d4 Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_3.svg differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_3_head-192.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_3_head-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b1e4fb3c8654570012950a3c888f11cb92c23bdd Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_3_head-192.png differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_3_head-256.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_3_head-256.png new file mode 100644 index 0000000000000000000000000000000000000000..aa058c7a0aba654a4991c8bbd5d3e2d32517acd1 Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_3_head-256.png differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_3_head-384.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_3_head-384.png new file mode 100644 index 0000000000000000000000000000000000000000..1d10bd5da3d4d417aedfd3bf2e8515eff092c506 Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_3_head-384.png differ diff --git a/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_3_head-512.png b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_3_head-512.png new file mode 100644 index 0000000000000000000000000000000000000000..e719f1df805db311c8e4c4e8e62a5b00d2cc90ed Binary files /dev/null and b/git/sh-gateway/src/main/webapp/content/images/jhipster_family_member_3_head-512.png differ diff --git a/git/sh-gateway/src/main/webapp/declarations.d.ts b/git/sh-gateway/src/main/webapp/declarations.d.ts index dfaf5b53dff4df7113db02a12744665242528345..38352e9b69c369a069a0e9a502a08a3e10b29e39 100644 --- a/git/sh-gateway/src/main/webapp/declarations.d.ts +++ b/git/sh-gateway/src/main/webapp/declarations.d.ts @@ -1 +1,2 @@ declare const SERVER_API_URL: string; +declare const I18N_HASH: string; diff --git a/git/sh-gateway/src/main/webapp/i18n/en/activate.json b/git/sh-gateway/src/main/webapp/i18n/en/activate.json new file mode 100644 index 0000000000000000000000000000000000000000..058bd497fbebac324ac113e2517f7a7577c721b4 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/activate.json @@ -0,0 +1,9 @@ +{ + "activate": { + "title": "Activation", + "messages": { + "success": "<strong>Your user account has been activated.</strong> Please ", + "error": "<strong>Your user could not be activated.</strong> Please use the registration form to sign up." + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/configuration.json b/git/sh-gateway/src/main/webapp/i18n/en/configuration.json new file mode 100644 index 0000000000000000000000000000000000000000..09c9a1af0f508ffcce441a2a27a51acc959d896a --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/configuration.json @@ -0,0 +1,10 @@ +{ + "configuration": { + "title": "Configuration", + "filter": "Filter (by prefix)", + "table": { + "prefix": "Prefix", + "properties": "Properties" + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/error.json b/git/sh-gateway/src/main/webapp/i18n/en/error.json new file mode 100644 index 0000000000000000000000000000000000000000..d2575632769fbed14ae2ece28c1a599091450d4e --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/error.json @@ -0,0 +1,14 @@ +{ + "error": { + "title": "Error page!", + "http": { + "400": "Bad request.", + "403": "You are not authorized to access this page.", + "404": "The page does not exist.", + "405": "The HTTP verb you used is not supported for this URL.", + "500": "Internal server error." + }, + "concurrencyFailure": "Another user modified this data at the same time as you. Your changes were rejected.", + "validation": "Validation error on the server." + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/gateway.json b/git/sh-gateway/src/main/webapp/i18n/en/gateway.json new file mode 100644 index 0000000000000000000000000000000000000000..2542750abad7d8ed4cbc029e1d48a53f1255cccb --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/gateway.json @@ -0,0 +1,15 @@ +{ + "gateway": { + "title": "Gateway", + "routes": { + "title": "Current routes", + "url": "URL", + "service": "Service", + "servers": "Available servers", + "error": "Warning: no server available!" + }, + "refresh": { + "button": "Refresh" + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/global.json b/git/sh-gateway/src/main/webapp/i18n/en/global.json new file mode 100644 index 0000000000000000000000000000000000000000..0cd9905c1ef89877ae805b3d69447770d944e940 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/global.json @@ -0,0 +1,147 @@ +{ + "global": { + "title": "ShGateway", + "browsehappy": "You are using an <strong>outdated</strong> browser. Please <a href=\"http://browsehappy.com/?locale=en\">upgrade your browser</a> to improve your experience.", + "menu": { + "home": "Home", + "jhipster-needle-menu-add-element": "JHipster will add additional menu entries here (do not translate!)", + "entities": { + "main": "Entities", + "shBackendSelfHealingMessage": "Self Healing Message", + "shBackendEventType": "Event Type", + "shBackendStrategy": "Strategy", + "shBackendDeployment": "Deployment", + "shBackendStrategyApplication": "Strategy Application", + "jhipster-needle-menu-add-entry": "JHipster will add additional entities here (do not translate!)" + }, + "account": { + "main": "Account", + "settings": "Settings", + "password": "Password", + "sessions": "Sessions", + "login": "Sign in", + "logout": "Sign out", + "register": "Register" + }, + "admin": { + "main": "Administration", + "gateway": "Gateway", + "userManagement": "User management", + "tracker": "User tracker", + "metrics": "Metrics", + "health": "Health", + "configuration": "Configuration", + "logs": "Logs", + "apidocs": "API", + "database": "Database", + "jhipster-needle-menu-add-admin-element": "JHipster will add additional menu entries here (do not translate!)" + }, + "language": "Language" + }, + "form": { + "username.label": "Username", + "username.placeholder": "Your username", + "currentpassword.label": "Current password", + "currentpassword.placeholder": "Current password", + "newpassword.label": "New password", + "newpassword.placeholder": "New password", + "confirmpassword.label": "New password confirmation", + "confirmpassword.placeholder": "Confirm the new password", + "email.label": "Email", + "email.placeholder": "Your email" + }, + "messages": { + "info": { + "authenticated": { + "prefix": "If you want to ", + "link": "sign in", + "suffix": ", you can try the default accounts:<br/>- Administrator (login=\"admin\" and password=\"admin\") <br/>- User (login=\"user\" and password=\"user\")." + }, + "register": { + "noaccount": "You don't have an account yet?", + "link": "Register a new account" + } + }, + "error": { + "dontmatch": "The password and its confirmation do not match!" + }, + "validate": { + "newpassword": { + "required": "Your password is required.", + "minlength": "Your password is required to be at least 4 characters.", + "maxlength": "Your password cannot be longer than 50 characters.", + "strength": "Password strength:" + }, + "confirmpassword": { + "required": "Your confirmation password is required.", + "minlength": "Your confirmation password is required to be at least 4 characters.", + "maxlength": "Your confirmation password cannot be longer than 50 characters." + }, + "email": { + "required": "Your email is required.", + "invalid": "Your email is invalid.", + "minlength": "Your email is required to be at least 5 characters.", + "maxlength": "Your email cannot be longer than 50 characters." + } + } + }, + "field": { + "id": "ID" + }, + "ribbon": { + "dev": "Development" + }, + "item-count": "Showing {{first}} - {{second}} of {{total}} items." + }, + "entity": { + "action": { + "addblob": "Add blob", + "addimage": "Add image", + "back": "Back", + "cancel": "Cancel", + "delete": "Delete", + "edit": "Edit", + "open": "Open", + "save": "Save", + "view": "View" + }, + "detail": { + "field": "Field", + "value": "Value" + }, + "delete": { + "title": "Confirm delete operation" + }, + "validation": { + "required": "This field is required.", + "minlength": "This field is required to be at least {{ min }} characters.", + "maxlength": "This field cannot be longer than {{ max }} characters.", + "min": "This field should be at least {{ min }}.", + "max": "This field cannot be more than {{ max }}.", + "minbytes": "This field should be at least {{ min }} bytes.", + "maxbytes": "This field cannot be more than {{ max }} bytes.", + "pattern": "This field should follow pattern for {{ pattern }}.", + "number": "This field should be a number.", + "datetimelocal": "This field should be a date and time.", + "patternLogin": "This field can only contain letters, digits and e-mail addresses." + } + }, + "error": { + "internalServerError": "Internal server error", + "server.not.reachable": "Server not reachable", + "url.not.found": "Not found", + "NotNull": "Field {{ fieldName }} cannot be empty!", + "Size": "Field {{ fieldName }} does not meet min/max size requirements!", + "userexists": "Login name already used!", + "emailexists": "Email is already in use!", + "idexists": "A new {{ entityName }} cannot already have an ID", + "idnull": "Invalid ID", + "idinvalid": "Invalid ID", + "idnotfound": "ID cannot be found", + "file": { + "could.not.extract": "Could not extract file", + "not.image": "File was expected to be an image but was found to be \"{{ fileType }}\"" + } + }, + "footer": "This is your footer" +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/health.json b/git/sh-gateway/src/main/webapp/i18n/en/health.json new file mode 100644 index 0000000000000000000000000000000000000000..d41d42f7856b6183bec5898040565cf2989a63b7 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/health.json @@ -0,0 +1,37 @@ +{ + "health": { + "title": "Health Checks", + "refresh.button": "Refresh", + "stacktrace": "Stacktrace", + "details": { + "details": "Details", + "properties": "Properties", + "name": "Name", + "value": "Value", + "error": "Error" + }, + "indicator": { + "discoveryComposite": "Discovery Composite", + "refreshScope": "Microservice Refresh Scope", + "clientConfigServer": "Microservice Config Server", + "hystrix": "Hystrix", + + "reactiveDiscoveryClients": "Microservice Discovery Clients", + "diskSpace": "Disk space", + "mail": "Email", + "livenessState": "Liveness state", + "readinessState": "Readiness state", + "ping": "Application", + "r2dbc": "Database" + }, + "table": { + "service": "Service name", + "status": "Status" + }, + "status": { + "UNKNOWN": "UNKNOWN", + "UP": "UP", + "DOWN": "DOWN" + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/home.json b/git/sh-gateway/src/main/webapp/i18n/en/home.json new file mode 100644 index 0000000000000000000000000000000000000000..d9fc499067e53a6b1d79b2cfb96ab30529bf2aae --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/home.json @@ -0,0 +1,19 @@ +{ + "home": { + "title": "Welcome, Java Hipster!", + "subtitle": "This is your homepage", + "logged": { + "message": "You are logged in as user \"{{username}}\"." + }, + "question": "If you have any question on JHipster:", + "link": { + "homepage": "JHipster homepage", + "stackoverflow": "JHipster on Stack Overflow", + "bugtracker": "JHipster bug tracker", + "chat": "JHipster public chat room", + "follow": "follow @jhipster on Twitter" + }, + "like": "If you like JHipster, don't forget to give us a star on", + "github": "GitHub" + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/login.json b/git/sh-gateway/src/main/webapp/i18n/en/login.json new file mode 100644 index 0000000000000000000000000000000000000000..4667958802c9cecdfdf9c55144ab08567b5cc801 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/login.json @@ -0,0 +1,19 @@ +{ + "login": { + "title": "Sign in", + "form": { + "password": "Password", + "password.placeholder": "Your password", + "rememberme": "Remember me", + "button": "Sign in" + }, + "messages": { + "error": { + "authentication": "<strong>Failed to sign in!</strong> Please check your credentials and try again." + } + }, + "password": { + "forgot": "Did you forget your password?" + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/logs.json b/git/sh-gateway/src/main/webapp/i18n/en/logs.json new file mode 100644 index 0000000000000000000000000000000000000000..8ee0ba5a2a0c2b2bd34d561e8c2e5e2330e2438d --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/logs.json @@ -0,0 +1,11 @@ +{ + "logs": { + "title": "Logs", + "nbloggers": "There are {{ total }} loggers.", + "filter": "Filter", + "table": { + "name": "Name", + "level": "Level" + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/metrics.json b/git/sh-gateway/src/main/webapp/i18n/en/metrics.json new file mode 100644 index 0000000000000000000000000000000000000000..c514dee72d6114d0353daa3f6737ba6cf60ea36f --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/metrics.json @@ -0,0 +1,102 @@ +{ + "metrics": { + "title": "Application Metrics", + "refresh.button": "Refresh", + "updating": "Updating...", + "jvm": { + "title": "JVM Metrics", + "memory": { + "title": "Memory", + "total": "Total Memory", + "heap": "Heap Memory", + "nonheap": "Non-Heap Memory" + }, + "threads": { + "title": "Threads", + "all": "All", + "runnable": "Runnable", + "timedwaiting": "Timed waiting", + "waiting": "Waiting", + "blocked": "Blocked", + "dump": { + "title": "Threads dump", + "id": "Id: ", + "blockedtime": "Blocked Time", + "blockedcount": "Blocked Count", + "waitedtime": "Waited Time", + "waitedcount": "Waited Count", + "lockname": "Lock name", + "stacktrace": "Stacktrace", + "show": "Show Stacktrace", + "hide": "Hide Stacktrace" + } + }, + "gc": { + "title": "Garbage collections", + "marksweepcount": "Mark Sweep count", + "marksweeptime": "Mark Sweep time", + "scavengecount": "Scavenge count", + "scavengetime": "Scavenge time" + }, + "http": { + "title": "HTTP requests (time in millisecond)", + "active": "Active requests:", + "total": "Total requests:", + "table": { + "code": "Code", + "count": "Count", + "mean": "Mean", + "average": "Average", + "max": "Max" + }, + "code": { + "ok": "Ok", + "notfound": "Not found", + "servererror": "Server Error" + } + } + }, + "servicesstats": { + "title": "Services statistics (time in millisecond)", + "table": { + "name": "Service name", + "count": "Count", + "mean": "Mean", + "min": "Min", + "max": "Max", + "p50": "p50", + "p75": "p75", + "p95": "p95", + "p99": "p99" + } + }, + "cache": { + "title": "Cache statistics", + "cachename": "Cache name", + "hits": "Cache Hits", + "misses": "Cache Misses", + "gets": "Cache Gets", + "puts": "Cache Puts", + "removals": "Cache Removals", + "evictions": "Cache Evictions", + "hitPercent": "Cache Hit %", + "missPercent": "Cache Miss %", + "averageGetTime": "Average get time (µs)", + "averagePutTime": "Average put time (µs)", + "averageRemoveTime": "Average remove time (µs)" + }, + "datasource": { + "usage": "Connection Pool Usage", + "title": "DataSource statistics (time in millisecond)", + "name": "Pool usage", + "count": "Count", + "mean": "Mean", + "min": "Min", + "max": "Max", + "p50": "p50", + "p75": "p75", + "p95": "p95", + "p99": "p99" + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/password.json b/git/sh-gateway/src/main/webapp/i18n/en/password.json new file mode 100644 index 0000000000000000000000000000000000000000..fc9b6c946d51be66a8257e8945b9ddda9692a3f4 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/password.json @@ -0,0 +1,12 @@ +{ + "password": { + "title": "Password for [<strong>{{username}}</strong>]", + "form": { + "button": "Save" + }, + "messages": { + "error": "<strong>An error has occurred!</strong> The password could not be changed.", + "success": "<strong>Password changed!</strong>" + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/register.json b/git/sh-gateway/src/main/webapp/i18n/en/register.json new file mode 100644 index 0000000000000000000000000000000000000000..1a0aeecfcca6d62c5ae8362651c0943302858700 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/register.json @@ -0,0 +1,24 @@ +{ + "register": { + "title": "Registration", + "form": { + "button": "Register" + }, + "messages": { + "validate": { + "login": { + "required": "Your username is required.", + "minlength": "Your username is required to be at least 1 character.", + "maxlength": "Your username cannot be longer than 50 characters.", + "pattern": "Your username is invalid." + } + }, + "success": "<strong>Registration saved!</strong> Please check your email for confirmation.", + "error": { + "fail": "<strong>Registration failed!</strong> Please try again later.", + "userexists": "<strong>Login name already registered!</strong> Please choose another one.", + "emailexists": "<strong>Email is already in use!</strong> Please choose another one." + } + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/reset.json b/git/sh-gateway/src/main/webapp/i18n/en/reset.json new file mode 100644 index 0000000000000000000000000000000000000000..4c35e9a2c338108445acb78354998d192c7b5372 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/reset.json @@ -0,0 +1,26 @@ +{ + "reset": { + "request": { + "title": "Reset your password", + "form": { + "button": "Reset password" + }, + "messages": { + "info": "Enter the email address you used to register", + "success": "Check your emails for details on how to reset your password." + } + }, + "finish": { + "title": "Reset password", + "form": { + "button": "Validate new password" + }, + "messages": { + "info": "Choose a new password", + "success": "<strong>Your password has been reset.</strong> Please ", + "keymissing": "The reset key is missing.", + "error": "Your password couldn't be reset. Remember a password request is only valid for 24 hours." + } + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/sessions.json b/git/sh-gateway/src/main/webapp/i18n/en/sessions.json new file mode 100644 index 0000000000000000000000000000000000000000..38bf44f70afe212b8944dd1d7bc28debb3fd2885 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/sessions.json @@ -0,0 +1,15 @@ +{ + "sessions": { + "title": "Active sessions for [<strong>{{username}}</strong>]", + "table": { + "ipaddress": "IP address", + "useragent": "User Agent", + "date": "Date", + "button": "Invalidate" + }, + "messages": { + "success": "<strong>Session invalidated!</strong>", + "error": "<strong>An error has occurred!</strong> The session could not be invalidated." + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/settings.json b/git/sh-gateway/src/main/webapp/i18n/en/settings.json new file mode 100644 index 0000000000000000000000000000000000000000..508c037c3bce641047f8e5bdcb7c88e71f5f7e94 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/settings.json @@ -0,0 +1,32 @@ +{ + "settings": { + "title": "User settings for [<strong>{{username}}</strong>]", + "form": { + "firstname": "First Name", + "firstname.placeholder": "Your first name", + "lastname": "Last Name", + "lastname.placeholder": "Your last name", + "language": "Language", + "button": "Save" + }, + "messages": { + "error": { + "fail": "<strong>An error has occurred!</strong> Settings could not be saved.", + "emailexists": "<strong>Email is already in use!</strong> Please choose another one." + }, + "success": "<strong>Settings saved!</strong>", + "validate": { + "firstname": { + "required": "Your first name is required.", + "minlength": "Your first name is required to be at least 1 character", + "maxlength": "Your first name cannot be longer than 50 characters" + }, + "lastname": { + "required": "Your last name is required.", + "minlength": "Your last name is required to be at least 1 character", + "maxlength": "Your last name cannot be longer than 50 characters" + } + } + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/shBackend-status.json b/git/sh-gateway/src/main/webapp/i18n/en/shBackend-status.json new file mode 100644 index 0000000000000000000000000000000000000000..2834d99bb65bd1d124ff7c76aa1670705ce9bc57 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/shBackend-status.json @@ -0,0 +1,11 @@ +{ + "shGatewayApp": { + "Status": { + "null": "", + "PENDING": "Pending", + "PROCESSED": "Processed", + "IGNORED": "Ignored", + "ERROR": "Error" + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/shBackendDeployment.json b/git/sh-gateway/src/main/webapp/i18n/en/shBackendDeployment.json new file mode 100644 index 0000000000000000000000000000000000000000..5da677967c574fc63509987d0db76542424e0fcf --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/shBackendDeployment.json @@ -0,0 +1,33 @@ +{ + "shGatewayApp": { + "shBackendDeployment": { + "home": { + "title": "Deployments", + "refreshListLabel": "Refresh list", + "createLabel": "Create a new Deployment", + "createOrEditLabel": "Create or edit a Deployment", + "notFound": "No Deployments found" + }, + "delete": { + "question": "Are you sure you want to delete Deployment {{ id }}?" + }, + "detail": { + "title": "Deployment" + }, + "id": "ID", + "deploymentId": "Deployment Id", + "bundle": "Bundle", + "help": { + "deploymentId": "deployment id", + "bundle": "information about the deployment zip bundle" + } + } + }, + "shBackendApp": { + "shBackendDeployment": { + "created": "A new Deployment is created with identifier {{ param }}", + "updated": "A Deployment is updated with identifier {{ param }}", + "deleted": "A Deployment is deleted with identifier {{ param }}" + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/shBackendEventType.json b/git/sh-gateway/src/main/webapp/i18n/en/shBackendEventType.json new file mode 100644 index 0000000000000000000000000000000000000000..b86be49d18f0ce6e958017f08c47ce515f7f1313 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/shBackendEventType.json @@ -0,0 +1,35 @@ +{ + "shGatewayApp": { + "shBackendEventType": { + "home": { + "title": "Event Types", + "refreshListLabel": "Refresh list", + "createLabel": "Create a new Event Type", + "createOrEditLabel": "Create or edit a Event Type", + "notFound": "No Event Types found" + }, + "delete": { + "question": "Are you sure you want to delete Event Type {{ id }}?" + }, + "detail": { + "title": "Event Type" + }, + "id": "ID", + "code": "Code", + "description": "Description", + "strategy": "Strategy", + "deployment": "Deployment", + "help": { + "code": "event type code", + "description": "event type description" + } + } + }, + "shBackendApp": { + "shBackendEventType": { + "created": "A new Event Type is created with identifier {{ param }}", + "updated": "A Event Type is updated with identifier {{ param }}", + "deleted": "A Event Type is deleted with identifier {{ param }}" + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/shBackendSelfHealingMessage.json b/git/sh-gateway/src/main/webapp/i18n/en/shBackendSelfHealingMessage.json new file mode 100644 index 0000000000000000000000000000000000000000..9d6d9a859a7f98a243a5f7747a59294d7047d892 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/shBackendSelfHealingMessage.json @@ -0,0 +1,40 @@ +{ + "shGatewayApp": { + "shBackendSelfHealingMessage": { + "home": { + "title": "Self Healing Messages", + "refreshListLabel": "Refresh list", + "createLabel": "Create a new Self Healing Message", + "createOrEditLabel": "Create or edit a Self Healing Message", + "notFound": "No Self Healing Messages found" + }, + "delete": { + "question": "Are you sure you want to delete Self Healing Message {{ id }}?" + }, + "detail": { + "title": "Self Healing Message" + }, + "id": "ID", + "timestamp": "Timestamp", + "origin": "Origin", + "deploymentId": "Deployment Id", + "status": "Status", + "error": "Error", + "eventType": "Event Type", + "help": { + "timestamp": "message timestamp", + "origin": "message origin component", + "deploymentId": "id of app related to message", + "status": "status of the message", + "error": "error description if status error" + } + } + }, + "shBackendApp": { + "shBackendSelfHealingMessage": { + "created": "A new Self Healing Message is created with identifier {{ param }}", + "updated": "A Self Healing Message is updated with identifier {{ param }}", + "deleted": "A Self Healing Message is deleted with identifier {{ param }}" + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/shBackendStrategy.json b/git/sh-gateway/src/main/webapp/i18n/en/shBackendStrategy.json new file mode 100644 index 0000000000000000000000000000000000000000..8b8c5af375da6bab85dd8fca0607a7889844ccdb --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/shBackendStrategy.json @@ -0,0 +1,36 @@ +{ + "shGatewayApp": { + "shBackendStrategy": { + "home": { + "title": "Strategies", + "refreshListLabel": "Refresh list", + "createLabel": "Create a new Strategy", + "createOrEditLabel": "Create or edit a Strategy", + "notFound": "No Strategies found" + }, + "delete": { + "question": "Are you sure you want to delete Strategy {{ id }}?" + }, + "detail": { + "title": "Strategy" + }, + "id": "ID", + "code": "Code", + "description": "Description", + "configuration": "Configuration", + "deployment": "Deployment", + "help": { + "code": "strategy code", + "description": "strategy description", + "configuration": "business process modelling annotation to propose" + } + } + }, + "shBackendApp": { + "shBackendStrategy": { + "created": "A new Strategy is created with identifier {{ param }}", + "updated": "A Strategy is updated with identifier {{ param }}", + "deleted": "A Strategy is deleted with identifier {{ param }}" + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/shBackendStrategyApplication.json b/git/sh-gateway/src/main/webapp/i18n/en/shBackendStrategyApplication.json new file mode 100644 index 0000000000000000000000000000000000000000..899338584433b9b810d381fcc88b40627be66593 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/shBackendStrategyApplication.json @@ -0,0 +1,37 @@ +{ + "shGatewayApp": { + "shBackendStrategyApplication": { + "home": { + "title": "Strategy Applications", + "refreshListLabel": "Refresh list", + "createLabel": "Create a new Strategy Application", + "createOrEditLabel": "Create or edit a Strategy Application", + "notFound": "No Strategy Applications found" + }, + "delete": { + "question": "Are you sure you want to delete Strategy Application {{ id }}?" + }, + "detail": { + "title": "Strategy Application" + }, + "id": "ID", + "timestamp": "Timestamp", + "summary": "Summary", + "bundle": "Bundle", + "strategy": "Strategy", + "deployment": "Deployment", + "help": { + "timestamp": "strategyApplication timestamp", + "summary": "json with summary of strategyApplication", + "bundle": "optional bundle with strategyApplication resources" + } + } + }, + "shBackendApp": { + "shBackendStrategyApplication": { + "created": "A new Strategy Application is created with identifier {{ param }}", + "updated": "A Strategy Application is updated with identifier {{ param }}", + "deleted": "A Strategy Application is deleted with identifier {{ param }}" + } + } +} diff --git a/git/sh-gateway/src/main/webapp/i18n/en/user-management.json b/git/sh-gateway/src/main/webapp/i18n/en/user-management.json new file mode 100644 index 0000000000000000000000000000000000000000..52b56a1aaacc6244a86bcb00eb344bfe6fc12e87 --- /dev/null +++ b/git/sh-gateway/src/main/webapp/i18n/en/user-management.json @@ -0,0 +1,31 @@ +{ + "userManagement": { + "home": { + "title": "Users", + "refreshListLabel": "Refresh list", + "createLabel": "Create a new user", + "createOrEditLabel": "Create or edit a user" + }, + "created": "A new user is created with identifier {{ param }}", + "updated": "A user is updated with identifier {{ param }}", + "deleted": "A user is deleted with identifier {{ param }}", + "delete": { + "question": "Are you sure you want to delete user {{ login }}?" + }, + "detail": { + "title": "User" + }, + "login": "Login", + "firstName": "First name", + "lastName": "Last name", + "email": "Email", + "activated": "Activated", + "deactivated": "Deactivated", + "profiles": "Profiles", + "langKey": "Language", + "createdBy": "Created by", + "createdDate": "Created date", + "lastModifiedBy": "Modified by", + "lastModifiedDate": "Modified date" + } +} diff --git a/git/sh-gateway/src/main/webapp/index.html b/git/sh-gateway/src/main/webapp/index.html index 1191961d9ef27213044b4f8a7c3177c2a6c7c4c4..28b0e2a0da64db1e837bfc76db87d7874a715583 100644 --- a/git/sh-gateway/src/main/webapp/index.html +++ b/git/sh-gateway/src/main/webapp/index.html @@ -3,8 +3,9 @@ <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> - <title>selfHealingGateway</title> - <meta name="description" content="Description for selfHealingGateway" /> + <title>shGateway</title> + <meta name="description" content="Description for shGateway" /> + <meta name="google" content="notranslate" /> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> <meta name="theme-color" content="#000000" /> <base href="/" /> diff --git a/git/sh-gateway/src/main/webapp/manifest.webapp b/git/sh-gateway/src/main/webapp/manifest.webapp index 19af74754acfd10eedccee3828176638a56eda3e..5a2f6283137640223e12074ef6e3f3a743e9b0ea 100644 --- a/git/sh-gateway/src/main/webapp/manifest.webapp +++ b/git/sh-gateway/src/main/webapp/manifest.webapp @@ -1,24 +1,24 @@ { - "name": "SelfHealingGateway", - "short_name": "SelfHealingGateway", + "name": "ShGateway", + "short_name": "ShGateway", "icons": [ { - "src": "./content/images/jhipster_family_member_2_head-192.png", + "src": "./content/images/jhipster_family_member_3_head-192.png", "sizes": "192x192", "type": "image/png" }, { - "src": "./content/images/jhipster_family_member_2_head-256.png", + "src": "./content/images/jhipster_family_member_3_head-256.png", "sizes": "256x256", "type": "image/png" }, { - "src": "./content/images/jhipster_family_member_2_head-384.png", + "src": "./content/images/jhipster_family_member_3_head-384.png", "sizes": "384x384", "type": "image/png" }, { - "src": "./content/images/jhipster_family_member_2_head-512.png", + "src": "./content/images/jhipster_family_member_3_head-512.png", "sizes": "512x512", "type": "image/png" } diff --git a/git/sh-gateway/src/main/webapp/swagger-ui/index.html b/git/sh-gateway/src/main/webapp/swagger-ui/index.html index 61d07033b5872698492261a2898fa0c70d01a134..bcad4035a0be67c194ba27770a3985e96095a10a 100644 --- a/git/sh-gateway/src/main/webapp/swagger-ui/index.html +++ b/git/sh-gateway/src/main/webapp/swagger-ui/index.html @@ -2,7 +2,7 @@ <html lang="en"> <head> <meta charset="UTF-8" /> - <title>selfHealingGateway - Swagger UI</title> + <title>shGateway - Swagger UI</title> <link rel="stylesheet" type="text/css" href="./swagger-ui.css" /> <link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" /> <link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" /> diff --git a/git/sh-gateway/src/test/java/com/piacere/selfhealing/gateway/IntegrationTest.java b/git/sh-gateway/src/test/java/com/piacere/selfhealing/gateway/IntegrationTest.java index fabe709f36dccb82de2d6c11448ca733192a1965..d8628e6e0bad02addf458abd1759301d5b86ef58 100644 --- a/git/sh-gateway/src/test/java/com/piacere/selfhealing/gateway/IntegrationTest.java +++ b/git/sh-gateway/src/test/java/com/piacere/selfhealing/gateway/IntegrationTest.java @@ -1,7 +1,7 @@ package com.piacere.selfhealing.gateway; import com.piacere.selfhealing.gateway.ReactiveSqlTestContainerExtension; -import com.piacere.selfhealing.gateway.SelfHealingGatewayApp; +import com.piacere.selfhealing.gateway.ShGatewayApp; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -14,7 +14,7 @@ import org.springframework.boot.test.context.SpringBootTest; */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) -@SpringBootTest(classes = SelfHealingGatewayApp.class) +@SpringBootTest(classes = ShGatewayApp.class) @ExtendWith(ReactiveSqlTestContainerExtension.class) public @interface IntegrationTest { } diff --git a/git/sh-gateway/src/test/java/com/piacere/selfhealing/gateway/ReactiveSqlTestContainerExtension.java b/git/sh-gateway/src/test/java/com/piacere/selfhealing/gateway/ReactiveSqlTestContainerExtension.java index 6bbe4dbe15ed0c33f3401431a5705c6268db5f4e..f49b639fe9cc9d3c8d77ee350c2f5b94491ea44d 100644 --- a/git/sh-gateway/src/test/java/com/piacere/selfhealing/gateway/ReactiveSqlTestContainerExtension.java +++ b/git/sh-gateway/src/test/java/com/piacere/selfhealing/gateway/ReactiveSqlTestContainerExtension.java @@ -12,7 +12,7 @@ public class ReactiveSqlTestContainerExtension implements BeforeAllCallback { private static AtomicBoolean started = new AtomicBoolean(false); private static MySQLContainer<?> container = new MySQLContainer<>("mysql:8.0.26") - .withDatabaseName("selfHealingGateway") + .withDatabaseName("shGateway") .withTmpFs(Collections.singletonMap("/testtmpfs", "rw")); @Override diff --git a/git/sh-gateway/src/test/java/com/piacere/selfhealing/gateway/service/MailServiceIT.java b/git/sh-gateway/src/test/java/com/piacere/selfhealing/gateway/service/MailServiceIT.java index faa01298434d9af2a6c2803a6b17fc5598865a51..42b3731d96dcca97648ade645b60a66dc519e089 100644 --- a/git/sh-gateway/src/test/java/com/piacere/selfhealing/gateway/service/MailServiceIT.java +++ b/git/sh-gateway/src/test/java/com/piacere/selfhealing/gateway/service/MailServiceIT.java @@ -41,6 +41,7 @@ import tech.jhipster.config.JHipsterProperties; class MailServiceIT { private static final String[] languages = { + "en", // jhipster-needle-i18n-language-constant - JHipster will add/remove languages in this array }; private static final Pattern PATTERN_LOCALE_3 = Pattern.compile("([a-z]{2})-([a-zA-Z]{4})-([a-z]{2})"); diff --git a/git/sh-gateway/src/test/resources/config/application.yml b/git/sh-gateway/src/test/resources/config/application.yml index 828b1ada607296e2be7511783679fe2dc4078e6f..a3cc9fc451bcbb86ac555ebb7fa344998c79a43c 100644 --- a/git/sh-gateway/src/test/resources/config/application.yml +++ b/git/sh-gateway/src/test/resources/config/application.yml @@ -17,15 +17,15 @@ eureka: client: enabled: false instance: - appname: selfHealingGateway - instanceId: selfHealingGateway:${spring.application.instance-id:${random.value}} + appname: shGateway + instanceId: shGateway:${spring.application.instance-id:${random.value}} spring: profiles: # Uncomment the following line to enable tests against production database type rather than H2, using Testcontainers #active: testcontainers application: - name: selfHealingGateway + name: shGateway autoconfigure: exclude: - org.springframework.cloud.gateway.config.GatewayMetricsAutoConfiguration @@ -37,7 +37,7 @@ spring: write-durations-as-timestamps: false liquibase: contexts: test - url: jdbc:h2:mem:selfhealinggateway;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE + url: jdbc:h2:mem:shgateway;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE mail: host: localhost main: @@ -45,18 +45,18 @@ spring: messages: basename: i18n/messages r2dbc: - url: r2dbc:h2:mem:///selfhealinggateway;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE + url: r2dbc:h2:mem:///shgateway;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE username: r2dbc password: task: execution: - thread-name-prefix: self-healing-gateway-task- + thread-name-prefix: sh-gateway-task- pool: core-size: 1 max-size: 50 queue-capacity: 10000 scheduling: - thread-name-prefix: self-healing-gateway-scheduling- + thread-name-prefix: sh-gateway-scheduling- pool: size: 1 thymeleaf: @@ -74,7 +74,7 @@ server: jhipster: clientApp: - name: 'selfHealingGatewayApp' + name: 'shGatewayApp' logging: # To test json console appender use-json-format: false diff --git a/git/sh-gateway/src/test/resources/i18n/messages_en.properties b/git/sh-gateway/src/test/resources/i18n/messages_en.properties index f19db8692f204fd0607cbc890345ca93c34539df..455bd644f4b22e2b04f95aef8f2248667b2445c4 100644 --- a/git/sh-gateway/src/test/resources/i18n/messages_en.properties +++ b/git/sh-gateway/src/test/resources/i18n/messages_en.properties @@ -1 +1,4 @@ email.test.title=test title +# Value used for English locale unit test in MailServiceIT +# as this file is loaded instead of real file +email.activation.title=shGateway account activation diff --git a/git/sh-gateway/webpack/webpack.custom.js b/git/sh-gateway/webpack/webpack.custom.js index f786dd39561a603be4545b1f3972aac551978b81..fcbfd04f6ead36c6b6305be3dd52d0bad464c37a 100644 --- a/git/sh-gateway/webpack/webpack.custom.js +++ b/git/sh-gateway/webpack/webpack.custom.js @@ -1,6 +1,8 @@ const webpack = require('webpack'); const { merge } = require('webpack-merge'); const path = require('path'); +const { hashElement } = require('folder-hash'); +const MergeJsonWebpackPlugin = require('merge-jsons-webpack-plugin'); const BrowserSyncPlugin = require('browser-sync-webpack-plugin'); const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; const WebpackNotifierPlugin = require('webpack-notifier'); @@ -11,6 +13,12 @@ const environment = require('./environment'); const proxyConfig = require('./proxy.conf'); module.exports = async (config, options, targetOptions) => { + const languagesHash = await hashElement(path.resolve(__dirname, '../src/main/webapp/i18n'), { + algo: 'md5', + encoding: 'hex', + files: { include: ['*.json'] }, + }); + config.cache = { // 1. Set cache type to filesystem type: 'filesystem', @@ -34,7 +42,7 @@ module.exports = async (config, options, targetOptions) => { extensions: ['js', 'ts'], }), new WebpackNotifierPlugin({ - title: 'Self Healing Gateway', + title: 'Sh Gateway', contentImage: path.join(__dirname, 'logo-jhipster.png'), }) ); @@ -100,6 +108,7 @@ module.exports = async (config, options, targetOptions) => { config.plugins.push( new webpack.DefinePlugin({ + I18N_HASH: JSON.stringify(languagesHash.hash), // APP_VERSION is passed as an environment variable from the Gradle / Maven build tasks. __VERSION__: JSON.stringify(environment.__VERSION__), __DEBUG_INFO_ENABLED__: environment.__DEBUG_INFO_ENABLED__ || config.mode === 'development', @@ -108,6 +117,14 @@ module.exports = async (config, options, targetOptions) => { // If you use an API server, in `prod` mode, you will need to enable CORS // (see the `jhipster.cors` common JHipster property in the `application-*.yml` configurations) SERVER_API_URL: JSON.stringify(environment.SERVER_API_URL), + }), + new MergeJsonWebpackPlugin({ + output: { + groupBy: [ + { pattern: './src/main/webapp/i18n/en/*.json', fileName: './i18n/en.json' }, + // jhipster-needle-i18n-language-webpack - JHipster will add/remove languages in this array + ], + }, }) ); diff --git a/git/sh-mysql/Dockerfile b/git/sh-mysql/Dockerfile deleted file mode 100644 index 257cfaa7a7067e63ae85801890877c2a4da5b2c7..0000000000000000000000000000000000000000 --- a/git/sh-mysql/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM mysql:8.0.23 - -ENV MYSQL_ALLOW_EMPTY_PASSWORD=yes \ - MYSQL_DATABASE=shbackend - -ADD startupscripts/. /docker-entrypoint-initdb.d -ADD cnf/. /etc/mysql/conf.d/ -RUN chmod -R 644 /etc/mysql/conf.d/* diff --git a/git/sh-mysql/cnf/shsMysql.cnf b/git/sh-mysql/cnf/shsMysql.cnf deleted file mode 100644 index be9109e7ca4c901b87b5ec9335f551f6c5915daa..0000000000000000000000000000000000000000 --- a/git/sh-mysql/cnf/shsMysql.cnf +++ /dev/null @@ -1,5 +0,0 @@ -[mysqld] -lower_case_table_names=1 -skip-ssl -character_set_server=utf8mb4 -explicit_defaults_for_timestamp \ No newline at end of file diff --git a/git/sh-mysql/startupscripts/00_init.sh b/git/sh-mysql/startupscripts/00_init.sh deleted file mode 100644 index 71a6ba8e3facb1deb52268178fe4c7ada441de82..0000000000000000000000000000000000000000 --- a/git/sh-mysql/startupscripts/00_init.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -echo "########################################################################" -echo "############# shBackend database initial load start ###########" -echo "########################################################################" diff --git a/git/sh-mysql/startupscripts/01_createDatabase.sql b/git/sh-mysql/startupscripts/01_createDatabase.sql deleted file mode 100644 index 630498b8646339d244500aa54019297168aa2b12..0000000000000000000000000000000000000000 --- a/git/sh-mysql/startupscripts/01_createDatabase.sql +++ /dev/null @@ -1 +0,0 @@ -CREATE DATABASE IF NOT EXISTS `shbackend` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; diff --git a/git/sh-mysql/startupscripts/02_createTables.sql b/git/sh-mysql/startupscripts/02_createTables.sql deleted file mode 100644 index a00647d1d111c23d2a993824ea34c677c9247c69..0000000000000000000000000000000000000000 --- a/git/sh-mysql/startupscripts/02_createTables.sql +++ /dev/null @@ -1,68 +0,0 @@ -USE `shbackend`; -UNLOCK TABLES; -DROP TABLE IF EXISTS `self_healing_message`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `self_healing_message` ( - `id` bigint NOT NULL AUTO_INCREMENT, - `origin` varchar(255) NOT NULL, - `application_id` varchar(255) DEFAULT NULL, - `timestamp` datetime(6), - `status` varchar(255) DEFAULT NULL, - `error` varchar(255) DEFAULT NULL, - `event_type_id` bigint DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - -LOCK TABLES `self_healing_message` WRITE; -/*!40000 ALTER TABLE `self_healing_message` DISABLE KEYS */; -/*!40000 ALTER TABLE `self_healing_message` ENABLE KEYS */; - -UNLOCK TABLES; -DROP TABLE IF EXISTS `event_type`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `event_type` ( - `id` bigint NOT NULL AUTO_INCREMENT, - `code` varchar(255) NOT NULL, - `description` varchar(255) DEFAULT NULL, - `strategy_id` bigint DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - -LOCK TABLES `event_type` WRITE; -/*!40000 ALTER TABLE `event_type` DISABLE KEYS */; -/*!40000 ALTER TABLE `event_type` ENABLE KEYS */; -UNLOCK TABLES; -DROP TABLE IF EXISTS `strategy`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `strategy` ( - `id` bigint NOT NULL AUTO_INCREMENT, - `code` varchar(255) NOT NULL, - `description` varchar(255) DEFAULT NULL, - `bpmn` varchar(255) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - -LOCK TABLES `strategy` WRITE; -/*!40000 ALTER TABLE `strategy` DISABLE KEYS */; -/*!40000 ALTER TABLE `strategy` ENABLE KEYS */; -UNLOCK TABLES; -ALTER TABLE `self_healing_message` - ADD CONSTRAINT `fk_self_healing_message__event_type_id` - FOREIGN KEY (`event_type_id`) REFERENCES `event_type` (`id`); -ALTER TABLE `self_healing_message` - ADD KEY `fk_self_healing_message__event_type_id` (`event_type_id`); -LOCK TABLES `self_healing_message` WRITE; - -UNLOCK TABLES; -ALTER TABLE `event_type` - ADD CONSTRAINT `fk_event_type__strategy_id` - FOREIGN KEY (`strategy_id`) REFERENCES `strategy` (`id`); -ALTER TABLE `event_type` - ADD KEY `fk_event_type__strategy_id` (`strategy_id`); -LOCK TABLES `event_type` WRITE; diff --git a/git/sh-mysql/startupscripts/03_initialData.sql b/git/sh-mysql/startupscripts/03_initialData.sql deleted file mode 100644 index b436476d630235f2ffc71632e0c93fd7993b44f4..0000000000000000000000000000000000000000 --- a/git/sh-mysql/startupscripts/03_initialData.sql +++ /dev/null @@ -1,16 +0,0 @@ -USE `shbackend`; - -SET FOREIGN_KEY_CHECKS=0; -INSERT INTO shbackend.`event_type` (id,code,description,strategy_id) VALUES - (1,'EVENT_USAGE_IDLE_01','Usage idle under 70% event',1), - (2,'EVENT_PROCESSOR-01','Processor top capacity event',2), - (3,'EVENT_DISK-01','Disk reaching 90% capacity event',3), - (4,'EVENT_DISK-02','Ram reaching 90% capacity event',4), - (5,'FORECAST_TEST-01','Test forecast',1); -INSERT INTO shbackend.strategy (id,code,description,bpmn) VALUES - (1,'WF-01','Reboot the machine','PENDING'), - (2,'WF-02','New deployment configuration','PENDING'), - (3,'WF-03','Vertical scalability: More memory, more disk...','PENDING'), - (4,'WF-04','Horizontal scalability: New server, adjust kubernetes cluster...','PENDING'); -SET FOREIGN_KEY_CHECKS=1; -COMMIT; \ No newline at end of file diff --git a/git/sh-mysql/startupscripts/04_end.sh b/git/sh-mysql/startupscripts/04_end.sh deleted file mode 100644 index 462aa1225f64d1562b30811c2fc5ea8c7a153729..0000000000000000000000000000000000000000 --- a/git/sh-mysql/startupscripts/04_end.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -echo "########################################################################" -echo "##############shBackend database initial load end #############" -echo "########################################################################" diff --git a/piacere-build/docker-compose.yaml b/piacere-build/docker-compose.yaml new file mode 100644 index 0000000000000000000000000000000000000000..84a8c713b240a5fa886d8b0fdb4f9fee194e8495 --- /dev/null +++ b/piacere-build/docker-compose.yaml @@ -0,0 +1,34 @@ +services: + sh-mysql: + build: + context: ${SH_BASE_PATH}git/sh-mysql + dockerfile: Dockerfile + cache_from: + - ${IMAGE_SH_MYSQL_CACHE:?err} + args: + BUILDKIT_INLINE_CACHE: 1 # For multistage docker + + # https://github.com/jfrog/artifactory-user-plugins/tree/master/cleanup/cleanDockerImages + + sh-gateway: + build: + context: ${SH_BASE_PATH}git/sh-gateway + dockerfile: Dockerfile + cache_from: + - ${IMAGE_SH_GATEWAY_CACHE:?err} + args: + BUILDKIT_INLINE_CACHE: 1 # For multistage docker + + # https://github.com/jfrog/artifactory-user-plugins/tree/master/cleanup/cleanDockerImages + + sh-backend: + build: + context: ${SH_BASE_PATH}git/sh-backend + dockerfile: Dockerfile + cache_from: + - ${IMAGE_SH_BACKEND_CACHE:?err} + args: + BUILDKIT_INLINE_CACHE: 1 # For multistage docker + + # https://github.com/jfrog/artifactory-user-plugins/tree/master/cleanup/cleanDockerImages + diff --git a/release/docker-compose.yaml b/release/docker-compose.yaml new file mode 100644 index 0000000000000000000000000000000000000000..91052e79d0852f04ff794956f0cd5a5b15ffc883 --- /dev/null +++ b/release/docker-compose.yaml @@ -0,0 +1,7 @@ +services: + + sh-gateway: + image: ${IMAGE_SH_GATEWAY:?err} + + sh-backend: + image: ${IMAGE_SH_BACKEND:?err}