From cb836aa83edc9813bded2b43551cbf97d52d17d9 Mon Sep 17 00:00:00 2001 From: Mihir Samdarshi Date: Wed, 17 Apr 2024 17:20:44 -0700 Subject: [PATCH] chore: remove useless prettier ESLint checks, unnecessary deployment files --- .eslintrc.js | 57 ++++++++------- kubernetes/README.md | 27 ------- kubernetes/application.yaml | 89 ---------------------- package.json | 2 - terraform/.terraform.lock.hcl | 41 ----------- terraform/README.md | 92 ----------------------- terraform/cloudbuild.yml | 35 --------- terraform/main.tf | 134 ---------------------------------- terraform/terraform.tfvars | 26 ------- terraform/variables.tf | 32 -------- yarn.lock | 43 ----------- 11 files changed, 30 insertions(+), 548 deletions(-) delete mode 100644 kubernetes/README.md delete mode 100644 kubernetes/application.yaml delete mode 100644 terraform/.terraform.lock.hcl delete mode 100644 terraform/README.md delete mode 100644 terraform/cloudbuild.yml delete mode 100644 terraform/main.tf delete mode 100644 terraform/terraform.tfvars delete mode 100644 terraform/variables.tf diff --git a/.eslintrc.js b/.eslintrc.js index 4f76524d..eed6113b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,29 +1,32 @@ module.exports = { - extends: ['airbnb', 'plugin:prettier/recommended'], - plugins: ['react-hooks', 'prettier'], - rules: { - 'jsx-a11y/label-has-for': 0, - 'jsx-a11y/label-has-associated-control': 0, - 'jsx-a11y/control-has-associated-label': 0, - 'jsx-a11y/no-noninteractive-tabindex': 0, - 'react-hooks/rules-of-hooks': 'error', - 'react-hooks/exhaustive-deps': 'warn', - 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], - 'no-console': 0, - 'no-param-reassign': 0, - 'no-use-before-define': 0, - 'func-names': 0, - 'consistent-return': 0, - 'prefer-template': 0, - 'react/jsx-props-no-spreading': 0, - 'react/prop-types': 0, - 'react/forbid-prop-types': 0, - 'react/no-unescaped-entities': 0, - 'react/jsx-filename-extension': 0, - 'react/no-this-in-sfc': 0, - }, - env: { - browser: true, - jest: true, - }, + extends: ['airbnb'], + plugins: ['react-hooks'], + rules: { + 'jsx-a11y/label-has-for': 0, + 'jsx-a11y/label-has-associated-control': 0, + 'jsx-a11y/control-has-associated-label': 0, + 'jsx-a11y/no-noninteractive-tabindex': 0, + 'react-hooks/rules-of-hooks': 'error', + 'react-hooks/exhaustive-deps': 'warn', + 'import/no-extraneous-dependencies': [ + 'error', + { devDependencies: true }, + ], + 'no-console': 0, + 'no-param-reassign': 0, + 'no-use-before-define': 0, + 'func-names': 0, + 'consistent-return': 0, + 'prefer-template': 0, + 'react/jsx-props-no-spreading': 0, + 'react/prop-types': 0, + 'react/forbid-prop-types': 0, + 'react/no-unescaped-entities': 0, + 'react/jsx-filename-extension': 0, + 'react/no-this-in-sfc': 0, + }, + env: { + browser: true, + jest: true, + }, }; diff --git a/kubernetes/README.md b/kubernetes/README.md deleted file mode 100644 index 797a50dc..00000000 --- a/kubernetes/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Deploy k8s resources to the GKE cluster with Cloud Build - -# Make sure you are using the correct project: -Be sure to set the env variable CUBECONFIG to the corresponding config file. This is required for running the following annotation step or for deployment using kubectl. - -# First associate the k8s service account to the gcp service account by running -``` -kubectl apply -f annotate_ksa.yaml -``` -# Customize the host/domain name in the application.yaml file, be sure to use the exact host name for the application. - -# If you want to deploy the resource to the GKE cluster using kubectl, be sure to replace the env variables in the application.yaml by corresponding values. -``` -kubectl apply -f application.yaml -``` -# Build the application: -## Using the cmd line: set the var substitutions on the cmd line using: -``` -gcloud builds submit --region=us-west1 --project=PROJECT_ID --config cloudbuild.yaml --substitutions=SHORT_SHA=test --substitutions=_ENV=prod|dev --substitutions=_HOSTNAME=... -``` -# Using the cloud build trigger: -## Set the substitutions in the trigger config console. - -# Trouble shooting -## If you see some timeout errors, it might be due to the mismatch of the env var values generated in application.yaml, esp., the static ip name, service account name, image name, etc. -## Use the following cmd to check the k8s deployment logs for errors: -``` kubectl get events ``` diff --git a/kubernetes/application.yaml b/kubernetes/application.yaml deleted file mode 100644 index b18d0c6c..00000000 --- a/kubernetes/application.yaml +++ /dev/null @@ -1,89 +0,0 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: ${_LABEL_NAME} - labels: - app.kubernetes.io/name: ${_LABEL_NAME} -spec: - replicas: 1 - selector: - matchLabels: - run: ${_LABEL_NAME} - template: - metadata: - labels: - run: ${_LABEL_NAME} - spec: - serviceAccountName: ${_KSA_NAME} - nodeSelector: - iam.gke.io/gke-metadata-server-enabled: "true" - containers: - - name: ${_LABEL_NAME} - image: us-west1-docker.pkg.dev/$PROJECT_ID/${_ARTIFACT_REPO}/${_SERVICE_NAME}-${_ENV}:${SHORT_SHA} - imagePullPolicy: Always - ports: - - containerPort: ${_SERVER_PORT} - hostPort: ${_SERVER_PORT} - protocol: TCP - # the name cannot be longer than 15 chars - name: frontend-prt ---- -apiVersion: networking.gke.io/v1 -kind: ManagedCertificate -metadata: - name: ${_MANAGED_CERT_NAME} -spec: - domains: - - ${_HOSTNAME} ---- -apiVersion: cloud.google.com/v1 -kind: BackendConfig -metadata: - name: ${_LABEL_NAME}-backendconfig -spec: - timeoutSec: 6000 - connectionDraining: - drainingTimeoutSec: 600 ---- -apiVersion: v1 -kind: Service -metadata: - name: ${_LABEL_NAME} - labels: - run: ${_LABEL_NAME} - annotations: - cloud.google.com/backend-config: '{"ports": {"80":"${_LABEL_NAME}-backendconfig"}}' - cloud.google.com/neg: '{"ingress": true}' -spec: - type: ClusterIP - ports: - - port: 80 - targetPort: 80 - selector: - run: ${_LABEL_NAME} ---- -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: ${_LABEL_NAME} - annotations: - kubernetes.io/ingress.global-static-ip-name: ${_STATIC_IP_NAME} - networking.gke.io/managed-certificates: ${_MANAGED_CERT_NAME} - kubernetes.io/ingress.allow-http: "false" - cloud.google.com/load-balancer-type: "External" - compute.kubernetes.io/service-account-name: ${_KSA_NAME} - kubernetes.io/ingress.class: "gce" -spec: - rules: - - host: ${_HOSTNAME} - http: - paths: - - path: /* - pathType: ImplementationSpecific - backend: - service: - name: ${_LABEL_NAME} - port: - number: ${_SERVER_PORT} - diff --git a/package.json b/package.json index 62da4520..cd74767b 100644 --- a/package.json +++ b/package.json @@ -66,8 +66,6 @@ "@wojtekmaj/enzyme-adapter-react-17": "0.8.0", "enzyme": "3.11.0", "eslint-config-airbnb": "^19.0.4", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.0.0", "eslint-plugin-react-hooks": "^4.6.0", "jest-canvas-mock": "^2.2.0", "postcss-normalize": "^10.0.1", diff --git a/terraform/.terraform.lock.hcl b/terraform/.terraform.lock.hcl deleted file mode 100644 index 25730649..00000000 --- a/terraform/.terraform.lock.hcl +++ /dev/null @@ -1,41 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "registry.terraform.io/hashicorp/google" { - version = "4.84.0" - constraints = "4.84.0" - hashes = [ - "h1:fybaK74buTd4Ys2CUZm6jw7NXtSqtcLoW2jeNB4Ff2E=", - "zh:0b3e945fa76876c312bdddca7b18c93b734998febb616b2ebb84a0a299ae97c2", - "zh:1d47d00730fab764bddb6d548fed7e124739b0bcebb9f3b3c6aa247de55fb804", - "zh:29bff92b4375a35a7729248b3bc5db8991ca1b9ba640fc25b13700e12f99c195", - "zh:382353516e7d408a81f1a09a36f9015429be73ca3665367119aad88713209d9a", - "zh:78afa20e25a690d076eeaafd7879993ef9763a8a1b6762e2cbe42330464cc1fa", - "zh:8f6422e94de865669b33a2d9fb95a3e392e841988e890f7379a206e9d47e3415", - "zh:be5c7b52c893b971c860146aec643f7007f34430106f101eab686ed81eccbd26", - "zh:bfc37b641bf3378183eb3b8735554c3949a5cfaa8f76403d7eff38de1474b6d9", - "zh:c834f88dc8eb21af992871ed13a221015ae3b051aeca7386662071026f1546b4", - "zh:f3296c8c0d57dc28e23cf91717484264531655ac478d994584ebc73f70679471", - "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", - "zh:f8efe114ff4891776f48f7d2620b8d6963d3ddac6e42ce25bc761343da964c24", - ] -} - -provider "registry.terraform.io/hashicorp/google-beta" { - version = "4.84.0" - hashes = [ - "h1:e3xRpb/Up56rUeS8U1S4VoGVnXZpmUlHJiVxffGS8/8=", - "zh:0c17bd21a0d98a5063b5bbdad0feac559913061264953d96b3b82289b9938d83", - "zh:138dd45494953f6ce0f837ab29ca61ff91e2001e7cf49356021a962030ccf217", - "zh:1846d617cd39cc7da60280686e1ba63239a4a200f30386dd66a633ea5789e307", - "zh:38d715a828573923d0129fa258b64360f77fbb437c605e26dba95e6b8cf79b53", - "zh:4a041086cabbcaaf9982051297ab864003c7e042b4a8d47c2bfaa47fc83886cb", - "zh:78bfc252ad0e56f2fd10abc25d1e79acb7bd95383017ea4ee309e8c5b15a338b", - "zh:7f193c7b32851e3c704ecf713f93d3ab78031e82d47ac0b4ccf3ecd6be3dda2d", - "zh:8c0f381aee7d3029ec7f0bc1e80ae545a9a522ec764648a9a4e024cfaac3d6f5", - "zh:cae23495634d780f92f241fde2718ef627ed6485225241dd90ef375eb710c0ea", - "zh:d7ccfb67d072870a6c54e76f5ac5fc9a817bd1392dfac81a964bae4cb36ca096", - "zh:e0adbd1e0bf48224c3d352423df5f1bcd62f4e95fe26c981720fbf81f863f57e", - "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", - ] -} diff --git a/terraform/README.md b/terraform/README.md deleted file mode 100644 index 5b357866..00000000 --- a/terraform/README.md +++ /dev/null @@ -1,92 +0,0 @@ -# Infrastructure - -There are two separate infrastructure configurations, one for setting up the CD pipeline, the other for setting up the -infrastructure to host the application. - -**These modules are unfinished** - -## Overview - -This document describes the Terraform infrastructure for the MoTrPAC Frontend. - -Terraform allows for idempotent configurations of cloud infrastructure via a readable, code-like format. Changes to this -infrastructure should only be made via modifications to this Terraform configuration! - -Currently, the architecture consists of three services: - -* Cloud Build for building the Docker image -* Artifact Registry repository for hosting the Docker image -* Cloud Run for serving - -Terraform is an infrastructure-as-code tool that can be used to create and manage cloud resources through the use of a -declarative configuration language. - -The Terraform state is the state of all the resources that Terraform manages. The state for this project is stored in -Google Cloud Storage, in the bucket `motrpac-tf-state` under the prefix `motrpac-frontend-cloudbuild` -or `motrpac-frontend-cloudrun`. - -### Architecture - -The architecture is defined primarily by the `env_configs` variable - -This variable is a map of key-value pairs. The keys are the name of the "environment", and the values are the project -that the image/service should be deployed in, and are either `push` or `pull_request`, which define the "trigger" for -building the image. - -For example in the following configuration, a if the `service_name` is `"hello-world"`, the `hello-world-dev` Docker image -will be built and deployed to the similarly named Cloud Run service, with a CD pipeline that gets triggered when a pull -request is made to the `master` branch of the repository. Similarly, the same workflow will occur -for `hello-world-staging` in the `my-dev-project` GCP project every time a push occurs to the `dev` branch. - -```terraform -dev = { - project = "my-dev-project" - pull_request = { - branch = "master" - } -} -staging = { - project = "my-dev-project" - push = { - branch = "dev" - } -} -``` - -### Getting started - -In order to modify the infrastructure first clone this repository and enter this directory. - -```bash -git clone git@github.com:MoTrPAC/motrpac-frontend.git -cd terraform -``` - -Then run the following command to initialize the Terraform environment and pull any existing state from the remote state -repository: - -```bash -terraform init -terraform refresh -``` - -### Applying changes - -**Make sure that you are using the right input `.tfvars` file for the environment you are deploying to, and that you -have switched to the correct workspace.** - -**Delete any `venv/` or `node_modules/` directories before running `terraform apply`, as leaving them will cause -the deployment to slow down significantly.** - -Then you may make your changes to the Terraform configuration and run the following command to view a plan of those -changes: - -```bash -terraform plan -``` - -And to apply the changes to the Terraform infrastructure: - -```bash -terraform apply -``` diff --git a/terraform/cloudbuild.yml b/terraform/cloudbuild.yml deleted file mode 100644 index 534051f8..00000000 --- a/terraform/cloudbuild.yml +++ /dev/null @@ -1,35 +0,0 @@ -steps: - # Build the image - - name: 'gcr.io/cloud-builders/docker' - args: - - build - - -t - - ${_AR_REGION}-docker.pkg.dev/$PROJECT_ID/${_SERVICE_NAME}-${_ENV}:$SHORT_SHA - - . - - # Push the container image to Container Registry - - name: 'gcr.io/cloud-builders/docker' - args: - - push - - ${_AR_REGION}-docker.pkg.dev/$PROJECT_ID/${_SERVICE_NAME}-${_ENV}:$SHORT_SHA - - # Deploy container image to Cloud Run - - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' - entrypoint: gcloud - args: - - run - - deploy - - ${_SERVICE_NAME}-${_ENV} - - --image - - ${_AR_REGION}-docker.pkg.dev/$PROJECT_ID/${_SERVICE_NAME}-${_ENV}:$SHORT_SHA - - --region - - ${_CR_REGION} - -images: - - "${_GCR_REGION}.gcr.io/$PROJECT_ID/${_SERVICE_NAME}-${_ENV}:$COMMIT_SHA" - -substitutions: - _CR_REGION: us-central1 - _AR_REGION: us - _SERVICE_NAME: service-name - _ENV: prod diff --git a/terraform/main.tf b/terraform/main.tf deleted file mode 100644 index ca4c38f4..00000000 --- a/terraform/main.tf +++ /dev/null @@ -1,134 +0,0 @@ -terraform { - # The modules used in this example have been updated with 0.12 syntax, additionally we depend on a bug fixed in - # version 0.12.7. - required_version = ">= 0.12.7" - - backend "gcs" { - bucket = "motrpac-tf-state" - prefix = "motrpac-frontend" - } - - required_providers { - google = { - source = "hashicorp/google" - version = "~> 4.84.0" - } - } -} - -# --------------------------------------------------------------------------------------------------------------------- -# DEPLOY A CLOUD RUN SERVICE -# --------------------------------------------------------------------------------------------------------------------- - -resource "google_artifact_registry_repository" "repo" { - for_each = var.env_configs - provider = google-beta - - location = var.artifact_registry_region - project = each.value.project - - repository_id = "${var.service_name}-${each.key}" - description = "Contains Docker images for the MoTrPAC Frontend service" - format = "DOCKER" -} - -# --------------------------------------------------------------------------------------------------------------------- -# CREATE A CLOUD BUILD TRIGGER -# --------------------------------------------------------------------------------------------------------------------- - -resource "google_cloudbuild_trigger" "master" { - for_each = var.env_configs - description = "MoTrPAC Frontend Trigger (${title(each.key)})" - project = each.value.project - - github { - owner = "MoTrPAC" - name = "motrpac-frontend" - - dynamic pull_request { - for_each = each.value.pull_request == null ? {} : each.value.pull_request - content { - branch = pull_request.value - } - } - dynamic push { - for_each = each.value.push == null ? {} : each.value.push - content { - branch = push.value - } - } - } - - # These substitutions have been defined in the app's cloudbuild.yaml file. - # See: https://github.com/MoTrPAC/motrpac-frontend/blob/130_MS_Cloud_Build_Cloud_Run/cloudbuild.yaml - substitutions = { - _CR_REGION = var.cloud_run_region - _AR_REGION = var.artifact_registry_region - _SERVICE_NAME = var.service_name - _ENV = each.key - } - - # The filename argument instructs Cloud Build to look for a file in the root of the repository. - # Either a filename or build template (below) must be provided. - filename = "cloudbuild.yaml" - - depends_on = [google_artifact_registry_repository.repo] -} - -resource "google_service_account" "main" { - for_each = var.env_configs - account_id = "motrpac-frontend-${each.key}" - project = each.value.project -} - -resource "google_artifact_registry_repository_iam_member" "allow_cr" { - for_each = var.env_configs - repository = google_artifact_registry_repository.repo[each.key].name - role = each.value.project - member = "serviceAccount:${google_service_account.main[each.key].email}" -} - -# --------------------------------------------------------------------------------------------------------------------- -# DEPLOY A CLOUD RUN SERVICE -# --------------------------------------------------------------------------------------------------------------------- - -resource "google_cloud_run_service" "service" { - for_each = var.env_configs - name = "${var.service_name}-${each.key}" - project = each.value.project - location = var.cloud_run_region - - template { - metadata { - annotations = { - "client.knative.dev/user-image" = "${var.artifact_registry_region}-docker.pkg.dev/${each.value.project}/${var.service_name}-${each.key}" - "autoscaling.knative.dev/minScale" = 1 - } - } - - spec { - service_account_name = google_service_account.main[each.key].name - containers { - image = "${var.artifact_registry_region}-docker.pkg.dev/${each.value.project}/${var.service_name}-${each.key}" - } - } - } - - traffic { - percent = 100 - latest_revision = true - } -} - -# --------------------------------------------------------------------------------------------------------------------- -# EXPOSE THE SERVICE PUBLICLY -# We give all users the ability to invoke the service. -# --------------------------------------------------------------------------------------------------------------------- - -resource "google_cloud_run_service_iam_member" "allUsers" { - for_each = google_cloud_run_service.service - service = each.value.name - location = each.value.location - role = "roles/run.invoker" - member = "allUsers" -} diff --git a/terraform/terraform.tfvars b/terraform/terraform.tfvars deleted file mode 100644 index 0dc9802e..00000000 --- a/terraform/terraform.tfvars +++ /dev/null @@ -1,26 +0,0 @@ -artifact_registry_region = "us-east2" - -cloud_run_region = "us-east2" - -service_name = "motrpac-frontend" - -env_configs = { - prod = { - project = "motrpac-portal" - push = { - branch = "master" - } - } - dev = { - project = "motrpac-portal-dev" - pull_request = { - branch = "master" - } - } - staging = { - project = "motrpac-portal-dev" - push = { - branch = "dev" - } - } -} diff --git a/terraform/variables.tf b/terraform/variables.tf deleted file mode 100644 index 9a25f8e0..00000000 --- a/terraform/variables.tf +++ /dev/null @@ -1,32 +0,0 @@ -# --------------------------------------------------------------------------------------------------------------------- -# REQUIRED PARAMETERS -# These variables are expected to be passed in by the operator. -# --------------------------------------------------------------------------------------------------------------------- - -variable "cloud_run_region" { - description = "The location (region or zone) to deploy the Cloud Run services. Note: Be sure to pick a region that supports Cloud Run." - type = string -} - -variable "artifact_registry_region" { - description = "Name of the GCP region where the GCR registry is located. e.g: 'us' or 'eu'." - type = string -} - -variable "service_name" { - description = "The name of the Cloud Run service to deploy." - type = string -} - -variable "env_configs" { - description = "The configuration for the triggers for each environment. The keys of these map correspond to each environment. You should specify which project each trigger is valid in" - type = map(object({ - project = string - push = optional(object({ - branch = string - })) - pull_request : optional(object({ - branch = string - })) - })) -} diff --git a/yarn.lock b/yarn.lock index 426a6b52..89c49211 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2780,11 +2780,6 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@pkgr/core@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" - integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== - "@pmmmwh/react-refresh-webpack-plugin@^0.5.1", "@pmmmwh/react-refresh-webpack-plugin@^0.5.3": version "0.5.10" resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz#2eba163b8e7dbabb4ce3609ab5e32ab63dda3ef8" @@ -8223,11 +8218,6 @@ eslint-config-airbnb@^19.0.4: object.assign "^4.1.2" object.entries "^1.1.5" -eslint-config-prettier@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== - eslint-config-react-app@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz#73ba3929978001c5c86274c017ea57eb5fa644b4" @@ -8324,14 +8314,6 @@ eslint-plugin-jsx-a11y@^6.5.1: object.entries "^1.1.7" object.fromentries "^2.0.7" -eslint-plugin-prettier@^5.0.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" - integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.8.6" - eslint-plugin-react-hooks@^4.3.0, eslint-plugin-react-hooks@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" @@ -8698,11 +8680,6 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-diff@^1.1.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - fast-glob@^2.2.6: version "2.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" @@ -13662,13 +13639,6 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - "prettier@>=2.2.1 <=2.3.0": version "2.3.0" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18" @@ -15940,14 +15910,6 @@ synchronous-promise@^2.0.15: resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.17.tgz#38901319632f946c982152586f2caf8ddc25c032" integrity sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g== -synckit@^0.8.6: - version "0.8.8" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" - integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== - dependencies: - "@pkgr/core" "^0.1.0" - tslib "^2.6.2" - table@^6.8.1: version "6.8.1" resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" @@ -16336,11 +16298,6 @@ tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== -tslib@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"