From c190e186a05cd0860993c13df9faeeeb68be4225 Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Tue, 6 Sep 2022 16:24:48 -0700
Subject: [PATCH 01/82] Update Docker/CircleCI config to work with new Node
version
---
.circleci/config.yml | 102 ++++++++++++++++++++++++++++++-------------
.dockerignore | 5 +++
.gitignore | 1 +
docker-compose.yml | 8 ++--
4 files changed, 82 insertions(+), 34 deletions(-)
create mode 100644 .dockerignore
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 64726e52f..968ab7f02 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,5 +1,23 @@
# JOB DEFINITIONS
-version: 2
+version: 2.1
+orbs:
+ node: circleci/node@4.7.0
+commands:
+ aws-deploy:
+ steps:
+ - run:
+ name: Deploy
+ command: |
+ aws configure set default.region us-west-2 \
+ CLEAN_BRANCH=`echo $CIRCLE_BRANCH | sed 's/\//-/g'` \
+ DOCKER_TAG=${BUILD_CONTAINER_REPOSITORY}:${CIRCLE_SHA1} \
+ CURRENT_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${TASK_FAMILY} --sort DESC | jq -r '.taskDefinitionArns[0]'` \
+ TASK_JSON=`aws ecs describe-task-definition --task-definition ${CURRENT_TASK} | jq --arg DOCKER_TAG "$DOCKER_TAG" '.taskDefinition.containerDefinitions[0].image = $DOCKER_TAG | {containerDefinitions: .taskDefinition.containerDefinitions, family: .taskDefinition.family}'` \
+ aws ecs register-task-definition --cli-input-json "${TASK_JSON}" \
+ aws ecs run-task --cluster ${ECS_CLUSTER} --task-definition ${MIGRATION_TASK} \
+ NEW_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${TASK_FAMILY} --sort DESC | jq -r '.taskDefinitionArns[0]'` \
+ aws ecs update-service --service ${SERVICE_NAME} --cluster ${ECS_CLUSTER} --task-definition ${NEW_TASK}
+
jobs:
test:
docker:
@@ -89,68 +107,92 @@ jobs:
build:
docker:
- - image: ${BUILD_IMAGE}
+ - image: cimg/aws:2022.06
- working_directory: ~/repo
+ # working_directory: ~/repo
steps:
- checkout
- - run:
- name: dotenv
- command: touch .env && touch .env.prod
+ - setup_remote_docker:
+ version: 20.10.11
+ docker_layer_caching: true
- # Download and cache dependencies
- - restore_cache:
- keys:
- - v1-build-dependencies-{{ checksum "package.json" }}
- # fallback to using the latest cache if no exact match is found
- - v1-build-dependencies-
+ # - run:
+ # name: dotenv
+ # command: touch .env && touch .env.prod
- # install deps
- - run:
- name: yarn-install
- command: yarn install
+ # # Download and cache dependencies
+ # - restore_cache:
+ # keys:
+ # - v1-build-dependencies-{{ checksum "package.json" }}
+ # # fallback to using the latest cache if no exact match is found
+ # - v1-build-dependencies-
- - save_cache:
- paths:
- - node_modules
- key: v1-build-dependencies-{{ checksum "package.json" }}
+ # # install deps
+ # - run:
+ # name: yarn-install
+ # command: yarn install
+
+ # - save_cache:
+ # paths:
+ # - node_modules
+ # key: v1-build-dependencies-{{ checksum "package.json" }}
+
+ - node/install-packages:
+ pkg-manager: yarn
# build the release
- run:
name: build-release
command: npm run build -- --release --verbose
- - setup_remote_docker
+ # - setup_remote_docker
- # build and push a docker image (script is defined in the custom build image)
+ # build and push a docker image
- run:
name: build-docker-image
- command: ../buildImage.sh
+ command: |
+ CLEAN_BRANCH=`echo $CIRCLE_BRANCH | sed 's/\//-/g'` \
+ DOCKER_TAG=${BUILD_CONTAINER_REPOSITORY}:${CIRCLE_SHA1} \
+ docker build --tag ${DOCKER_TAG} . \
+ aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin ${CONTAINER_REGISTRY} \
+ docker push ${DOCKER_TAG}
deploy-staging:
docker:
- - image: ${BUILD_IMAGE}
+ - image: cimg/aws:2022.06
- working_directory: ~/repo
+ # working_directory: ~/repo
steps:
- # update ECS task and service with image build above (script is defined in custom build image)
+ # update ECS task and service with image build above
- run:
name: update-service
- command: ../deployStaging.sh
+ command: |
+ export TASK_FAMILY=lunch-staging \
+ export ECS_CLUSTER=Lunch-Staging \
+ export SERVICE_NAME=lunch-staging \
+ export MIGRATION_TASK=staging_lunch_migrate
+
+ - aws-deploy
deploy-production:
docker:
- - image: ${BUILD_IMAGE}
+ - image: cimg/aws:2022.06
- working_directory: ~/repo
+ # working_directory: ~/repo
steps:
- run:
name: update_service
- command: ../deployProduction.sh
+ command: |
+ export TASK_FAMILY=lunch \
+ export ECS_CLUSTER=Lunch \
+ export SERVICE_NAME=lunch \
+ export MIGRATION_TASK=lunch_migrate
+
+ - aws-deploy
# WORKFLOW DEFINITIONS
workflows:
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 000000000..8437ed1ac
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,5 @@
+Dockerfile
+node_modules
+build
+tmp
+temp
diff --git a/.gitignore b/.gitignore
index b4c6bacfd..fba5d64f2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -43,3 +43,4 @@ cypress/videos/
deploy.sh
test-results.xml
screenshots
+Dockerfile.bak
diff --git a/docker-compose.yml b/docker-compose.yml
index 8de32ca7c..4b37693dd 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,4 +1,4 @@
-version: '2'
+version: "2"
services:
web:
build:
@@ -10,10 +10,10 @@ services:
container_name: lunch-node
ports:
- "3000:3000"
- env_file: '.env.prod'
+ env_file: ".env.prod"
db:
- image: postgres:9.5.1
+ image: postgres:14.5
ports:
- "5432:5432"
container_name: lunch-postgres
- env_file: '.env.prod'
\ No newline at end of file
+ env_file: ".env.prod"
From 1412f9c537574fae90d2d98f1e9e9a2896d9ea8a Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Tue, 6 Sep 2022 16:28:25 -0700
Subject: [PATCH 02/82] Fix syntax error
---
.circleci/config.yml | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 968ab7f02..7c745b347 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -6,17 +6,17 @@ commands:
aws-deploy:
steps:
- run:
- name: Deploy
- command: |
- aws configure set default.region us-west-2 \
- CLEAN_BRANCH=`echo $CIRCLE_BRANCH | sed 's/\//-/g'` \
- DOCKER_TAG=${BUILD_CONTAINER_REPOSITORY}:${CIRCLE_SHA1} \
- CURRENT_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${TASK_FAMILY} --sort DESC | jq -r '.taskDefinitionArns[0]'` \
- TASK_JSON=`aws ecs describe-task-definition --task-definition ${CURRENT_TASK} | jq --arg DOCKER_TAG "$DOCKER_TAG" '.taskDefinition.containerDefinitions[0].image = $DOCKER_TAG | {containerDefinitions: .taskDefinition.containerDefinitions, family: .taskDefinition.family}'` \
- aws ecs register-task-definition --cli-input-json "${TASK_JSON}" \
- aws ecs run-task --cluster ${ECS_CLUSTER} --task-definition ${MIGRATION_TASK} \
- NEW_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${TASK_FAMILY} --sort DESC | jq -r '.taskDefinitionArns[0]'` \
- aws ecs update-service --service ${SERVICE_NAME} --cluster ${ECS_CLUSTER} --task-definition ${NEW_TASK}
+ name: Deploy
+ command: |
+ aws configure set default.region us-west-2 \
+ CLEAN_BRANCH=`echo $CIRCLE_BRANCH | sed 's/\//-/g'` \
+ DOCKER_TAG=${BUILD_CONTAINER_REPOSITORY}:${CIRCLE_SHA1} \
+ CURRENT_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${TASK_FAMILY} --sort DESC | jq -r '.taskDefinitionArns[0]'` \
+ TASK_JSON=`aws ecs describe-task-definition --task-definition ${CURRENT_TASK} | jq --arg DOCKER_TAG "$DOCKER_TAG" '.taskDefinition.containerDefinitions[0].image = $DOCKER_TAG | {containerDefinitions: .taskDefinition.containerDefinitions, family: .taskDefinition.family}'` \
+ aws ecs register-task-definition --cli-input-json "${TASK_JSON}" \
+ aws ecs run-task --cluster ${ECS_CLUSTER} --task-definition ${MIGRATION_TASK} \
+ NEW_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${TASK_FAMILY} --sort DESC | jq -r '.taskDefinitionArns[0]'` \
+ aws ecs update-service --service ${SERVICE_NAME} --cluster ${ECS_CLUSTER} --task-definition ${NEW_TASK}
jobs:
test:
From a299ec90760a9086feb79e6a125d6dcd766db311 Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Tue, 6 Sep 2022 16:36:47 -0700
Subject: [PATCH 03/82] Always return empty array for decision IDs
---
src/selectors/decisions.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/selectors/decisions.js b/src/selectors/decisions.js
index dda97fed9..c435c8c6e 100644
--- a/src/selectors/decisions.js
+++ b/src/selectors/decisions.js
@@ -1,7 +1,7 @@
import { createSelector } from 'reselect';
import moment from 'moment';
-export const getDecisionIds = state => state.decisions.items.result;
+export const getDecisionIds = state => state.decisions.items.result || [];
export const getDecisionEntities = (state) => {
if (state.decisions.items.entities) {
return state.decisions.items.entities.decisions;
From ad40156b9cb2a6eb40bee4d444966f151e485d2f Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Tue, 6 Sep 2022 16:53:39 -0700
Subject: [PATCH 04/82] Re-introduce touch .env, remove extra build during test
---
.circleci/config.yml | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 7c745b347..b664a5989 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -86,9 +86,9 @@ jobs:
echo 127.0.0.1 integration-test.local.lunch.pink | tee -a /etc/hosts
# build the app
- - run:
- name: build-release
- command: NODE_ENV=test npm run build
+ # - run:
+ # name: build-release
+ # command: NODE_ENV=test npm run build
- run:
name: integration-tests
@@ -118,9 +118,9 @@ jobs:
version: 20.10.11
docker_layer_caching: true
- # - run:
- # name: dotenv
- # command: touch .env && touch .env.prod
+ - run:
+ name: dotenv
+ command: touch .env && touch .env.prod
# # Download and cache dependencies
# - restore_cache:
From 1a3dd3d3c12bcf48f10b1f5788bcf918dadf2e50 Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Wed, 7 Sep 2022 10:21:36 -0700
Subject: [PATCH 05/82] Fix Docker mistakes
---
.circleci/config.yml | 36 ++++++++++++++++++------------------
.dockerignore | 1 -
2 files changed, 18 insertions(+), 19 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index b664a5989..f2f8e774b 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -8,14 +8,14 @@ commands:
- run:
name: Deploy
command: |
- aws configure set default.region us-west-2 \
- CLEAN_BRANCH=`echo $CIRCLE_BRANCH | sed 's/\//-/g'` \
- DOCKER_TAG=${BUILD_CONTAINER_REPOSITORY}:${CIRCLE_SHA1} \
- CURRENT_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${TASK_FAMILY} --sort DESC | jq -r '.taskDefinitionArns[0]'` \
- TASK_JSON=`aws ecs describe-task-definition --task-definition ${CURRENT_TASK} | jq --arg DOCKER_TAG "$DOCKER_TAG" '.taskDefinition.containerDefinitions[0].image = $DOCKER_TAG | {containerDefinitions: .taskDefinition.containerDefinitions, family: .taskDefinition.family}'` \
- aws ecs register-task-definition --cli-input-json "${TASK_JSON}" \
- aws ecs run-task --cluster ${ECS_CLUSTER} --task-definition ${MIGRATION_TASK} \
- NEW_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${TASK_FAMILY} --sort DESC | jq -r '.taskDefinitionArns[0]'` \
+ aws configure set default.region us-west-2
+ CLEAN_BRANCH=`echo $CIRCLE_BRANCH | sed 's/\//-/g'`
+ DOCKER_TAG=${BUILD_CONTAINER_REPOSITORY}:${CIRCLE_SHA1}
+ CURRENT_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${TASK_FAMILY} --sort DESC | jq -r '.taskDefinitionArns[0]'`
+ TASK_JSON=`aws ecs describe-task-definition --task-definition ${CURRENT_TASK} | jq --arg DOCKER_TAG "$DOCKER_TAG" '.taskDefinition.containerDefinitions[0].image = $DOCKER_TAG | {containerDefinitions: .taskDefinition.containerDefinitions, family: .taskDefinition.family}'`
+ aws ecs register-task-definition --cli-input-json "${TASK_JSON}"
+ aws ecs run-task --cluster ${ECS_CLUSTER} --task-definition ${MIGRATION_TASK}
+ NEW_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${TASK_FAMILY} --sort DESC | jq -r '.taskDefinitionArns[0]'`
aws ecs update-service --service ${SERVICE_NAME} --cluster ${ECS_CLUSTER} --task-definition ${NEW_TASK}
jobs:
@@ -153,10 +153,10 @@ jobs:
- run:
name: build-docker-image
command: |
- CLEAN_BRANCH=`echo $CIRCLE_BRANCH | sed 's/\//-/g'` \
- DOCKER_TAG=${BUILD_CONTAINER_REPOSITORY}:${CIRCLE_SHA1} \
- docker build --tag ${DOCKER_TAG} . \
- aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin ${CONTAINER_REGISTRY} \
+ CLEAN_BRANCH=`echo $CIRCLE_BRANCH | sed 's/\//-/g'`
+ DOCKER_TAG=${BUILD_CONTAINER_REPOSITORY}:${CIRCLE_SHA1}
+ docker build --tag ${DOCKER_TAG} .
+ aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin ${CONTAINER_REGISTRY}
docker push ${DOCKER_TAG}
deploy-staging:
@@ -170,9 +170,9 @@ jobs:
- run:
name: update-service
command: |
- export TASK_FAMILY=lunch-staging \
- export ECS_CLUSTER=Lunch-Staging \
- export SERVICE_NAME=lunch-staging \
+ export TASK_FAMILY=lunch-staging
+ export ECS_CLUSTER=Lunch-Staging
+ export SERVICE_NAME=lunch-staging
export MIGRATION_TASK=staging_lunch_migrate
- aws-deploy
@@ -187,9 +187,9 @@ jobs:
- run:
name: update_service
command: |
- export TASK_FAMILY=lunch \
- export ECS_CLUSTER=Lunch \
- export SERVICE_NAME=lunch \
+ export TASK_FAMILY=lunch
+ export ECS_CLUSTER=Lunch
+ export SERVICE_NAME=lunch
export MIGRATION_TASK=lunch_migrate
- aws-deploy
diff --git a/.dockerignore b/.dockerignore
index 8437ed1ac..6bfaaf86f 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,4 @@
Dockerfile
node_modules
-build
tmp
temp
From 24ed1b5a994e3e1114c342a89b99f90ac6d76180 Mon Sep 17 00:00:00 2001
From: Shiun Hwang
Date: Wed, 7 Sep 2022 15:56:04 -0700
Subject: [PATCH 06/82] Update docker-compose for doing bringing up local
development instance
---
.dockerignore | 1 +
.gitignore | 3 +++
Dockerfile.local | 12 ++++++++++++
docker-compose.yml | 11 +++++++++--
4 files changed, 25 insertions(+), 2 deletions(-)
create mode 100644 Dockerfile.local
diff --git a/.dockerignore b/.dockerignore
index 6bfaaf86f..927f46241 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -2,3 +2,4 @@ Dockerfile
node_modules
tmp
temp
+postgres-data
diff --git a/.gitignore b/.gitignore
index fba5d64f2..82f73ff77 100644
--- a/.gitignore
+++ b/.gitignore
@@ -44,3 +44,6 @@ deploy.sh
test-results.xml
screenshots
Dockerfile.bak
+
+#Docker postgres-data
+postgres-data
\ No newline at end of file
diff --git a/Dockerfile.local b/Dockerfile.local
new file mode 100644
index 000000000..fad02977a
--- /dev/null
+++ b/Dockerfile.local
@@ -0,0 +1,12 @@
+FROM node:16.17.0
+
+# Set a working directory
+WORKDIR /app
+
+# Install dependencies based on the preferred package manager
+COPY package.json yarn.lock ./
+RUN yarn --frozen-lockfile
+
+COPY . .
+
+CMD [ "npm", "start" ]
diff --git a/docker-compose.yml b/docker-compose.yml
index 4b37693dd..50be97b26 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -3,6 +3,7 @@ services:
web:
build:
context: .
+ dockerfile: Dockerfile.local
depends_on:
- db
links:
@@ -10,10 +11,16 @@ services:
container_name: lunch-node
ports:
- "3000:3000"
- env_file: ".env.prod"
+ - "3010:3010"
db:
image: postgres:14.5
ports:
- "5432:5432"
container_name: lunch-postgres
- env_file: ".env.prod"
+ env_file: ".env"
+ environment:
+ POSTGRES_USER: lunch
+ POSTGRES_PASSWORD: lunch
+ POSTGRES_DB: lunch
+ volumes:
+ - ./postgres-data:/var/lib/postgresql/data
From f99ee5491b05578dc31485266ef28f5d85c97d53 Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Thu, 8 Sep 2022 13:16:47 -0700
Subject: [PATCH 07/82] Use parameters
---
.circleci/config.yml | 34 ++++++++++++++++++++++++++++------
1 file changed, 28 insertions(+), 6 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index f2f8e774b..81a59c7ec 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -4,19 +4,41 @@ orbs:
node: circleci/node@4.7.0
commands:
aws-deploy:
+ parameters:
+ build_container_repository:
+ type: string
+ default: $BUILD_CONTAINER_REPOSITORY
+ circle_branch:
+ type: string
+ default: $CIRCLE_BRANCH
+ circle_sha1:
+ type: string
+ default: $CIRCLE_SHA1
+ ecs_cluster:
+ type: string
+ default: $ECS_CLUSTER
+ migration_task:
+ type: string
+ default: $MIGRATION_TASK
+ service_name:
+ type: string
+ default: $SERVICE_NAME
+ task_family:
+ type: string
+ default: $TASK_FAMILY
steps:
- run:
name: Deploy
command: |
aws configure set default.region us-west-2
- CLEAN_BRANCH=`echo $CIRCLE_BRANCH | sed 's/\//-/g'`
- DOCKER_TAG=${BUILD_CONTAINER_REPOSITORY}:${CIRCLE_SHA1}
- CURRENT_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${TASK_FAMILY} --sort DESC | jq -r '.taskDefinitionArns[0]'`
+ CLEAN_BRANCH=`echo << parameters.circle_branch >> | sed 's/\//-/g'`
+ DOCKER_TAG=<< parameters.build_container_repository >>:<< parameters.circle_sha1 >>
+ CURRENT_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix << parameters.task_family >> --sort DESC | jq -r '.taskDefinitionArns[0]'`
TASK_JSON=`aws ecs describe-task-definition --task-definition ${CURRENT_TASK} | jq --arg DOCKER_TAG "$DOCKER_TAG" '.taskDefinition.containerDefinitions[0].image = $DOCKER_TAG | {containerDefinitions: .taskDefinition.containerDefinitions, family: .taskDefinition.family}'`
aws ecs register-task-definition --cli-input-json "${TASK_JSON}"
- aws ecs run-task --cluster ${ECS_CLUSTER} --task-definition ${MIGRATION_TASK}
- NEW_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${TASK_FAMILY} --sort DESC | jq -r '.taskDefinitionArns[0]'`
- aws ecs update-service --service ${SERVICE_NAME} --cluster ${ECS_CLUSTER} --task-definition ${NEW_TASK}
+ aws ecs run-task --cluster << parameters.ecs_cluster >> --task-definition << parameters.migration_task >>
+ NEW_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix << parameters.task_family >> --sort DESC | jq -r '.taskDefinitionArns[0]'`
+ aws ecs update-service --service << parameters.service_name >> --cluster << parameters.ecs_cluster >> --task-definition ${NEW_TASK}
jobs:
test:
From e8838d49391c15013fa313b23272e3f9a22fe041 Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Fri, 9 Sep 2022 09:01:54 -0700
Subject: [PATCH 08/82] Use env_var_name
---
.circleci/config.yml | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 81a59c7ec..d1b419dd9 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -6,26 +6,26 @@ commands:
aws-deploy:
parameters:
build_container_repository:
- type: string
- default: $BUILD_CONTAINER_REPOSITORY
+ type: env_var_name
+ default: BUILD_CONTAINER_REPOSITORY
circle_branch:
- type: string
- default: $CIRCLE_BRANCH
+ type: env_var_name
+ default: CIRCLE_BRANCH
circle_sha1:
- type: string
- default: $CIRCLE_SHA1
+ type: env_var_name
+ default: CIRCLE_SHA1
ecs_cluster:
- type: string
- default: $ECS_CLUSTER
+ type: env_var_name
+ default: ECS_CLUSTER
migration_task:
- type: string
- default: $MIGRATION_TASK
+ type: env_var_name
+ default: MIGRATION_TASK
service_name:
- type: string
- default: $SERVICE_NAME
+ type: env_var_name
+ default: SERVICE_NAME
task_family:
- type: string
- default: $TASK_FAMILY
+ type: env_var_name
+ default: TASK_FAMILY
steps:
- run:
name: Deploy
From 816560b26ce5a70c0038ae654329bae269b12e20 Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Fri, 9 Sep 2022 09:14:36 -0700
Subject: [PATCH 09/82] Add delimiters to environment variables
---
.circleci/config.yml | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index d1b419dd9..e68fd044e 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -31,14 +31,14 @@ commands:
name: Deploy
command: |
aws configure set default.region us-west-2
- CLEAN_BRANCH=`echo << parameters.circle_branch >> | sed 's/\//-/g'`
- DOCKER_TAG=<< parameters.build_container_repository >>:<< parameters.circle_sha1 >>
- CURRENT_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix << parameters.task_family >> --sort DESC | jq -r '.taskDefinitionArns[0]'`
+ CLEAN_BRANCH=`echo ${<< parameters.circle_branch >>} | sed 's/\//-/g'`
+ DOCKER_TAG=${<< parameters.build_container_repository >>}:${<< parameters.circle_sha1 >>}
+ CURRENT_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${<< parameters.task_family >>} --sort DESC | jq -r '.taskDefinitionArns[0]'`
TASK_JSON=`aws ecs describe-task-definition --task-definition ${CURRENT_TASK} | jq --arg DOCKER_TAG "$DOCKER_TAG" '.taskDefinition.containerDefinitions[0].image = $DOCKER_TAG | {containerDefinitions: .taskDefinition.containerDefinitions, family: .taskDefinition.family}'`
aws ecs register-task-definition --cli-input-json "${TASK_JSON}"
- aws ecs run-task --cluster << parameters.ecs_cluster >> --task-definition << parameters.migration_task >>
- NEW_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix << parameters.task_family >> --sort DESC | jq -r '.taskDefinitionArns[0]'`
- aws ecs update-service --service << parameters.service_name >> --cluster << parameters.ecs_cluster >> --task-definition ${NEW_TASK}
+ aws ecs run-task --cluster ${<< parameters.ecs_cluster >>} --task-definition ${<< parameters.migration_task >>}
+ NEW_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${<< parameters.task_family >>} --sort DESC | jq -r '.taskDefinitionArns[0]'`
+ aws ecs update-service --service ${<< parameters.service_name >>} --cluster ${<< parameters.ecs_cluster >>} --task-definition ${NEW_TASK}
jobs:
test:
From a7d66bbbe5ba729b0de38c1b633f213eed227b4c Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Fri, 9 Sep 2022 09:35:24 -0700
Subject: [PATCH 10/82] Use
---
.circleci/config.yml | 26 ++++++++++----------------
1 file changed, 10 insertions(+), 16 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index e68fd044e..cc70fe127 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -8,12 +8,6 @@ commands:
build_container_repository:
type: env_var_name
default: BUILD_CONTAINER_REPOSITORY
- circle_branch:
- type: env_var_name
- default: CIRCLE_BRANCH
- circle_sha1:
- type: env_var_name
- default: CIRCLE_SHA1
ecs_cluster:
type: env_var_name
default: ECS_CLUSTER
@@ -31,8 +25,8 @@ commands:
name: Deploy
command: |
aws configure set default.region us-west-2
- CLEAN_BRANCH=`echo ${<< parameters.circle_branch >>} | sed 's/\//-/g'`
- DOCKER_TAG=${<< parameters.build_container_repository >>}:${<< parameters.circle_sha1 >>}
+ CLEAN_BRANCH=`echo ${CIRCLE_BRANCH} | sed 's/\//-/g'`
+ DOCKER_TAG=${<< parameters.build_container_repository >>}:${CIRCLE_SHA1}
CURRENT_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${<< parameters.task_family >>} --sort DESC | jq -r '.taskDefinitionArns[0]'`
TASK_JSON=`aws ecs describe-task-definition --task-definition ${CURRENT_TASK} | jq --arg DOCKER_TAG "$DOCKER_TAG" '.taskDefinition.containerDefinitions[0].image = $DOCKER_TAG | {containerDefinitions: .taskDefinition.containerDefinitions, family: .taskDefinition.family}'`
aws ecs register-task-definition --cli-input-json "${TASK_JSON}"
@@ -192,10 +186,10 @@ jobs:
- run:
name: update-service
command: |
- export TASK_FAMILY=lunch-staging
- export ECS_CLUSTER=Lunch-Staging
- export SERVICE_NAME=lunch-staging
- export MIGRATION_TASK=staging_lunch_migrate
+ echo 'export TASK_FAMILY="lunch-staging"' >> "$BASH_ENV"
+ echo 'export ECS_CLUSTER="Lunch-Staging"' >> "$BASH_ENV"
+ echo 'export SERVICE_NAME="lunch-staging"' >> "$BASH_ENV"
+ echo 'export MIGRATION_TASK="staging_lunch_migrate"' >> "$BASH_ENV"
- aws-deploy
@@ -209,10 +203,10 @@ jobs:
- run:
name: update_service
command: |
- export TASK_FAMILY=lunch
- export ECS_CLUSTER=Lunch
- export SERVICE_NAME=lunch
- export MIGRATION_TASK=lunch_migrate
+ echo 'export TASK_FAMILY="lunch"' >> "$BASH_ENV"
+ echo 'export ECS_CLUSTER="Lunch"' >> "$BASH_ENV"
+ echo 'export SERVICE_NAME="lunch"' >> "$BASH_ENV"
+ echo 'export MIGRATION_TASK="lunch_migrate"' >> "$BASH_ENV"
- aws-deploy
From 3193622ce1b99d74cf3aa6809783dbe131773b6f Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Fri, 9 Sep 2022 10:14:38 -0700
Subject: [PATCH 11/82] Directly use environment variables; hide them
---
.circleci/config.yml | 51 ++++++++++++++++++--------------------------
1 file changed, 21 insertions(+), 30 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index cc70fe127..8a95ec2d7 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -6,20 +6,20 @@ commands:
aws-deploy:
parameters:
build_container_repository:
- type: env_var_name
- default: BUILD_CONTAINER_REPOSITORY
+ type: string
+ default: ""
ecs_cluster:
- type: env_var_name
- default: ECS_CLUSTER
+ type: string
+ default: ""
migration_task:
- type: env_var_name
- default: MIGRATION_TASK
+ type: string
+ default: ""
service_name:
- type: env_var_name
- default: SERVICE_NAME
+ type: string
+ default: ""
task_family:
- type: env_var_name
- default: TASK_FAMILY
+ type: string
+ default: ""
steps:
- run:
name: Deploy
@@ -29,7 +29,7 @@ commands:
DOCKER_TAG=${<< parameters.build_container_repository >>}:${CIRCLE_SHA1}
CURRENT_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${<< parameters.task_family >>} --sort DESC | jq -r '.taskDefinitionArns[0]'`
TASK_JSON=`aws ecs describe-task-definition --task-definition ${CURRENT_TASK} | jq --arg DOCKER_TAG "$DOCKER_TAG" '.taskDefinition.containerDefinitions[0].image = $DOCKER_TAG | {containerDefinitions: .taskDefinition.containerDefinitions, family: .taskDefinition.family}'`
- aws ecs register-task-definition --cli-input-json "${TASK_JSON}"
+ aws ecs register-task-definition --cli-input-json "${TASK_JSON}" > /dev/null
aws ecs run-task --cluster ${<< parameters.ecs_cluster >>} --task-definition ${<< parameters.migration_task >>}
NEW_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${<< parameters.task_family >>} --sort DESC | jq -r '.taskDefinitionArns[0]'`
aws ecs update-service --service ${<< parameters.service_name >>} --cluster ${<< parameters.ecs_cluster >>} --task-definition ${NEW_TASK}
@@ -182,16 +182,11 @@ jobs:
# working_directory: ~/repo
steps:
- # update ECS task and service with image build above
- - run:
- name: update-service
- command: |
- echo 'export TASK_FAMILY="lunch-staging"' >> "$BASH_ENV"
- echo 'export ECS_CLUSTER="Lunch-Staging"' >> "$BASH_ENV"
- echo 'export SERVICE_NAME="lunch-staging"' >> "$BASH_ENV"
- echo 'export MIGRATION_TASK="staging_lunch_migrate"' >> "$BASH_ENV"
-
- - aws-deploy
+ - aws-deploy:
+ task_family: lunch-staging
+ ecs_cluster: Lunch-Staging
+ service_name: lunch-staging
+ migration_task: staging_lunch_migrate
deploy-production:
docker:
@@ -200,15 +195,11 @@ jobs:
# working_directory: ~/repo
steps:
- - run:
- name: update_service
- command: |
- echo 'export TASK_FAMILY="lunch"' >> "$BASH_ENV"
- echo 'export ECS_CLUSTER="Lunch"' >> "$BASH_ENV"
- echo 'export SERVICE_NAME="lunch"' >> "$BASH_ENV"
- echo 'export MIGRATION_TASK="lunch_migrate"' >> "$BASH_ENV"
-
- - aws-deploy
+ - aws-deploy:
+ task_family: lunch
+ ecs_cluster: Lunch
+ service_name: lunch
+ migration_task: lunch_migrate
# WORKFLOW DEFINITIONS
workflows:
From 49161f6c5a592092ca215a9fb3172342e710b6b8 Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Fri, 9 Sep 2022 10:28:43 -0700
Subject: [PATCH 12/82] Fix interpolation
---
.circleci/config.yml | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 8a95ec2d7..f5e8c390c 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -6,8 +6,8 @@ commands:
aws-deploy:
parameters:
build_container_repository:
- type: string
- default: ""
+ type: env_var_name
+ default: BUILD_CONTAINER_REPOSITORY
ecs_cluster:
type: string
default: ""
@@ -27,12 +27,12 @@ commands:
aws configure set default.region us-west-2
CLEAN_BRANCH=`echo ${CIRCLE_BRANCH} | sed 's/\//-/g'`
DOCKER_TAG=${<< parameters.build_container_repository >>}:${CIRCLE_SHA1}
- CURRENT_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${<< parameters.task_family >>} --sort DESC | jq -r '.taskDefinitionArns[0]'`
+ CURRENT_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix << parameters.task_family >> --sort DESC | jq -r '.taskDefinitionArns[0]'`
TASK_JSON=`aws ecs describe-task-definition --task-definition ${CURRENT_TASK} | jq --arg DOCKER_TAG "$DOCKER_TAG" '.taskDefinition.containerDefinitions[0].image = $DOCKER_TAG | {containerDefinitions: .taskDefinition.containerDefinitions, family: .taskDefinition.family}'`
aws ecs register-task-definition --cli-input-json "${TASK_JSON}" > /dev/null
- aws ecs run-task --cluster ${<< parameters.ecs_cluster >>} --task-definition ${<< parameters.migration_task >>}
- NEW_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix ${<< parameters.task_family >>} --sort DESC | jq -r '.taskDefinitionArns[0]'`
- aws ecs update-service --service ${<< parameters.service_name >>} --cluster ${<< parameters.ecs_cluster >>} --task-definition ${NEW_TASK}
+ aws ecs run-task --cluster << parameters.ecs_cluster >> --task-definition << parameters.migration_task >>
+ NEW_TASK=`aws ecs list-task-definitions --status ACTIVE --family-prefix << parameters.task_family >> --sort DESC | jq -r '.taskDefinitionArns[0]'`
+ aws ecs update-service --service << parameters.service_name >> --cluster << parameters.ecs_cluster >> --task-definition ${NEW_TASK}
jobs:
test:
From b2cb006379464f51e756a4d4cd7376a38111a17c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 5 Oct 2022 15:07:21 +0000
Subject: [PATCH 13/82] Bump css-what from 2.1.0 to 2.1.3
Bumps [css-what](https://github.com/fb55/css-what) from 2.1.0 to 2.1.3.
- [Release notes](https://github.com/fb55/css-what/releases)
- [Commits](https://github.com/fb55/css-what/compare/v2.1.0...v2.1.3)
---
updated-dependencies:
- dependency-name: css-what
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
yarn.lock | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 1fec436cf..585170041 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3619,8 +3619,9 @@ css-unit-converter@^1.1.1:
resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996"
css-what@2.1:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd"
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
+ integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
css@^2.0.0:
version "2.2.1"
From 625ad1e8b4d8fe65599c38a1c80e82ffa9447148 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 3 Dec 2022 15:37:23 +0000
Subject: [PATCH 14/82] Bump decode-uri-component from 0.2.0 to 0.2.2
Bumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2.
- [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases)
- [Commits](https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.2)
---
updated-dependencies:
- dependency-name: decode-uri-component
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
yarn.lock | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 585170041..ac0f277a4 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3779,8 +3779,9 @@ decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0:
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
decode-uri-component@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
+ integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
dedent@^0.7.0:
version "0.7.0"
From 184ca09f7abfcce03bb03152ea3ec0aca694ecef Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 8 Dec 2022 18:17:55 +0000
Subject: [PATCH 15/82] Bump express from 4.16.3 to 4.17.3
Bumps [express](https://github.com/expressjs/express) from 4.16.3 to 4.17.3.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.16.3...4.17.3)
---
updated-dependencies:
- dependency-name: express
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
---
package.json | 2 +-
yarn.lock | 303 +++++++++++++++++++++++++++++----------------------
2 files changed, 176 insertions(+), 129 deletions(-)
diff --git a/package.json b/package.json
index 8026ba305..77a823fc1 100644
--- a/package.json
+++ b/package.json
@@ -27,7 +27,7 @@
"cors": "^2.8.3",
"dotenv": "^2.0.0",
"eventemitter3": "^1.2.0",
- "express": "^4.16.3",
+ "express": "^4.17.3",
"express-jwt": "^5.3.1",
"express-session": "^1.15.2",
"express-sslify": "^1.2.0",
diff --git a/yarn.lock b/yarn.lock
index ac0f277a4..35dc4e62b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1072,12 +1072,13 @@ abbrev@1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
-accepts@~1.3.4, accepts@~1.3.5:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
+accepts@~1.3.4, accepts@~1.3.8:
+ version "1.3.8"
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
+ integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
dependencies:
- mime-types "~2.1.18"
- negotiator "0.6.1"
+ mime-types "~2.1.34"
+ negotiator "0.6.3"
acorn-dynamic-import@^3.0.0:
version "3.0.0"
@@ -2417,35 +2418,21 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
version "4.11.8"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
-body-parser@1.18.2:
- version "1.18.2"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
+body-parser@1.19.2, body-parser@^1.18.3:
+ version "1.19.2"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e"
+ integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==
dependencies:
- bytes "3.0.0"
- content-type "~1.0.4"
- debug "2.6.9"
- depd "~1.1.1"
- http-errors "~1.6.2"
- iconv-lite "0.4.19"
- on-finished "~2.3.0"
- qs "6.5.1"
- raw-body "2.3.2"
- type-is "~1.6.15"
-
-body-parser@^1.18.3:
- version "1.18.3"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4"
- dependencies:
- bytes "3.0.0"
+ bytes "3.1.2"
content-type "~1.0.4"
debug "2.6.9"
depd "~1.1.2"
- http-errors "~1.6.3"
- iconv-lite "0.4.23"
+ http-errors "1.8.1"
+ iconv-lite "0.4.24"
on-finished "~2.3.0"
- qs "6.5.2"
- raw-body "2.3.3"
- type-is "~1.6.16"
+ qs "6.9.7"
+ raw-body "2.4.3"
+ type-is "~1.6.18"
boolbase@~1.0.0:
version "1.0.0"
@@ -2687,6 +2674,11 @@ bytes@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
+bytes@3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
+ integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
+
cacache@^10.0.4:
version "10.0.4"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460"
@@ -3363,9 +3355,12 @@ contains-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
-content-disposition@0.5.2:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
+content-disposition@0.5.4:
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
+ integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
+ dependencies:
+ safe-buffer "5.2.1"
content-type@~1.0.4:
version "1.0.4"
@@ -3394,6 +3389,11 @@ cookie@0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
+cookie@0.4.2:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
+ integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
+
cookiejar@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a"
@@ -3741,27 +3741,27 @@ debug@2.6.9, debug@^2.1.1, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.
dependencies:
ms "2.0.0"
-debug@3.1.0, debug@=3.1.0, debug@^3.0.0, debug@~3.1.0:
+debug@3.1.0, debug@=3.1.0, debug@~3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
dependencies:
ms "2.0.0"
-debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3:
+debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
-debug@4.1.1, debug@^4.0.1:
+debug@4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
dependencies:
ms "^2.1.1"
-debug@^3.1.0:
+debug@^3.0.0, debug@^3.1.0:
version "3.2.5"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.5.tgz#c2418fbfd7a29f4d4f70ff4cea604d4b64c46407"
dependencies:
@@ -3874,10 +3874,6 @@ delegates@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
-depd@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
-
depd@^1.1.0, depd@^1.1.2, depd@~1.1.1, depd@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@@ -4785,38 +4781,39 @@ express-ws@^3.0.0:
dependencies:
ws "^2.0.0"
-express@^4.16.3:
- version "4.16.3"
- resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53"
+express@^4.16.3, express@^4.17.3:
+ version "4.17.3"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1"
+ integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==
dependencies:
- accepts "~1.3.5"
+ accepts "~1.3.8"
array-flatten "1.1.1"
- body-parser "1.18.2"
- content-disposition "0.5.2"
+ body-parser "1.19.2"
+ content-disposition "0.5.4"
content-type "~1.0.4"
- cookie "0.3.1"
+ cookie "0.4.2"
cookie-signature "1.0.6"
debug "2.6.9"
depd "~1.1.2"
encodeurl "~1.0.2"
escape-html "~1.0.3"
etag "~1.8.1"
- finalhandler "1.1.1"
+ finalhandler "~1.1.2"
fresh "0.5.2"
merge-descriptors "1.0.1"
methods "~1.1.2"
on-finished "~2.3.0"
- parseurl "~1.3.2"
+ parseurl "~1.3.3"
path-to-regexp "0.1.7"
- proxy-addr "~2.0.3"
- qs "6.5.1"
- range-parser "~1.2.0"
- safe-buffer "5.1.1"
- send "0.16.2"
- serve-static "1.13.2"
- setprototypeof "1.1.0"
- statuses "~1.4.0"
- type-is "~1.6.16"
+ proxy-addr "~2.0.7"
+ qs "6.9.7"
+ range-parser "~1.2.1"
+ safe-buffer "5.2.1"
+ send "0.17.2"
+ serve-static "1.14.2"
+ setprototypeof "1.2.0"
+ statuses "~1.5.0"
+ type-is "~1.6.18"
utils-merge "1.0.1"
vary "~1.1.2"
@@ -5067,16 +5064,17 @@ finalhandler@1.1.0:
statuses "~1.3.1"
unpipe "~1.0.0"
-finalhandler@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105"
+finalhandler@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
+ integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
dependencies:
debug "2.6.9"
encodeurl "~1.0.2"
escape-html "~1.0.3"
on-finished "~2.3.0"
- parseurl "~1.3.2"
- statuses "~1.4.0"
+ parseurl "~1.3.3"
+ statuses "~1.5.0"
unpipe "~1.0.0"
find-cache-dir@^0.1.1:
@@ -5229,9 +5227,10 @@ formidable@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.1.1.tgz#96b8886f7c3c3508b932d6bd70c4d3a88f35f1a9"
-forwarded@~0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
+forwarded@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
+ integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
fragment-cache@^0.2.1:
version "0.2.1"
@@ -5932,16 +5931,7 @@ http-cache-semantics@^4.1.0:
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
-http-errors@1.6.2:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
- dependencies:
- depd "1.1.1"
- inherits "2.0.3"
- setprototypeof "1.0.3"
- statuses ">= 1.3.1 < 2"
-
-http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3:
+http-errors@1.6.3, http-errors@~1.6.2:
version "1.6.3"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
dependencies:
@@ -5950,6 +5940,17 @@ http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3:
setprototypeof "1.1.0"
statuses ">= 1.4.0 < 2"
+http-errors@1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c"
+ integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.4"
+ setprototypeof "1.2.0"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.1"
+
http-parser-js@>=0.4.0:
version "0.4.13"
resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137"
@@ -6036,17 +6037,13 @@ husky@^1.0.0-rc.15:
run-node "^1.0.0"
slash "^2.0.0"
-iconv-lite@0.4.19:
- version "0.4.19"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
-
iconv-lite@0.4.23, iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
version "0.4.23"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
dependencies:
safer-buffer ">= 2.1.2 < 3"
-iconv-lite@^0.4.24:
+iconv-lite@0.4.24, iconv-lite@^0.4.24:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
dependencies:
@@ -6174,7 +6171,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
+inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -6274,9 +6271,10 @@ ip@^2.0.0:
resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da"
integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==
-ipaddr.js@1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b"
+ipaddr.js@1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
+ integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
is-accessor-descriptor@^0.1.6:
version "0.1.6"
@@ -7845,6 +7843,11 @@ miller-rabin@^4.0.0:
bn.js "^4.0.0"
brorand "^1.0.1"
+mime-db@1.52.0:
+ version "1.52.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
"mime-db@>= 1.30.0 < 2":
version "1.30.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
@@ -7862,7 +7865,7 @@ mime-db@~1.38.0:
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad"
integrity sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==
-mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18:
+mime-types@^2.1.12, mime-types@~2.1.17:
version "2.1.18"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
dependencies:
@@ -7874,6 +7877,13 @@ mime-types@~2.1.19:
dependencies:
mime-db "~1.36.0"
+mime-types@~2.1.24, mime-types@~2.1.34:
+ version "2.1.35"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
mime-types@~2.1.7:
version "2.1.22"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz#fe6b355a190926ab7698c9a0556a11199b2199bd"
@@ -7885,7 +7895,7 @@ mime@1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
-mime@^1.3.4, mime@^1.4.1:
+mime@1.6.0, mime@^1.3.4, mime@^1.4.1:
version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
@@ -8169,7 +8179,7 @@ ms@2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-ms@^2.0.0:
+ms@2.1.3, ms@^2.0.0:
version "2.1.3"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
@@ -8229,11 +8239,7 @@ needle@^2.2.0:
iconv-lite "^0.4.4"
sax "^1.2.4"
-negotiator@0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
-
-negotiator@^0.6.2:
+negotiator@0.6.3, negotiator@^0.6.2:
version "0.6.3"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
@@ -9012,9 +9018,10 @@ parseuri@0.0.6:
resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a"
integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==
-parseurl@~1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
+parseurl@~1.3.2, parseurl@~1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
pascalcase@^0.1.1:
version "0.1.1"
@@ -9721,12 +9728,13 @@ proto-list@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
-proxy-addr@~2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341"
+proxy-addr@~2.0.7:
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
+ integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
dependencies:
- forwarded "~0.1.2"
- ipaddr.js "1.6.0"
+ forwarded "0.2.0"
+ ipaddr.js "1.9.1"
proxy-from-env@1.0.0:
version "1.0.0"
@@ -9813,18 +9821,19 @@ qs@6.2.3:
version "6.2.3"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe"
-qs@6.5.1, qs@^6.5.1:
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
-
-qs@6.5.2, qs@~6.5.2:
- version "6.5.2"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+qs@6.9.7, qs@^6.5.1:
+ version "6.9.7"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe"
+ integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==
qs@~6.3.0:
version "6.3.2"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
+qs@~6.5.2:
+ version "6.5.2"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+
query-string@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.1.0.tgz#01e7d69f6a0940dac67a937d6c6325647aa4532a"
@@ -9896,20 +9905,22 @@ randomfill@^1.0.3:
randombytes "^2.0.5"
safe-buffer "^5.1.0"
-range-parser@^1.0.3, range-parser@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
+range-parser@^1.0.3, range-parser@~1.2.0, range-parser@~1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
-raw-body@2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
+raw-body@2.4.3:
+ version "2.4.3"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c"
+ integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==
dependencies:
- bytes "3.0.0"
- http-errors "1.6.2"
- iconv-lite "0.4.19"
+ bytes "3.1.2"
+ http-errors "1.8.1"
+ iconv-lite "0.4.24"
unpipe "1.0.0"
-raw-body@2.3.3, raw-body@^2.3.2:
+raw-body@^2.3.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3"
dependencies:
@@ -10815,7 +10826,7 @@ safe-buffer@5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
-safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
+safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@@ -10945,6 +10956,25 @@ send@0.16.2:
range-parser "~1.2.0"
statuses "~1.4.0"
+send@0.17.2:
+ version "0.17.2"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820"
+ integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==
+ dependencies:
+ debug "2.6.9"
+ depd "~1.1.2"
+ destroy "~1.0.4"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ fresh "0.5.2"
+ http-errors "1.8.1"
+ mime "1.6.0"
+ ms "2.1.3"
+ on-finished "~2.3.0"
+ range-parser "~1.2.1"
+ statuses "~1.5.0"
+
sendgrid-rest@^2.3.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/sendgrid-rest/-/sendgrid-rest-2.4.0.tgz#88e11a86375ec0e14b5faf1b4a0a191639ce90ef"
@@ -11030,6 +11060,16 @@ serve-static@1.13.2:
parseurl "~1.3.2"
send "0.16.2"
+serve-static@1.14.2:
+ version "1.14.2"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa"
+ integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==
+ dependencies:
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ parseurl "~1.3.3"
+ send "0.17.2"
+
server-destroy@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd"
@@ -11060,14 +11100,15 @@ setimmediate@^1.0.4, setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
-setprototypeof@1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
-
setprototypeof@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+setprototypeof@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
+ integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
+
sha.js@^2.4.0, sha.js@^2.4.8:
version "2.4.11"
resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
@@ -11525,7 +11566,7 @@ static-extend@^0.1.1:
define-property "^0.2.5"
object-copy "^0.1.0"
-"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2":
+"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
@@ -12096,6 +12137,11 @@ to-regex@^3.0.1, to-regex@^3.0.2:
regex-not "^1.0.2"
safe-regex "^1.1.0"
+toidentifier@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
+ integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+
topo@2.x.x:
version "2.0.2"
resolved "https://registry.yarnpkg.com/topo/-/topo-2.0.2.tgz#cd5615752539057c0dc0491a621c3bc6fbe1d182"
@@ -12233,12 +12279,13 @@ type-fest@^0.8.1:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
-type-is@~1.6.15, type-is@~1.6.16:
- version "1.6.16"
- resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
+type-is@~1.6.18:
+ version "1.6.18"
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+ integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
dependencies:
media-typer "0.3.0"
- mime-types "~2.1.18"
+ mime-types "~2.1.24"
typedarray@^0.0.6:
version "0.0.6"
From 32cbe7c8270145b8df8a1796246b166e84e0c41c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 22 Dec 2022 08:56:46 +0000
Subject: [PATCH 16/82] Bump jsonwebtoken from 8.3.0 to 9.0.0
Bumps [jsonwebtoken](https://github.com/auth0/node-jsonwebtoken) from 8.3.0 to 9.0.0.
- [Release notes](https://github.com/auth0/node-jsonwebtoken/releases)
- [Changelog](https://github.com/auth0/node-jsonwebtoken/blob/master/CHANGELOG.md)
- [Commits](https://github.com/auth0/node-jsonwebtoken/compare/v8.3.0...v9.0.0)
---
updated-dependencies:
- dependency-name: jsonwebtoken
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
---
package.json | 2 +-
yarn.lock | 61 ++++++++++++++++++++++++++++------------------------
2 files changed, 34 insertions(+), 29 deletions(-)
diff --git a/package.json b/package.json
index 77a823fc1..13ca7df22 100644
--- a/package.json
+++ b/package.json
@@ -41,7 +41,7 @@
"immutability-helper": "^2.1.2",
"isomorphic-fetch": "^2.2.1",
"isomorphic-style-loader": "^4.0.0",
- "jsonwebtoken": "^8.3.0",
+ "jsonwebtoken": "^9.0.0",
"method-override": "^2.3.8",
"mocha-junit-reporter": "^1.17.0",
"moment": "^2.29.2",
diff --git a/yarn.lock b/yarn.lock
index 35dc4e62b..a43936188 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4074,9 +4074,10 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
-ecdsa-sig-formatter@1.0.10:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz#1c595000f04a8897dfb85000892a0f4c33af86c3"
+ecdsa-sig-formatter@1.0.11:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf"
+ integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==
dependencies:
safe-buffer "^5.0.1"
@@ -6937,7 +6938,7 @@ jsonpointer@^4.0.0:
resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.1.0.tgz#501fb89986a2389765ba09e6053299ceb4f2c2cc"
integrity sha512-CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg==
-jsonwebtoken@^8.1.0, jsonwebtoken@^8.3.0:
+jsonwebtoken@^8.1.0:
version "8.3.0"
resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.3.0.tgz#056c90eee9a65ed6e6c72ddb0a1d325109aaf643"
dependencies:
@@ -6951,6 +6952,16 @@ jsonwebtoken@^8.1.0, jsonwebtoken@^8.3.0:
lodash.once "^4.0.0"
ms "^2.1.1"
+jsonwebtoken@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#d0faf9ba1cc3a56255fe49c0961a67e520c1926d"
+ integrity sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==
+ dependencies:
+ jws "^3.2.2"
+ lodash "^4.17.21"
+ ms "^2.1.1"
+ semver "^7.3.8"
+
jsprim@^1.2.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
@@ -6981,19 +6992,21 @@ just-extend@^4.0.2:
resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744"
integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==
-jwa@^1.1.5:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.6.tgz#87240e76c9808dbde18783cf2264ef4929ee50e6"
+jwa@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a"
+ integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==
dependencies:
buffer-equal-constant-time "1.0.1"
- ecdsa-sig-formatter "1.0.10"
+ ecdsa-sig-formatter "1.0.11"
safe-buffer "^5.0.1"
-jws@^3.1.5:
- version "3.1.5"
- resolved "https://registry.yarnpkg.com/jws/-/jws-3.1.5.tgz#80d12d05b293d1e841e7cb8b4e69e561adcf834f"
+jws@^3.1.5, jws@^3.2.2:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304"
+ integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==
dependencies:
- jwa "^1.1.5"
+ jwa "^1.4.1"
safe-buffer "^5.0.1"
keycode@^2.1.2:
@@ -8179,15 +8192,11 @@ ms@2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-ms@2.1.3, ms@^2.0.0:
+ms@2.1.3, ms@^2.0.0, ms@^2.1.1:
version "2.1.3"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-ms@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
-
mute-stream@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
@@ -10914,27 +10923,23 @@ semver-compare@^1.0.0:
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
-"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
+"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1:
+ version "5.5.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477"
semver@^4.1.0:
version "4.3.6"
resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da"
-semver@^5.5.1:
- version "5.5.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477"
-
semver@^6.0.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
-semver@^7.3.2, semver@^7.3.4, semver@^7.3.5:
- version "7.3.7"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f"
- integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
+semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.8:
+ version "7.3.8"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
+ integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
dependencies:
lru-cache "^6.0.0"
From 1149be63d643d77c12c28e0e8237eaa95eec929c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 23 Jan 2023 19:26:57 +0000
Subject: [PATCH 17/82] Bump cookiejar from 2.1.1 to 2.1.4
Bumps [cookiejar](https://github.com/bmeck/node-cookiejar) from 2.1.1 to 2.1.4.
- [Release notes](https://github.com/bmeck/node-cookiejar/releases)
- [Commits](https://github.com/bmeck/node-cookiejar/commits)
---
updated-dependencies:
- dependency-name: cookiejar
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
yarn.lock | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index a43936188..26b527f6f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3395,8 +3395,9 @@ cookie@0.4.2:
integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
cookiejar@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a"
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.4.tgz#ee669c1fea2cf42dc31585469d193fef0d65771b"
+ integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==
copy-concurrently@^1.0.0:
version "1.0.5"
From 0f0d4cbc53b8b7f9f4f8e75c4df9c05dae0c7840 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 4 Feb 2023 16:30:28 +0000
Subject: [PATCH 18/82] Bump http-cache-semantics from 4.1.0 to 4.1.1
Bumps [http-cache-semantics](https://github.com/kornelski/http-cache-semantics) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/kornelski/http-cache-semantics/releases)
- [Commits](https://github.com/kornelski/http-cache-semantics/compare/v4.1.0...v4.1.1)
---
updated-dependencies:
- dependency-name: http-cache-semantics
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 26b527f6f..7b843660c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5929,9 +5929,9 @@ htmlparser2@~3.3.0:
readable-stream "1.0"
http-cache-semantics@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
- integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
+ integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
http-errors@1.6.3, http-errors@~1.6.2:
version "1.6.3"
From 823171b441e27068d07414702aa49d7551b3424c Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Mon, 6 Feb 2023 09:30:12 -0800
Subject: [PATCH 19/82] Upgrade React-Geosuggest
---
package.json | 2 +-
yarn.lock | 14 +++++++-------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package.json b/package.json
index 13ca7df22..7eb09f276 100644
--- a/package.json
+++ b/package.json
@@ -61,7 +61,7 @@
"react-bootstrap": "^0.31.0",
"react-dom": "^16.5.2",
"react-flip-move": "^3.0.1",
- "react-geosuggest": "^2.7.0",
+ "react-geosuggest": "^2.14.1",
"react-intl": "^2.3.0",
"react-redux": "^5.0.6",
"react-scroll": "^1.7.6",
diff --git a/yarn.lock b/yarn.lock
index 7b843660c..818035ad2 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3007,7 +3007,7 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"
-classnames@^2.2.3, classnames@^2.2.5:
+classnames@^2.2.5:
version "2.2.5"
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d"
@@ -9952,7 +9952,7 @@ rc@^1.1.7:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
-react-addons-shallow-compare@^15.4.2, react-addons-shallow-compare@^15.6.2:
+react-addons-shallow-compare@^15.4.2:
version "15.6.2"
resolved "https://registry.yarnpkg.com/react-addons-shallow-compare/-/react-addons-shallow-compare-15.6.2.tgz#198a00b91fc37623db64a28fd17b596ba362702f"
dependencies:
@@ -10034,13 +10034,13 @@ react-flip-move@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/react-flip-move/-/react-flip-move-3.0.1.tgz#7bb5351c6e1d9778baf748cc5292aa98250c3401"
-react-geosuggest@^2.7.0:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/react-geosuggest/-/react-geosuggest-2.7.0.tgz#6c02ea685062cf191aca40879c17916337d16250"
+react-geosuggest@^2.14.1:
+ version "2.14.1"
+ resolved "https://registry.yarnpkg.com/react-geosuggest/-/react-geosuggest-2.14.1.tgz#1e127b24d3c8b4ffb353bb0b74370ddc6806e8b8"
+ integrity sha512-gaAEZfDEHHWEMn9y8UNH+nJzu5Kc3LvK8CAFD6dFZmn69TJ/4GgoXLCLzUunbPK/Nqs08mpDsryK5ceFFmVhVg==
dependencies:
- classnames "^2.2.3"
+ classnames "^2.2.6"
lodash.debounce "^4.0.6"
- react-addons-shallow-compare "^15.6.2"
react-intl@^2.3.0:
version "2.4.0"
From e1f1f884410c7d37f312ebe979014c574c4a8576 Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Mon, 6 Feb 2023 09:35:14 -0800
Subject: [PATCH 20/82] Upgrade lint-staged
---
package.json | 27 +--
yarn.lock | 603 ++++++++++++++++++++-------------------------------
2 files changed, 246 insertions(+), 384 deletions(-)
diff --git a/package.json b/package.json
index 7eb09f276..d398274c9 100644
--- a/package.json
+++ b/package.json
@@ -141,7 +141,7 @@
"husky": "^1.0.0-rc.15",
"identity-obj-proxy": "^3.0.0",
"json-loader": "^0.5.4",
- "lint-staged": "^8.1.4",
+ "lint-staged": "^13.1.0",
"mkdirp": "^0.5.1",
"mocha": "^5.0.0",
"node-sass": "7.0.0",
@@ -194,22 +194,17 @@
"workbox-webpack-plugin": "^3.2.0"
},
"lint-staged": {
- "ignore": [
- "package.json"
+ "*.{js,jsx}": [
+ "eslint --no-ignore --fix",
+ "git add --force"
],
- "linters": {
- "*.{js,jsx}": [
- "eslint --no-ignore --fix",
- "git add --force"
- ],
- "*.{json,md,graphql}": [
- "git add --force"
- ],
- "*.{css,less,styl,scss,sass,sss}": [
- "stylelint --fix",
- "git add --force"
- ]
- }
+ "*.{json,md,graphql}": [
+ "git add --force"
+ ],
+ "*.{css,less,styl,scss,sass,sss}": [
+ "stylelint --fix",
+ "git add --force"
+ ]
},
"scripts": {
"precommit": "npm run test && lint-staged",
diff --git a/yarn.lock b/yarn.lock
index 818035ad2..e1ef61ba1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -680,13 +680,6 @@
pirates "^4.0.0"
source-map-support "^0.5.9"
-"@babel/runtime@7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c"
- integrity sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==
- dependencies:
- regenerator-runtime "^0.12.0"
-
"@babel/template@7.0.0-beta.44":
version "7.0.0-beta.44"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f"
@@ -791,20 +784,6 @@
resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
-"@iamstarkov/listr-update-renderer@0.4.1":
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/@iamstarkov/listr-update-renderer/-/listr-update-renderer-0.4.1.tgz#d7c48092a2dcf90fd672b6c8b458649cb350c77e"
- integrity sha512-IJyxQWsYDEkf8C8QthBn5N8tIUR9V9je6j3sMIpAkonaadjbvxmRC6RAhpa3RKxndhNnU2M6iNbtJwd7usQYIA==
- dependencies:
- chalk "^1.1.3"
- cli-truncate "^0.2.1"
- elegant-spinner "^1.0.1"
- figures "^1.7.0"
- indent-string "^3.0.0"
- log-symbols "^1.0.2"
- log-update "^2.3.0"
- strip-ansi "^3.0.1"
-
"@mapbox/node-pre-gyp@^1.0.0":
version "1.0.9"
resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz#09a8781a3a036151cdebbe8719d6f8b25d4058bc"
@@ -851,13 +830,6 @@
mkdirp "^1.0.4"
rimraf "^3.0.2"
-"@samverschueren/stream-to-observable@^0.3.0":
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f"
- integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==
- dependencies:
- any-observable "^0.3.0"
-
"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.3":
version "1.8.3"
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"
@@ -1232,6 +1204,11 @@ ansi-regex@^5.0.1:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+ansi-regex@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
+ integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
+
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
@@ -1249,10 +1226,10 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
dependencies:
color-convert "^2.0.1"
-any-observable@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b"
- integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==
+ansi-styles@^6.0.0:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
+ integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
anymatch@^2.0.0:
version "2.0.0"
@@ -2483,6 +2460,13 @@ braces@^2.3.0, braces@^2.3.1:
split-string "^3.0.2"
to-regex "^3.0.1"
+braces@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
brorand@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
@@ -2752,26 +2736,12 @@ call-me-maybe@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
-caller-callsite@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
- integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
- dependencies:
- callsites "^2.0.0"
-
caller-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
dependencies:
callsites "^0.2.0"
-caller-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
- integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
- dependencies:
- caller-callsite "^2.0.0"
-
callsite@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
@@ -2781,11 +2751,6 @@ callsites@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
-callsites@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
- integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
-
camelcase-keys@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
@@ -2864,7 +2829,7 @@ chain-function@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/chain-function/-/chain-function-1.0.0.tgz#0d4ab37e7e18ead0bdc47b920764118ce58733dc"
-chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
+chalk@1.1.3, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
dependencies:
@@ -2874,7 +2839,7 @@ chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
-chalk@^2.0, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2:
+chalk@^2.0, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -3031,7 +2996,7 @@ cli-color@^1.2.0:
memoizee "^0.4.3"
timers-ext "0.1"
-cli-cursor@^2.0.0, cli-cursor@^2.1.0:
+cli-cursor@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
dependencies:
@@ -3053,13 +3018,6 @@ cli-table3@~0.6.1:
optionalDependencies:
"@colors/colors" "1.5.0"
-cli-truncate@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
- dependencies:
- slice-ansi "0.0.4"
- string-width "^1.0.1"
-
cli-truncate@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
@@ -3068,6 +3026,14 @@ cli-truncate@^2.1.0:
slice-ansi "^3.0.0"
string-width "^4.2.0"
+cli-truncate@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389"
+ integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==
+ dependencies:
+ slice-ansi "^5.0.0"
+ string-width "^5.0.0"
+
cli-width@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
@@ -3185,7 +3151,7 @@ color@^0.11.0:
color-convert "^1.3.0"
color-string "^0.3.0"
-colorette@^2.0.16:
+colorette@^2.0.16, colorette@^2.0.19:
version "2.0.19"
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798"
integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==
@@ -3211,7 +3177,7 @@ commander@2.11.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
-commander@^2.11.0, commander@^2.14.1, commander@^2.2.0, commander@^2.8.1, commander@^2.9.0:
+commander@^2.11.0, commander@^2.2.0, commander@^2.8.1, commander@^2.9.0:
version "2.15.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
@@ -3224,6 +3190,11 @@ commander@^5.1.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
+commander@^9.4.1:
+ version "9.5.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30"
+ integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==
+
commander@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-1.1.1.tgz#50d1651868ae60eccff0a2d9f34595376bc6b041"
@@ -3454,17 +3425,6 @@ cosmiconfig@^5.0.0:
js-yaml "^3.9.0"
parse-json "^4.0.0"
-cosmiconfig@^5.0.2:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.1.0.tgz#6c5c35e97f37f985061cdf653f114784231185cf"
- integrity sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q==
- dependencies:
- import-fresh "^2.0.0"
- is-directory "^0.3.1"
- js-yaml "^3.9.0"
- lodash.get "^4.4.2"
- parse-json "^4.0.0"
-
cosmiconfig@^5.0.6:
version "5.0.6"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39"
@@ -3527,7 +3487,7 @@ cross-spawn@^4:
lru-cache "^4.0.1"
which "^1.2.9"
-cross-spawn@^6.0.0, cross-spawn@^6.0.5:
+cross-spawn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
dependencies:
@@ -3719,10 +3679,6 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
-date-fns@^1.27.2:
- version "1.29.0"
- resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6"
-
date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
@@ -3748,7 +3704,7 @@ debug@3.1.0, debug@=3.1.0, debug@~3.1.0:
dependencies:
ms "2.0.0"
-debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3:
+debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -3784,10 +3740,6 @@ decode-uri-component@^0.2.0:
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
-dedent@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
-
deep-diff@^0.3.5:
version "0.3.8"
resolved "https://registry.yarnpkg.com/deep-diff/-/deep-diff-0.3.8.tgz#c01de63efb0eec9798801d40c7e0dae25b582c84"
@@ -3855,18 +3807,6 @@ del@^2.0.2, del@^2.2.2:
pinkie-promise "^2.0.0"
rimraf "^2.2.8"
-del@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5"
- integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=
- dependencies:
- globby "^6.1.0"
- is-path-cwd "^1.0.0"
- is-path-in-cwd "^1.0.0"
- p-map "^1.1.1"
- pify "^3.0.0"
- rimraf "^2.2.8"
-
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -4055,6 +3995,11 @@ duplexify@^3.4.2, duplexify@^3.6.0:
readable-stream "^2.0.0"
stream-shift "^1.0.0"
+eastasianwidth@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
+ integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
+
easy-extender@^2.3.4:
version "2.3.4"
resolved "https://registry.yarnpkg.com/easy-extender/-/easy-extender-2.3.4.tgz#298789b64f9aaba62169c77a2b3b64b4c9589b8f"
@@ -4130,10 +4075,6 @@ electron-to-chromium@^1.3.62:
version "1.3.70"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.70.tgz#ded377256d92d81b4257d36c65aa890274afcfd2"
-elegant-spinner@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
-
elliptic@^6.0.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df"
@@ -4160,6 +4101,11 @@ emoji-regex@^8.0.0:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+emoji-regex@^9.2.2:
+ version "9.2.2"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
+ integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
+
emojis-list@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
@@ -4406,7 +4352,7 @@ escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
-escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5:
+escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
@@ -4690,18 +4636,20 @@ execa@^0.9.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
-execa@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
- integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
+execa@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20"
+ integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==
dependencies:
- cross-spawn "^6.0.0"
- get-stream "^4.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
+ cross-spawn "^7.0.3"
+ get-stream "^6.0.1"
+ human-signals "^3.0.1"
+ is-stream "^3.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^5.1.0"
+ onetime "^6.0.0"
+ signal-exit "^3.0.7"
+ strip-final-newline "^3.0.0"
execall@^1.0.0:
version "1.0.0"
@@ -4971,13 +4919,6 @@ fetch-mock@^5.9.4:
node-fetch "^1.3.3"
path-to-regexp "^1.7.0"
-figures@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
- dependencies:
- escape-string-regexp "^1.0.5"
- object-assign "^4.1.0"
-
figures@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
@@ -5054,6 +4995,13 @@ fill-range@^4.0.0:
repeat-string "^1.6.1"
to-regex-range "^2.1.0"
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
finalhandler@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5"
@@ -5095,10 +5043,6 @@ find-cache-dir@^1.0.0:
make-dir "^1.0.0"
pkg-dir "^2.0.0"
-find-parent-dir@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54"
-
find-up@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
@@ -5146,11 +5090,6 @@ flush-write-stream@^1.0.0:
inherits "^2.0.1"
readable-stream "^2.0.4"
-fn-name@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7"
- integrity sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=
-
fobject@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/fobject/-/fobject-0.0.3.tgz#9d13eb03d86bf09bdd3d143171caca88b3f3830c"
@@ -5344,15 +5283,6 @@ functional-red-black-tree@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
-g-status@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/g-status/-/g-status-2.0.2.tgz#270fd32119e8fc9496f066fe5fe88e0a6bc78b97"
- integrity sha512-kQoE9qH+T1AHKgSSD0Hkv98bobE90ILQcXAF4wvGgsr7uFqNvwmh8j+Lq3l0RVt3E3HjSbv2B9biEGcEtpHLCA==
- dependencies:
- arrify "^1.0.1"
- matcher "^1.0.0"
- simple-git "^1.85.0"
-
gauge@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395"
@@ -5432,10 +5362,6 @@ get-func-name@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
-get-own-enumerable-property-symbols@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz#5c4ad87f2834c4b9b4e84549dc1e0650fb38c24b"
-
get-stdin@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
@@ -5452,13 +5378,6 @@ get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
-get-stream@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
- integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
- dependencies:
- pump "^3.0.0"
-
get-stream@^5.0.0, get-stream@^5.1.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
@@ -5466,6 +5385,11 @@ get-stream@^5.0.0, get-stream@^5.1.0:
dependencies:
pump "^3.0.0"
+get-stream@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+ integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+
get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
@@ -5604,17 +5528,6 @@ globby@^5.0.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"
-globby@^6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
- integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
- dependencies:
- array-union "^1.0.1"
- glob "^7.0.3"
- object-assign "^4.0.1"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
-
globby@^8.0.0:
version "8.0.1"
resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50"
@@ -6017,6 +5930,11 @@ human-signals@^1.1.1:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+human-signals@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5"
+ integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==
+
humanize-ms@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
@@ -6111,14 +6029,6 @@ import-cwd@^2.0.0:
dependencies:
import-from "^2.1.0"
-import-fresh@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
- integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
- dependencies:
- caller-path "^2.0.0"
- resolve-from "^3.0.0"
-
import-from@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
@@ -6456,6 +6366,11 @@ is-fullwidth-code-point@^3.0.0:
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+is-fullwidth-code-point@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88"
+ integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==
+
is-glob@^2.0.0, is-glob@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
@@ -6533,7 +6448,12 @@ is-number@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
-is-obj@^1.0.0, is-obj@^1.0.1:
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-obj@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
@@ -6541,13 +6461,6 @@ is-object@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470"
-is-observable@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e"
- integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==
- dependencies:
- symbol-observable "^1.1.0"
-
is-odd@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24"
@@ -6630,6 +6543,11 @@ is-stream@^2.0.0:
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+is-stream@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac"
+ integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
+
is-string@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz#cc3a9b69857d621e963725a24caeec873b826e64"
@@ -7075,6 +6993,11 @@ levn@^0.3.0, levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
+lilconfig@2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4"
+ integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==
+
limiter@^1.0.5:
version "1.1.3"
resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.3.tgz#32e2eb55b2324076943e5d04c1185ffb387968ef"
@@ -7084,64 +7007,24 @@ lines-and-columns@^1.1.6:
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
-lint-staged@^8.1.4:
- version "8.1.4"
- resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.4.tgz#a726592c0e55231116af295e730643bb711c169b"
- integrity sha512-oFbbhB/VzN8B3i/sIdb9gMfngGArI6jIfxSn+WPdQb2Ni3GJeS6T4j5VriSbQfxfMuYoQlMHOoFt+lfcWV0HfA==
- dependencies:
- "@iamstarkov/listr-update-renderer" "0.4.1"
- chalk "^2.3.1"
- commander "^2.14.1"
- cosmiconfig "^5.0.2"
- debug "^3.1.0"
- dedent "^0.7.0"
- del "^3.0.0"
- execa "^1.0.0"
- find-parent-dir "^0.3.0"
- g-status "^2.0.2"
- is-glob "^4.0.0"
- is-windows "^1.0.2"
- listr "^0.14.2"
- lodash "^4.17.11"
- log-symbols "^2.2.0"
- micromatch "^3.1.8"
- npm-which "^3.0.1"
- p-map "^1.1.1"
- path-is-inside "^1.0.2"
- pify "^3.0.0"
- please-upgrade-node "^3.0.2"
- staged-git-files "1.1.2"
- string-argv "^0.0.2"
- stringify-object "^3.2.2"
- yup "^0.26.10"
-
-listr-silent-renderer@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
-
-listr-update-renderer@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2"
- integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==
- dependencies:
- chalk "^1.1.3"
- cli-truncate "^0.2.1"
- elegant-spinner "^1.0.1"
- figures "^1.7.0"
- indent-string "^3.0.0"
- log-symbols "^1.0.2"
- log-update "^2.3.0"
- strip-ansi "^3.0.1"
-
-listr-verbose-renderer@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db"
- integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==
- dependencies:
- chalk "^2.4.1"
- cli-cursor "^2.1.0"
- date-fns "^1.27.2"
- figures "^2.0.0"
+lint-staged@^13.1.0:
+ version "13.1.0"
+ resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.0.tgz#d4c61aec939e789e489fa51987ec5207b50fd37e"
+ integrity sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ==
+ dependencies:
+ cli-truncate "^3.1.0"
+ colorette "^2.0.19"
+ commander "^9.4.1"
+ debug "^4.3.4"
+ execa "^6.1.0"
+ lilconfig "2.0.6"
+ listr2 "^5.0.5"
+ micromatch "^4.0.5"
+ normalize-path "^3.0.0"
+ object-inspect "^1.12.2"
+ pidtree "^0.6.0"
+ string-argv "^0.3.1"
+ yaml "^2.1.3"
listr2@^3.8.3:
version "3.14.0"
@@ -7157,20 +7040,19 @@ listr2@^3.8.3:
through "^2.3.8"
wrap-ansi "^7.0.0"
-listr@^0.14.2:
- version "0.14.3"
- resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586"
- integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==
+listr2@^5.0.5:
+ version "5.0.7"
+ resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.7.tgz#de69ccc4caf6bea7da03c74f7a2ffecf3904bd53"
+ integrity sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==
dependencies:
- "@samverschueren/stream-to-observable" "^0.3.0"
- is-observable "^1.1.0"
- is-promise "^2.1.0"
- is-stream "^1.1.0"
- listr-silent-renderer "^1.1.1"
- listr-update-renderer "^0.5.0"
- listr-verbose-renderer "^0.5.0"
- p-map "^2.0.0"
- rxjs "^6.3.3"
+ cli-truncate "^2.1.0"
+ colorette "^2.0.19"
+ log-update "^4.0.0"
+ p-map "^4.0.0"
+ rfdc "^1.3.0"
+ rxjs "^7.8.0"
+ through "^2.3.8"
+ wrap-ansi "^7.0.0"
load-json-file@^1.0.0:
version "1.1.0"
@@ -7476,18 +7358,12 @@ lodash@^2.4.1:
version "2.4.2"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e"
-lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.4, lodash@^4.17.0, lodash@^4.17.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.2, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1, lodash@~4.17.4:
+lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.4, lodash@^4.17.0, lodash@^4.17.1, lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.2, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1, lodash@~4.17.4:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-log-symbols@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
- dependencies:
- chalk "^1.0.0"
-
-log-symbols@^2.0.0, log-symbols@^2.2.0:
+log-symbols@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
dependencies:
@@ -7501,15 +7377,6 @@ log-symbols@^4.0.0:
chalk "^4.1.0"
is-unicode-supported "^0.1.0"
-log-update@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708"
- integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg=
- dependencies:
- ansi-escapes "^3.0.0"
- cli-cursor "^2.0.0"
- wrap-ansi "^3.0.1"
-
log-update@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"
@@ -7650,13 +7517,6 @@ markdown-table@^1.1.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.2.tgz#c78db948fa879903a41bce522e3b96f801c63786"
-matcher@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/matcher/-/matcher-1.1.1.tgz#51d8301e138f840982b338b116bb0c09af62c1c2"
- integrity sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==
- dependencies:
- escape-string-regexp "^1.0.4"
-
math-expression-evaluator@^1.2.14:
version "1.2.17"
resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac"
@@ -7850,6 +7710,14 @@ micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8:
snapdragon "^0.8.1"
to-regex "^3.0.2"
+micromatch@^4.0.5:
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
+ integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
+ dependencies:
+ braces "^3.0.2"
+ picomatch "^2.3.1"
+
miller-rabin@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
@@ -7933,6 +7801,11 @@ mimic-fn@^2.1.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+mimic-fn@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
+ integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
+
min-indent@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
@@ -8471,6 +8344,11 @@ normalize-path@^2.0.1, normalize-path@^2.1.1:
dependencies:
remove-trailing-separator "^1.0.1"
+normalize-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
normalize-range@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
@@ -8494,12 +8372,6 @@ npm-packlist@^1.1.6:
ignore-walk "^3.0.1"
npm-bundled "^1.0.1"
-npm-path@^2.0.2:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64"
- dependencies:
- which "^1.2.10"
-
npm-run-all@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.2.tgz#90d62d078792d20669139e718621186656cea056"
@@ -8527,13 +8399,12 @@ npm-run-path@^4.0.0:
dependencies:
path-key "^3.0.0"
-npm-which@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa"
+npm-run-path@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00"
+ integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==
dependencies:
- commander "^2.9.0"
- npm-path "^2.0.2"
- which "^1.2.10"
+ path-key "^4.0.0"
npmlog@^4.0.2, npmlog@^4.1.2:
version "4.1.2"
@@ -8653,6 +8524,11 @@ object-hash@^1.1.4:
version "1.3.0"
resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.0.tgz#76d9ba6ff113cf8efc0d996102851fe6723963e2"
+object-inspect@^1.12.2:
+ version "1.12.3"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
+ integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
+
object-inspect@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b"
@@ -8757,6 +8633,13 @@ onetime@^5.1.0:
dependencies:
mimic-fn "^2.1.0"
+onetime@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4"
+ integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
+ dependencies:
+ mimic-fn "^4.0.0"
+
opener@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed"
@@ -8900,15 +8783,6 @@ p-locate@^4.1.0:
dependencies:
p-limit "^2.2.0"
-p-map@^1.1.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
-
-p-map@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.0.0.tgz#be18c5a5adeb8e156460651421aceca56c213a50"
- integrity sha512-GO107XdrSUmtHxVoi60qc9tUl/KkNKm+X2CF4P9amalpGxv5YqVPJNfSb0wcA+syCopkZvYYIzW8OVTQW59x/w==
-
p-map@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
@@ -9113,6 +8987,11 @@ path-key@^3.0.0, path-key@^3.1.0:
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+path-key@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18"
+ integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
+
path-parse@^1.0.5, path-parse@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
@@ -9237,6 +9116,16 @@ pgpass@1.x:
dependencies:
split2 "^3.1.1"
+picomatch@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
+pidtree@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c"
+ integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==
+
pify@^2.0.0, pify@^2.2.0, pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -9292,7 +9181,7 @@ pkg-dir@^3.0.0:
dependencies:
find-up "^3.0.0"
-please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1:
+please-upgrade-node@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac"
dependencies:
@@ -9729,11 +9618,6 @@ prop-types@^15.6.2:
loose-envify "^1.3.1"
object-assign "^4.1.1"
-property-expr@^1.5.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-1.5.1.tgz#22e8706894a0c8e28d58735804f6ba3a3673314f"
- integrity sha512-CGuc0VUTGthpJXL36ydB6jnbyOf/rAHFvmVrJlH+Rg0DqqLFQGAP6hIaxD/G0OAmBJPhXDHuEJigrp0e0wFV6g==
-
proto-list@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
@@ -10346,11 +10230,6 @@ regenerator-runtime@^0.11.0, regenerator-runtime@^0.11.1:
version "0.11.1"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
-regenerator-runtime@^0.12.0:
- version "0.12.1"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de"
- integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==
-
regenerator-transform@^0.10.0:
version "0.10.1"
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd"
@@ -10818,13 +10697,6 @@ rxjs@^6.1.0:
dependencies:
tslib "^1.9.0"
-rxjs@^6.3.3:
- version "6.4.0"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504"
- integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==
- dependencies:
- tslib "^1.9.0"
-
rxjs@^7.5.1:
version "7.5.6"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc"
@@ -10832,6 +10704,13 @@ rxjs@^7.5.1:
dependencies:
tslib "^2.1.0"
+rxjs@^7.8.0:
+ version "7.8.0"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4"
+ integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==
+ dependencies:
+ tslib "^2.1.0"
+
safe-buffer@5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
@@ -11183,13 +11062,6 @@ signal-exit@^3.0.7:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-simple-git@^1.85.0:
- version "1.107.0"
- resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.107.0.tgz#12cffaf261c14d6f450f7fdb86c21ccee968b383"
- integrity sha512-t4OK1JRlp4ayKRfcW6owrWcRVLyHRUlhGd0uN6ZZTqfDq8a5XpcUdOKiGRNobHEuMtNqzp0vcJNvhYWwh5PsQA==
- dependencies:
- debug "^4.0.1"
-
sinon@^13.0.1:
version "13.0.1"
resolved "https://registry.yarnpkg.com/sinon/-/sinon-13.0.1.tgz#2a568beca2084c48985dd98e276e065c81738e3c"
@@ -11210,10 +11082,6 @@ slash@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
-slice-ansi@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
-
slice-ansi@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
@@ -11238,6 +11106,14 @@ slice-ansi@^4.0.0:
astral-regex "^2.0.0"
is-fullwidth-code-point "^3.0.0"
+slice-ansi@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a"
+ integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==
+ dependencies:
+ ansi-styles "^6.0.0"
+ is-fullwidth-code-point "^4.0.0"
+
slide@^1.1.5:
version "1.1.6"
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
@@ -11556,11 +11432,6 @@ stack-trace@~0.0.9:
version "0.0.10"
resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
-staged-git-files@1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.2.tgz#4326d33886dc9ecfa29a6193bf511ba90a46454b"
- integrity sha512-0Eyrk6uXW6tg9PYkhi/V/J4zHp33aNyi2hOCmhFLqLTIhbgqWn5jlSzI+IU0VqrZq6+DbHcabQl/WP6P3BG0QA==
-
state-toggle@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.1.tgz#c3cb0974f40a6a0f8e905b96789eb41afa1cde3a"
@@ -11635,9 +11506,10 @@ strict-uri-encode@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
-string-argv@^0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736"
+string-argv@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"
+ integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==
string-width@^1.0.1, string-width@^1.0.2:
version "1.0.2"
@@ -11672,6 +11544,15 @@ string-width@^3.0.0, string-width@^3.1.0:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^5.1.0"
+string-width@^5.0.0:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
+ integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
+ dependencies:
+ eastasianwidth "^0.2.0"
+ emoji-regex "^9.2.2"
+ strip-ansi "^7.0.1"
+
string.prototype.padend@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0"
@@ -11714,14 +11595,6 @@ stringify-entities@^1.0.1:
is-alphanumerical "^1.0.0"
is-hexadecimal "^1.0.0"
-stringify-object@^3.2.2:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.2.2.tgz#9853052e5a88fb605a44cd27445aa257ad7ffbcd"
- dependencies:
- get-own-enumerable-property-symbols "^2.0.1"
- is-obj "^1.0.1"
- is-regexp "^1.0.0"
-
stringstream@~0.0.4:
version "0.0.6"
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72"
@@ -11752,6 +11625,13 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1:
dependencies:
ansi-regex "^5.0.1"
+strip-ansi@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2"
+ integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==
+ dependencies:
+ ansi-regex "^6.0.1"
+
strip-bom@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
@@ -11771,6 +11651,11 @@ strip-final-newline@^2.0.0:
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+strip-final-newline@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
+ integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
+
strip-indent@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
@@ -11962,15 +11847,10 @@ symbol-observable@1.0.1:
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=
-symbol-observable@^1.0.3, symbol-observable@^1.1.0:
+symbol-observable@^1.0.3:
version "1.2.0"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
-synchronous-promise@^2.0.5:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.6.tgz#de76e0ea2b3558c1e673942e47e714a930fa64aa"
- integrity sha512-TyOuWLwkmtPL49LHCX1caIwHjRzcVd62+GF6h8W/jHOeZUFHpnd2XJDVuUlaTaLPH1nuu2M69mfHr5XbQJnf/g==
-
table@^4.0.1, table@^4.0.3:
version "4.0.3"
resolved "https://registry.npmjs.org/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc"
@@ -12134,6 +12014,13 @@ to-regex-range@^2.1.0:
is-number "^3.0.0"
repeat-string "^1.6.1"
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
to-regex@^3.0.1, to-regex@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
@@ -12158,11 +12045,6 @@ toposort-class@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988"
-toposort@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330"
- integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=
-
tough-cookie@~2.3.0:
version "2.3.4"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
@@ -12835,7 +12717,7 @@ which-module@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
-which@^1.2.10, which@^1.2.14, which@^1.2.9, which@^1.3.0:
+which@^1.2.14, which@^1.2.9, which@^1.3.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
dependencies:
@@ -12991,14 +12873,6 @@ wrap-ansi@^2.0.0:
string-width "^1.0.1"
strip-ansi "^3.0.1"
-wrap-ansi@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba"
- integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=
- dependencies:
- string-width "^2.1.1"
- strip-ansi "^4.0.0"
-
wrap-ansi@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
@@ -13118,6 +12992,11 @@ yallist@^4.0.0:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+yaml@^2.1.3:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4"
+ integrity sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==
+
yargs-parser@^10.0.0:
version "10.0.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.0.0.tgz#c737c93de2567657750cb1f2c00be639fd19c994"
@@ -13258,15 +13137,3 @@ yauzl@^2.10.0:
yeast@0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
-
-yup@^0.26.10:
- version "0.26.10"
- resolved "https://registry.yarnpkg.com/yup/-/yup-0.26.10.tgz#3545839663289038faf25facfc07e11fd67c0cb1"
- integrity sha512-keuNEbNSnsOTOuGCt3UJW69jDE3O4P+UHAakO7vSeFMnjaitcmlbij/a3oNb9g1Y1KvSKH/7O1R2PQ4m4TRylw==
- dependencies:
- "@babel/runtime" "7.0.0"
- fn-name "~2.0.1"
- lodash "^4.17.10"
- property-expr "^1.5.0"
- synchronous-promise "^2.0.5"
- toposort "^2.0.2"
From 0515651e04455f0fda6cb935e3946df8e45cdb8e Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Mon, 6 Feb 2023 09:38:49 -0800
Subject: [PATCH 21/82] Upgrade React Autosuggest
---
package.json | 2 +-
yarn.lock | 53 +++++++++++++++++++++++++++++++++++++---------------
2 files changed, 39 insertions(+), 16 deletions(-)
diff --git a/package.json b/package.json
index d398274c9..d9a49efdb 100644
--- a/package.json
+++ b/package.json
@@ -57,7 +57,7 @@
"query-string": "^6.1.0",
"react": "^16.5.2",
"react-addons-shallow-compare": "^15.4.2",
- "react-autosuggest": "^9.3.1",
+ "react-autosuggest": "^10.0.2",
"react-bootstrap": "^0.31.0",
"react-dom": "^16.5.2",
"react-flip-move": "^3.0.1",
diff --git a/yarn.lock b/yarn.lock
index e1ef61ba1..3c9670568 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4332,6 +4332,11 @@ es6-promise@^4.1.0:
version "4.2.2"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.2.tgz#f722d7769af88bd33bc13ec6605e1f92966b82d9"
+es6-promise@^4.2.8:
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
+ integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
+
es6-symbol@^3.1.1, es6-symbol@~3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
@@ -6744,9 +6749,10 @@ js-tokens@^3.0.0, js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-js-tokens@^4.0.0:
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
js-yaml@^3.12.0:
version "3.12.0"
@@ -7397,6 +7403,13 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3
dependencies:
js-tokens "^3.0.0"
+loose-envify@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
loud-rejection@^1.0.0, loud-rejection@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
@@ -9618,6 +9631,15 @@ prop-types@^15.6.2:
loose-envify "^1.3.1"
object-assign "^4.1.1"
+prop-types@^15.7.2:
+ version "15.8.1"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
+ integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
+ dependencies:
+ loose-envify "^1.4.0"
+ object-assign "^4.1.1"
+ react-is "^16.13.1"
+
proto-list@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
@@ -9843,21 +9865,16 @@ react-addons-shallow-compare@^15.4.2:
fbjs "^0.8.4"
object-assign "^4.1.0"
-react-autosuggest@^9.3.1:
- version "9.3.2"
- resolved "https://registry.yarnpkg.com/react-autosuggest/-/react-autosuggest-9.3.2.tgz#dd8c0fbe9c25aa94afe296180353647f6ecc10a7"
- dependencies:
- prop-types "^15.5.10"
- react-autowhatever "^10.1.0"
- shallow-equal "^1.0.0"
-
-react-autowhatever@^10.1.0:
+react-autosuggest@^10.0.2:
version "10.1.0"
- resolved "https://registry.yarnpkg.com/react-autowhatever/-/react-autowhatever-10.1.0.tgz#41f6d69382437d3447a0a3c8913bb8ca2feaabc1"
+ resolved "https://registry.yarnpkg.com/react-autosuggest/-/react-autosuggest-10.1.0.tgz#4d25b8acc78bb518eb70189bb96bcd777dc71ffb"
+ integrity sha512-/azBHmc6z/31s/lBf6irxPf/7eejQdR0IqnZUzjdSibtlS8+Rw/R79pgDAo6Ft5QqCUTyEQ+f0FhL+1olDQ8OA==
dependencies:
- prop-types "^15.5.8"
+ es6-promise "^4.2.8"
+ prop-types "^15.7.2"
react-themeable "^1.1.0"
section-iterator "^2.0.0"
+ shallow-equal "^1.2.1"
react-bootstrap@^0.31.0:
version "0.31.5"
@@ -9935,6 +9952,11 @@ react-intl@^2.3.0:
intl-relativeformat "^2.0.0"
invariant "^2.1.1"
+react-is@^16.13.1:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+
react-is@^16.3.2:
version "16.3.2"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.3.2.tgz#f4d3d0e2f5fbb6ac46450641eb2e25bf05d36b22"
@@ -11010,9 +11032,10 @@ shallow-clone@^0.1.2:
lazy-cache "^0.2.3"
mixin-object "^2.0.1"
-shallow-equal@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.0.0.tgz#508d1838b3de590ab8757b011b25e430900945f7"
+shallow-equal@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da"
+ integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==
shebang-command@^1.2.0:
version "1.2.0"
From 8caf7e91edf353b55556561a6d1e24d9a4387cf0 Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Mon, 6 Feb 2023 09:41:11 -0800
Subject: [PATCH 22/82] Upgrade Husky
---
.husky/pre-commit | 4 +++
package.json | 6 ++--
yarn.lock | 82 +++--------------------------------------------
3 files changed, 11 insertions(+), 81 deletions(-)
create mode 100755 .husky/pre-commit
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100755
index 000000000..d8335613d
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+. "$(dirname -- "$0")/_/husky.sh"
+
+npm test && npx lint-staged
diff --git a/package.json b/package.json
index d9a49efdb..e05df20a8 100644
--- a/package.json
+++ b/package.json
@@ -138,7 +138,7 @@
"file-loader": "^2.0.0",
"git-repository": "^0.1.4",
"glob": "^7.1.3",
- "husky": "^1.0.0-rc.15",
+ "husky": "^8.0.3",
"identity-obj-proxy": "^3.0.0",
"json-loader": "^0.5.4",
"lint-staged": "^13.1.0",
@@ -207,7 +207,6 @@
]
},
"scripts": {
- "precommit": "npm run test && lint-staged",
"lint-js": "eslint --ignore-path .gitignore --ignore-pattern \"!**/.*\" .",
"lint-css": "stylelint \"src/**/*.{css,less,styl,scss,sass,sss}\"",
"lint": "npm run lint-js && npm run lint-css",
@@ -244,6 +243,7 @@
"deploy": "babel-node tools/run deploy",
"render": "babel-node tools/run render",
"serve": "babel-node tools/run runServer || true",
- "start": "babel-node tools/run start"
+ "start": "babel-node tools/run start",
+ "prepare": "husky install"
}
}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index 3c9670568..c080dff85 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2943,10 +2943,6 @@ chrome-trace-event@^1.0.0:
dependencies:
tslib "^1.9.0"
-ci-info@^1.5.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
-
ci-info@^3.2.0:
version "3.3.2"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128"
@@ -3425,14 +3421,6 @@ cosmiconfig@^5.0.0:
js-yaml "^3.9.0"
parse-json "^4.0.0"
-cosmiconfig@^5.0.6:
- version "5.0.6"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39"
- dependencies:
- is-directory "^0.3.1"
- js-yaml "^3.9.0"
- parse-json "^4.0.0"
-
crc@3.4.4:
version "3.4.4"
resolved "https://registry.yarnpkg.com/crc/-/crc-3.4.4.tgz#9da1e980e3bd44fc5c93bf5ab3da3378d85e466b"
@@ -4628,19 +4616,6 @@ execa@^0.7.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
-execa@^0.9.0:
- version "0.9.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.9.0.tgz#adb7ce62cf985071f60580deb4a88b9e34712d01"
- integrity sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==
- dependencies:
- cross-spawn "^5.0.1"
- get-stream "^3.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
-
execa@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20"
@@ -5947,20 +5922,10 @@ humanize-ms@^1.2.1:
dependencies:
ms "^2.0.0"
-husky@^1.0.0-rc.15:
- version "1.0.0-rc.15"
- resolved "https://registry.yarnpkg.com/husky/-/husky-1.0.0-rc.15.tgz#f1545d15c7f34d5db19e40b70df07ac9a362673d"
- dependencies:
- cosmiconfig "^5.0.6"
- execa "^0.9.0"
- find-up "^3.0.0"
- get-stdin "^6.0.0"
- is-ci "^1.2.1"
- pkg-dir "^3.0.0"
- please-upgrade-node "^3.1.1"
- read-pkg "^4.0.1"
- run-node "^1.0.0"
- slash "^2.0.0"
+husky@^8.0.3:
+ version "8.0.3"
+ resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184"
+ integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==
iconv-lite@0.4.23, iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
version "0.4.23"
@@ -6261,12 +6226,6 @@ is-callable@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
-is-ci@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
- dependencies:
- ci-info "^1.5.0"
-
is-ci@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867"
@@ -9188,18 +9147,6 @@ pkg-dir@^2.0.0:
dependencies:
find-up "^2.1.0"
-pkg-dir@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
- dependencies:
- find-up "^3.0.0"
-
-please-upgrade-node@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac"
- dependencies:
- semver-compare "^1.0.0"
-
pleeease-filters@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/pleeease-filters/-/pleeease-filters-4.0.0.tgz#6632b2fb05648d2758d865384fbced79e1ccaec7"
@@ -10104,14 +10051,6 @@ read-pkg@^3.0.0:
normalize-package-data "^2.3.2"
path-type "^3.0.0"
-read-pkg@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237"
- dependencies:
- normalize-package-data "^2.3.2"
- parse-json "^4.0.0"
- pify "^3.0.0"
-
read-pkg@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
@@ -10682,10 +10621,6 @@ run-async@^2.2.0:
dependencies:
is-promise "^2.1.0"
-run-node@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e"
-
run-queue@^1.0.0, run-queue@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
@@ -10820,11 +10755,6 @@ section-iterator@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/section-iterator/-/section-iterator-2.0.0.tgz#bf444d7afeeb94ad43c39ad2fb26151627ccba2a"
-semver-compare@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
- integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
-
"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1:
version "5.5.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477"
@@ -11101,10 +11031,6 @@ slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
-slash@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
-
slice-ansi@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
From 1527fedd9cfc63ed9d08140878749af12c373ed3 Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Mon, 6 Feb 2023 09:50:54 -0800
Subject: [PATCH 23/82] Upgrade react-flip-move
---
package.json | 2 +-
yarn.lock | 7 ++++---
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/package.json b/package.json
index e05df20a8..6819e1ebc 100644
--- a/package.json
+++ b/package.json
@@ -60,7 +60,7 @@
"react-autosuggest": "^10.0.2",
"react-bootstrap": "^0.31.0",
"react-dom": "^16.5.2",
- "react-flip-move": "^3.0.1",
+ "react-flip-move": "^3.0.5",
"react-geosuggest": "^2.14.1",
"react-intl": "^2.3.0",
"react-redux": "^5.0.6",
diff --git a/yarn.lock b/yarn.lock
index c080dff85..2c5d29e82 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -9878,9 +9878,10 @@ react-error-overlay@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-4.0.1.tgz#417addb0814a90f3a7082eacba7cee588d00da89"
-react-flip-move@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/react-flip-move/-/react-flip-move-3.0.1.tgz#7bb5351c6e1d9778baf748cc5292aa98250c3401"
+react-flip-move@^3.0.5:
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/react-flip-move/-/react-flip-move-3.0.5.tgz#8b87510ad32ebef01ebca94902b445f456bbc0f7"
+ integrity sha512-Mf4XpbkUNZy9eu80iXXFIjToDvw+bnHxmKHVoositbMpV87O/EQswnXUqVovRHoTx/F+4dE+p//PyJnAT7OtPA==
react-geosuggest@^2.14.1:
version "2.14.1"
From 9111f393d5c1c68f68d9cc339d6fe95e5ade3141 Mon Sep 17 00:00:00 2001
From: Jeffrey Carl Faden
Date: Mon, 6 Feb 2023 14:02:09 -0800
Subject: [PATCH 24/82] Upgrade a bunch of React libraries
---
package.json | 29 +-
src/client.js | 12 +-
src/components/AddUserForm/AddUserForm.js | 3 +-
src/components/App.js | 14 +-
.../ChangeTeamURLModal/ChangeTeamURLModal.js | 30 +-
.../DeleteTeamModal/DeleteTeamModal.js | 24 +-
src/components/ErrorPage/ErrorPage.js | 2 +-
src/components/Flash/Flash.js | 8 +-
src/components/Footer/Footer.js | 9 +-
.../GoogleInfoWindow/GoogleInfoWindow.js | 16 +-
src/components/Header/Header.js | 61 +-
src/components/HeaderLogin/HeaderLogin.js | 4 +-
src/components/HereMarker/HereMarker.js | 2 +-
.../IntlProvider/IntlProviderContainer.js | 9 +-
src/components/Layout/Layout.js | 2 +-
src/components/Loading/Loading.js | 22 +-
src/components/Menu/Menu.js | 61 +-
.../NameFilterForm/NameFilterForm.js | 31 +-
src/components/Notification/Notification.js | 18 +-
.../DecisionDeleted/DecisionDeleted.js | 19 +-
.../DecisionPosted/DecisionPosted.js | 18 +-
.../DeletedTagFromRestaurant.js | 26 +-
.../PostedNewTagToRestaurant.js | 26 +-
.../PostedTagToRestaurant.js | 28 +-
.../RestaurantDeleted/RestaurantDeleted.js | 6 +-
.../RestaurantPosted/RestaurantPosted.js | 15 +-
.../RestaurantRenamed/RestaurantRenamed.js | 29 +-
.../TagDeleted/TagDeleted.js | 20 +-
.../VoteDeleted/VoteDeleted.js | 14 +-
.../VotePosted/VotePosted.js | 17 +-
.../NotificationList/NotificationList.js | 28 +-
src/components/Restaurant/Restaurant.js | 24 +-
.../RestaurantAddForm/RestaurantAddForm.js | 41 +-
.../RestaurantAddTagForm.js | 26 +-
.../RestaurantDecision/RestaurantDecision.js | 37 +-
.../RestaurantDropdown/RestaurantDropdown.js | 25 +-
.../RestaurantList/RestaurantList.js | 15 +-
src/components/RestaurantMap/RestaurantMap.js | 18 +-
.../RestaurantMapSettings.js | 38 +-
.../RestaurantMarker/RestaurantMarker.js | 31 +-
.../RestaurantNameForm/RestaurantNameForm.js | 6 +-
.../RestaurantTagList/RestaurantTagList.js | 16 +-
.../RestaurantVoteButton.js | 8 +-
.../RestaurantVoteCount.js | 18 +-
src/components/Tag/Tag.js | 15 +-
src/components/TagFilterForm/TagFilterForm.js | 38 +-
.../TagManagerItem/TagManagerItem.js | 4 +-
src/components/TeamForm/TeamForm.js | 46 +-
src/components/TeamMap/TeamMap.js | 22 +-
src/components/TempMarker/TempMarker.js | 2 +-
src/models/index.js | 88 +-
src/reducerMaps/users.js | 132 +-
src/routes/login/Login.js | 26 +-
src/routes/main/about/About.js | 145 +-
src/routes/main/account/Account.js | 27 +-
src/routes/main/invitation/create/Create.js | 19 +-
src/routes/main/invitation/new/New.js | 14 +-
src/routes/main/landing/Landing.js | 42 +-
src/routes/main/new-team/NewTeam.js | 39 +-
src/routes/main/password/create/Create.js | 11 +-
src/routes/main/password/edit/Edit.js | 8 +-
src/routes/main/password/new/New.js | 14 +-
src/routes/main/teams/Teams.js | 23 +-
src/routes/main/users/create/Create.js | 2 +-
src/routes/main/users/new/New.js | 15 +-
src/routes/main/welcome/Welcome.js | 8 +-
src/routes/not-found/NotFound.js | 2 +-
src/routes/team/home/Home.js | 28 +-
src/routes/team/home/Home.test.js | 2 +-
src/routes/team/tags/Tags.js | 4 +-
src/routes/team/team/Team.js | 73 +-
src/server.js | 137 +-
src/store/configureStore.js | 67 +-
src/store/logger/logger.client.js | 8 -
src/store/logger/logger.server.js | 43 -
src/store/logger/package.json | 6 -
yarn.lock | 1304 +++++++++++++----
77 files changed, 2183 insertions(+), 1137 deletions(-)
delete mode 100644 src/store/logger/logger.client.js
delete mode 100644 src/store/logger/logger.server.js
delete mode 100644 src/store/logger/package.json
diff --git a/package.json b/package.json
index 6819e1ebc..29298207f 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
],
"dependencies": {
"@babel/polyfill": "^7.0.0",
+ "@reduxjs/toolkit": "^1.9.2",
"bcrypt": "^5.0.1",
"bluebird": "^3.5.1",
"body-parser": "^1.18.3",
@@ -35,12 +36,12 @@
"fastclick": "^1.0.6",
"fbjs": "^0.8.4",
"fetch-mock": "^5.9.4",
- "google-map-react": "^1.1.2",
+ "google-map-react": "^2.2.0",
"history": "^4.7.2",
"honeybadger": "^1.1.3",
"immutability-helper": "^2.1.2",
"isomorphic-fetch": "^2.2.1",
- "isomorphic-style-loader": "^4.0.0",
+ "isomorphic-style-loader": "^5.3.2",
"jsonwebtoken": "^9.0.0",
"method-override": "^2.3.8",
"mocha-junit-reporter": "^1.17.0",
@@ -55,21 +56,18 @@
"pretty-error": "^2.1.1",
"prop-types": "^15.6.2",
"query-string": "^6.1.0",
- "react": "^16.5.2",
+ "react": "^16.14.0",
"react-addons-shallow-compare": "^15.4.2",
"react-autosuggest": "^10.0.2",
- "react-bootstrap": "^0.31.0",
- "react-dom": "^16.5.2",
+ "react-bootstrap": "^0.33.1",
+ "react-dom": "^16.14.0",
"react-flip-move": "^3.0.5",
"react-geosuggest": "^2.14.1",
- "react-intl": "^2.3.0",
- "react-redux": "^5.0.6",
+ "react-intl": "^6.2.7",
+ "react-redux": "^8.0.5",
"react-scroll": "^1.7.6",
- "react-transition-group": "^1.2.0",
- "redux": "^3.7.2",
- "redux-devtools-extension": "^2.13.2",
- "redux-logger": "^3.0.6",
- "redux-thunk": "^2.2.0",
+ "react-transition-group": "^4.4.5",
+ "redux": "^4.2.1",
"request": "^2.71.0",
"reselect": "^2.3.0",
"reserved-usernames": "^1.0.3",
@@ -98,6 +96,7 @@
"@babel/preset-flow": "^7.0.0",
"@babel/preset-react": "^7.0.0",
"@babel/register": "^7.0.0",
+ "@redux-devtools/extension": "^3.2.5",
"assets-webpack-plugin": "^3.5.1",
"autoprefixer": "^9.1.5",
"babel-core": "^7.0.0-bridge.0",
@@ -122,8 +121,8 @@
"cypress": "^10.7.0",
"del": "^2.2.2",
"editorconfig-tools": "^0.1.1",
- "enzyme": "^3.6.0",
- "enzyme-adapter-react-16": "^1.0.0",
+ "enzyme": "^3.11.0",
+ "enzyme-adapter-react-16": "^1.15.7",
"es6-promise": "^4.1.0",
"eslint": "^5.6.0",
"eslint-config-airbnb": "^17.1.0",
@@ -172,7 +171,7 @@
"react-deep-force-update": "^2.1.3",
"react-dev-utils": "^5.0.2",
"react-error-overlay": "^4.0.1",
- "react-test-renderer": "^16.5.2",
+ "react-test-renderer": "^16.14.0",
"redux-mock-store": "^1.5.1",
"rimraf": "^2.6.2",
"sass-loader": "^6.0.6",
diff --git a/src/client.js b/src/client.js
index 66ff47645..90ab73343 100644
--- a/src/client.js
+++ b/src/client.js
@@ -44,7 +44,9 @@ window.App.state.host = host;
if (!subdomain) {
// escape domain periods to not appear as regex wildcards
- const subdomainMatch = window.location.host.match(`^(.*)\\.${host.replace(/\./g, '\\.')}`);
+ const subdomainMatch = window.location.host.match(
+ `^(.*)\\.${host.replace(/\./g, '\\.')}`
+ );
if (subdomainMatch) {
subdomain = subdomainMatch[1];
}
@@ -60,9 +62,9 @@ const context = {
// https://github.com/kriasoft/isomorphic-style-loader
insertCss: (...styles) => {
// eslint-disable-next-line no-underscore-dangle
- const removeCss = styles.map(x => x._insertCss());
+ const removeCss = styles.map((x) => x._insertCss());
return () => {
- removeCss.forEach(f => f());
+ removeCss.forEach((f) => f());
};
},
// Universal HTTP client
@@ -71,7 +73,7 @@ const context = {
}),
// Initialize a new Redux store
// http://redux.js.org/docs/basics/UsageWithReact.html
- store
+ store,
};
const container = document.getElementById('app');
@@ -182,7 +184,7 @@ async function onLocationChange(location, action) {
if (window.ga) {
window.ga('send', 'pageview', createPath(location));
}
- },
+ }
);
} catch (error) {
if (__DEV__) {
diff --git a/src/components/AddUserForm/AddUserForm.js b/src/components/AddUserForm/AddUserForm.js
index ea88bf106..633d9fdbe 100644
--- a/src/components/AddUserForm/AddUserForm.js
+++ b/src/components/AddUserForm/AddUserForm.js
@@ -1,6 +1,5 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import { intlShape } from 'react-intl';
import Button from 'react-bootstrap/lib/Button';
import Col from 'react-bootstrap/lib/Col';
import ControlLabel from 'react-bootstrap/lib/ControlLabel';
@@ -16,7 +15,7 @@ class AddUserForm extends Component {
hasGuestRole: PropTypes.bool.isRequired,
hasMemberRole: PropTypes.bool.isRequired,
hasOwnerRole: PropTypes.bool.isRequired,
- intl: intlShape.isRequired,
+ intl: PropTypes.shape().isRequired,
};
static defaultState = {
diff --git a/src/components/App.js b/src/components/App.js
index 8649fc6ea..574de49ef 100644
--- a/src/components/App.js
+++ b/src/components/App.js
@@ -7,6 +7,7 @@
* LICENSE.txt file in the root directory of this source tree.
*/
+import StyleContext from 'isomorphic-style-loader/StyleContext';
import PropTypes from 'prop-types';
import React, { Children } from 'react';
import { Provider as ReduxProvider } from 'react-redux';
@@ -20,6 +21,7 @@ const ContextType = {
fetch: PropTypes.func.isRequired,
pathname: PropTypes.string.isRequired,
query: PropTypes.object,
+ store: PropTypes.object.isRequired,
// Integrate Redux
// http://redux.js.org/docs/basics/UsageWithReact.html
...ReduxProvider.childContextTypes,
@@ -63,9 +65,15 @@ class App extends React.PureComponent {
// NOTE: If you need to add or modify header, footer etc. of the app,
// please do that inside the Layout component.
return (
-
- {Children.only(this.props.children)}
-
+
+
+
+ {Children.only(this.props.children)}
+
+
+
);
}
}
diff --git a/src/components/ChangeTeamURLModal/ChangeTeamURLModal.js b/src/components/ChangeTeamURLModal/ChangeTeamURLModal.js
index b871b1109..767f01fd5 100644
--- a/src/components/ChangeTeamURLModal/ChangeTeamURLModal.js
+++ b/src/components/ChangeTeamURLModal/ChangeTeamURLModal.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Col from 'react-bootstrap/lib/Col';
import ControlLabel from 'react-bootstrap/lib/ControlLabel';
import FormControl from 'react-bootstrap/lib/FormControl';
@@ -20,16 +20,16 @@ class ChangeTeamURLModal extends Component {
team: PropTypes.object.isRequired,
shown: PropTypes.bool.isRequired,
hideModal: PropTypes.func.isRequired,
- updateTeam: PropTypes.func.isRequired
+ updateTeam: PropTypes.func.isRequired,
};
state = {
newSlug: '',
- oldSlug: ''
+ oldSlug: '',
};
- handleChange = field => event => this.setState({
- [field]: event.target.value
+ handleChange = (field) => (event) => this.setState({
+ [field]: event.target.value,
});
handleSubmit = () => {
@@ -39,7 +39,7 @@ class ChangeTeamURLModal extends Component {
updateTeam({ slug: newSlug }).then(() => {
window.location.href = `//${newSlug}.${host}/team`;
});
- }
+ };
render() {
const { team, shown, hideModal } = this.props;
@@ -51,12 +51,16 @@ class ChangeTeamURLModal extends Component {
Be forewarned:
{' '}
-Changing the team URL frees up the old URL to be used
- by other teams. This means that any bookmarks your team members have created for this
- team will no longer work. We’ll send out an email notification to all users on
- the team that this change has taken place.
+Changing the team URL frees up the
+ old URL to be used by other teams. This means that any bookmarks
+ your team members have created for this team will no longer work.
+ We’ll send out an email notification to all users on the team
+ that this change has taken place.
+
+
+ To confirm, please write the current URL of the team in the field
+ below.
- To confirm, please write the current URL of the team in the field below.
@@ -91,7 +95,9 @@ Changing the team URL frees up the old URL to be used
- Cancel
+
+ Cancel
+
{
this.setState({
- confirmSlug: event.target.value
+ confirmSlug: event.target.value,
});
- }
+ };
handleSubmit = () => {
const { deleteTeam, host } = this.props;
@@ -39,7 +39,7 @@ class DeleteTeamModal extends Component {
deleteTeam().then(() => {
window.location.href = `//${host}/teams`;
});
- }
+ };
render() {
const { team, shown, hideModal } = this.props;
@@ -57,10 +57,12 @@ team?
{' '}
This is irreversible.
{' '}
- All restaurants and tags will be deleted,
- and all users will be unassigned from the team.
+All restaurants and tags will
+ be deleted, and all users will be unassigned from the team.
+
+
+ To confirm, please write the URL of the team in the field below.
- To confirm, please write the URL of the team in the field below.
@@ -81,7 +83,9 @@ team?
- Cancel
+
+ Cancel
+
{this.props.message}
+
+ {this.props.message}
+
);
}
}
diff --git a/src/components/Footer/Footer.js b/src/components/Footer/Footer.js
index 9d951347f..8aabb1efa 100644
--- a/src/components/Footer/Footer.js
+++ b/src/components/Footer/Footer.js
@@ -9,16 +9,13 @@
import PropTypes from 'prop-types';
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from './Footer.scss';
const Footer = ({ host }) => (
-
+
About / Privacy
@@ -38,7 +35,7 @@ const Footer = ({ host }) => (
);
Footer.propTypes = {
- host: PropTypes.string.isRequired
+ host: PropTypes.string.isRequired,
};
export default withStyles(s)(Footer);
diff --git a/src/components/GoogleInfoWindow/GoogleInfoWindow.js b/src/components/GoogleInfoWindow/GoogleInfoWindow.js
index 4954e702b..f902e280f 100644
--- a/src/components/GoogleInfoWindow/GoogleInfoWindow.js
+++ b/src/components/GoogleInfoWindow/GoogleInfoWindow.js
@@ -2,14 +2,14 @@ import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';
import Button from 'react-bootstrap/lib/Button';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from './GoogleInfoWindow.scss';
let google = {
maps: {
Marker: { MAX_ZINDEX: 1000000 },
- places: { PlacesService: () => {}, PlacesServiceStatus: {} }
- }
+ places: { PlacesService: () => {}, PlacesServiceStatus: {} },
+ },
};
if (canUseDOM) {
google = window.google || google;
@@ -19,7 +19,7 @@ class GoogleInfoWindow extends Component {
static propTypes = {
addRestaurant: PropTypes.func.isRequired,
map: PropTypes.any.isRequired,
- placeId: PropTypes.string.isRequired
+ placeId: PropTypes.string.isRequired,
};
constructor(props) {
@@ -45,12 +45,8 @@ class GoogleInfoWindow extends Component {
style={{ zIndex: google.maps.Marker.MAX_ZINDEX * 2 }}
>
-
-Add to Lunch
+
+ Add to Lunch
diff --git a/src/components/Header/Header.js b/src/components/Header/Header.js
index 9ebf1d49f..9dd024625 100644
--- a/src/components/Header/Header.js
+++ b/src/components/Header/Header.js
@@ -9,7 +9,7 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import HeaderLoginContainer from '../HeaderLogin/HeaderLoginContainer';
import FlashContainer from '../Flash/FlashContainer';
import MenuContainer from '../Menu/MenuContainer';
@@ -22,18 +22,18 @@ class Header extends Component {
flashes: PropTypes.array.isRequired,
loggedIn: PropTypes.bool.isRequired,
// eslint-disable-next-line react/no-unused-prop-types
- path: PropTypes.string
+ path: PropTypes.string,
};
static defaultProps = {
- path: PropTypes.string
+ path: PropTypes.string,
};
static getDerivedStateFromProps(nextProps, state) {
if (nextProps.path !== state.prevPath) {
return {
menuOpen: false,
- prevPath: nextProps.path
+ prevPath: nextProps.path,
};
}
return null;
@@ -42,13 +42,13 @@ class Header extends Component {
state = {
menuOpen: false,
// eslint-disable-next-line react/no-unused-state
- prevPath: null
+ prevPath: null,
};
flashContainers = () => {
const { flashes } = this.props;
- return flashes.map(flash => (
+ return flashes.map((flash) => (
));
- }
+ };
closeMenu = () => {
this.setState({
- menuOpen: false
+ menuOpen: false,
});
- }
+ };
toggleMenu = () => {
- this.setState(prevState => ({
- menuOpen: !prevState.menuOpen
+ this.setState((prevState) => ({
+ menuOpen: !prevState.menuOpen,
}));
- }
+ };
render() {
const { loggedIn } = this.props;
@@ -78,9 +78,7 @@ class Header extends Component {
-
- {this.flashContainers()}
-
+
{this.flashContainers()}
@@ -90,18 +88,27 @@ class Header extends Component {
- {loggedIn
- ? (
-
-
- Menu
-
- {menuOpen && }
-
-
- )
- :
- }
+ {loggedIn ? (
+
+
+ Menu
+
+ {menuOpen && (
+
+ )}
+
+
+ ) : (
+
+ )}
);
}
diff --git a/src/components/HeaderLogin/HeaderLogin.js b/src/components/HeaderLogin/HeaderLogin.js
index d8145d0df..32ad55cc4 100644
--- a/src/components/HeaderLogin/HeaderLogin.js
+++ b/src/components/HeaderLogin/HeaderLogin.js
@@ -9,7 +9,7 @@
import PropTypes from 'prop-types';
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Button from 'react-bootstrap/lib/Button';
import s from './HeaderLogin.scss';
@@ -29,7 +29,7 @@ const HeaderLogin = ({ user }) => {
};
HeaderLogin.propTypes = {
- user: PropTypes.object.isRequired
+ user: PropTypes.object.isRequired,
};
export default withStyles(s)(HeaderLogin);
diff --git a/src/components/HereMarker/HereMarker.js b/src/components/HereMarker/HereMarker.js
index 1fa988603..cc09a9c2d 100644
--- a/src/components/HereMarker/HereMarker.js
+++ b/src/components/HereMarker/HereMarker.js
@@ -1,5 +1,5 @@
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from './HereMarker.scss';
const HereMarker = () =>
;
diff --git a/src/components/IntlProvider/IntlProviderContainer.js b/src/components/IntlProvider/IntlProviderContainer.js
index 4d271bcd9..e585a60ee 100644
--- a/src/components/IntlProvider/IntlProviderContainer.js
+++ b/src/components/IntlProvider/IntlProviderContainer.js
@@ -1,16 +1,11 @@
import { connect } from 'react-redux';
-import { addLocaleData, IntlProvider } from 'react-intl';
-import enLocaleData from 'react-intl/locale-data/en';
+import { IntlProvider } from 'react-intl';
import { getLocale, getMessages } from '../../selectors/locale';
-addLocaleData(enLocaleData);
-
const mapStateToProps = (state, ownProps) => ({
locale: getLocale(state),
messages: getMessages(state),
...ownProps,
});
-export default connect(
- mapStateToProps
-)(IntlProvider);
+export default connect(mapStateToProps)(IntlProvider);
diff --git a/src/components/Layout/Layout.js b/src/components/Layout/Layout.js
index 7bed556eb..6e75978ee 100644
--- a/src/components/Layout/Layout.js
+++ b/src/components/Layout/Layout.js
@@ -31,7 +31,7 @@ class Layout extends Component {
static defaultProps = {
isHome: false,
- path: undefined
+ path: undefined,
};
static contextTypes = {
diff --git a/src/components/Loading/Loading.js b/src/components/Loading/Loading.js
index c64a8eec1..d3ed533cf 100644
--- a/src/components/Loading/Loading.js
+++ b/src/components/Loading/Loading.js
@@ -1,14 +1,24 @@
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from './Loading.scss';
const Loading = () => (
);
diff --git a/src/components/Menu/Menu.js b/src/components/Menu/Menu.js
index df08dd10b..742f9cb58 100644
--- a/src/components/Menu/Menu.js
+++ b/src/components/Menu/Menu.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Link from '../Link';
import s from './Menu.scss';
@@ -12,11 +12,11 @@ class Menu extends Component {
host: PropTypes.string.isRequired,
open: PropTypes.bool.isRequired,
team: PropTypes.object,
- user: PropTypes.object.isRequired
- }
+ user: PropTypes.object.isRequired,
+ };
static defaultProps = {
- team: undefined
+ team: undefined,
};
render() {
@@ -29,37 +29,68 @@ class Menu extends Component {
return (
-
- {user.name}
-
-
- {user.email}
-
+
{user.name}
+
{user.email}
{team.id && (
{hasMemberRole && (
- Team
+
+ Team
+
)}
{hasGuestRole && (
- Tags
+
+ Tags
+
)}
)}
diff --git a/src/components/NameFilterForm/NameFilterForm.js b/src/components/NameFilterForm/NameFilterForm.js
index 484abd0c4..919add8ec 100644
--- a/src/components/NameFilterForm/NameFilterForm.js
+++ b/src/components/NameFilterForm/NameFilterForm.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from './NameFilterForm.scss';
class NameFilterForm extends Component {
@@ -37,15 +37,15 @@ class NameFilterForm extends Component {
setFlipMoveFalse = () => {
this.props.setFlipMove(false);
- }
+ };
setFlipMoveTrue = () => {
this.props.setFlipMove(true);
- }
+ };
setNameFilterValue = (event) => {
this.props.setNameFilter(event.target.value);
- }
+ };
hideForm = () => {
this.props.setFlipMove(false);
@@ -53,19 +53,16 @@ class NameFilterForm extends Component {
this.setState(() => ({
shown: false,
}));
- }
+ };
showForm = () => {
this.setState(() => ({
shown: true,
}));
- }
+ };
render() {
- const {
- nameFilter,
- restaurantIds,
- } = this.props;
+ const { nameFilter, restaurantIds } = this.props;
const { shown } = this.state;
@@ -86,7 +83,9 @@ class NameFilterForm extends Component {
onChange={this.setNameFilterValue}
onFocus={this.setFlipMoveFalse}
onBlur={this.setFlipMoveTrue}
- ref={i => { this.input = i; }}
+ ref={(i) => {
+ this.input = i;
+ }}
/>
+
filter by name
);
}
- return (
- {child}
- );
+ return {child}
;
}
}
diff --git a/src/components/Notification/Notification.js b/src/components/Notification/Notification.js
index cd873416e..bdbd45abc 100644
--- a/src/components/Notification/Notification.js
+++ b/src/components/Notification/Notification.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import ActionTypes from '../../constants/ActionTypes';
import RestaurantPosted from './NotificationContent/RestaurantPosted';
import RestaurantDeleted from './NotificationContent/RestaurantDeleted';
@@ -26,7 +26,7 @@ const contentMap = {
[ActionTypes.DELETED_TAG_FROM_RESTAURANT]: DeletedTagFromRestaurant,
[ActionTypes.TAG_DELETED]: TagDeleted,
[ActionTypes.DECISION_POSTED]: DecisionPosted,
- [ActionTypes.DECISIONS_DELETED]: DecisionDeleted
+ [ActionTypes.DECISIONS_DELETED]: DecisionDeleted,
};
class Notification extends Component {
@@ -34,13 +34,13 @@ class Notification extends Component {
expireNotification: PropTypes.func.isRequired,
noRender: PropTypes.bool,
actionType: PropTypes.string,
- contentProps: PropTypes.object.isRequired
+ contentProps: PropTypes.object.isRequired,
};
static defaultProps = {
actionType: '',
- noRender: false
- }
+ noRender: false,
+ };
componentDidMount() {
this.timeout = setTimeout(this.props.expireNotification, 5000);
@@ -57,7 +57,13 @@ class Notification extends Component {
const Content = contentMap[this.props.actionType];
return (
- ×
+
+ ×
+
);
diff --git a/src/components/Notification/NotificationContent/DecisionDeleted/DecisionDeleted.js b/src/components/Notification/NotificationContent/DecisionDeleted/DecisionDeleted.js
index 108c0478c..1bd658b1d 100644
--- a/src/components/Notification/NotificationContent/DecisionDeleted/DecisionDeleted.js
+++ b/src/components/Notification/NotificationContent/DecisionDeleted/DecisionDeleted.js
@@ -1,13 +1,20 @@
import PropTypes from 'prop-types';
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from '../NotificationContent.scss';
const DecisionDeleted = ({
- loggedIn, user, restaurantName, showMapAndInfoWindow
+ loggedIn,
+ user,
+ restaurantName,
+ showMapAndInfoWindow,
}) => {
const restaurantEl = (
-
+
{restaurantName}
);
@@ -24,7 +31,7 @@ cancelled the decision for
}
return (
-The decision for
+ The decision for
{restaurantEl}
{' '}
was cancelled.
@@ -36,11 +43,11 @@ DecisionDeleted.propTypes = {
loggedIn: PropTypes.bool.isRequired,
user: PropTypes.string,
restaurantName: PropTypes.string.isRequired,
- showMapAndInfoWindow: PropTypes.func.isRequired
+ showMapAndInfoWindow: PropTypes.func.isRequired,
};
DecisionDeleted.defaultProps = {
- user: ''
+ user: '',
};
export default withStyles(s)(DecisionDeleted);
diff --git a/src/components/Notification/NotificationContent/DecisionPosted/DecisionPosted.js b/src/components/Notification/NotificationContent/DecisionPosted/DecisionPosted.js
index 590372b02..0287dda5d 100644
--- a/src/components/Notification/NotificationContent/DecisionPosted/DecisionPosted.js
+++ b/src/components/Notification/NotificationContent/DecisionPosted/DecisionPosted.js
@@ -1,14 +1,22 @@
import PropTypes from 'prop-types';
import React from 'react';
import moment from 'moment';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from '../NotificationContent.scss';
const DecisionPosted = ({
- decision, loggedIn, user, restaurantName, showMapAndInfoWindow
+ decision,
+ loggedIn,
+ user,
+ restaurantName,
+ showMapAndInfoWindow,
}) => {
const restaurantEl = (
-
+
{restaurantName}
);
@@ -50,11 +58,11 @@ DecisionPosted.propTypes = {
loggedIn: PropTypes.bool.isRequired,
user: PropTypes.string,
restaurantName: PropTypes.string.isRequired,
- showMapAndInfoWindow: PropTypes.func.isRequired
+ showMapAndInfoWindow: PropTypes.func.isRequired,
};
DecisionPosted.defaultProps = {
- user: ''
+ user: '',
};
export default withStyles(s)(DecisionPosted);
diff --git a/src/components/Notification/NotificationContent/DeletedTagFromRestaurant/DeletedTagFromRestaurant.js b/src/components/Notification/NotificationContent/DeletedTagFromRestaurant/DeletedTagFromRestaurant.js
index 5a9519e20..092a78a92 100644
--- a/src/components/Notification/NotificationContent/DeletedTagFromRestaurant/DeletedTagFromRestaurant.js
+++ b/src/components/Notification/NotificationContent/DeletedTagFromRestaurant/DeletedTagFromRestaurant.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from '../NotificationContent.scss';
const DeletedTagFromRestaurant = ({
@@ -8,10 +8,14 @@ const DeletedTagFromRestaurant = ({
user,
restaurantName,
tagName,
- showMapAndInfoWindow
+ showMapAndInfoWindow,
}) => {
const restaurantEl = (
-
+
{restaurantName}
);
@@ -22,12 +26,12 @@ const DeletedTagFromRestaurant = ({
{' '}
removed tag
-“
+ “
{tagName}
-”
+ ”
{' '}
-from
+ from
{restaurantEl}
.
@@ -38,12 +42,12 @@ from
Tag
{' '}
-“
+ “
{tagName}
-”
+ ”
{' '}
-was removed from
+ was removed from
{' '}
{restaurantEl}
.
@@ -56,11 +60,11 @@ DeletedTagFromRestaurant.propTypes = {
user: PropTypes.string,
restaurantName: PropTypes.string.isRequired,
tagName: PropTypes.string.isRequired,
- showMapAndInfoWindow: PropTypes.func.isRequired
+ showMapAndInfoWindow: PropTypes.func.isRequired,
};
DeletedTagFromRestaurant.defaultProps = {
- user: ''
+ user: '',
};
export default withStyles(s)(DeletedTagFromRestaurant);
diff --git a/src/components/Notification/NotificationContent/PostedNewTagToRestaurant/PostedNewTagToRestaurant.js b/src/components/Notification/NotificationContent/PostedNewTagToRestaurant/PostedNewTagToRestaurant.js
index 8d7deb8ef..e9c7b340a 100644
--- a/src/components/Notification/NotificationContent/PostedNewTagToRestaurant/PostedNewTagToRestaurant.js
+++ b/src/components/Notification/NotificationContent/PostedNewTagToRestaurant/PostedNewTagToRestaurant.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from '../NotificationContent.scss';
const PostedNewTagToRestaurant = ({
@@ -8,10 +8,14 @@ const PostedNewTagToRestaurant = ({
user,
restaurantName,
tagName,
- showMapAndInfoWindow
+ showMapAndInfoWindow,
}) => {
const restaurantEl = (
-
+
{restaurantName}
);
@@ -22,12 +26,12 @@ const PostedNewTagToRestaurant = ({
{' '}
added new tag
-“
+ “
{tagName}
-”
+ ”
{' '}
-to
+ to
{restaurantEl}
.
@@ -38,12 +42,12 @@ to
New tag
{' '}
-“
+ “
{tagName}
-”
+ ”
{' '}
-was added to
+ was added to
{' '}
{restaurantEl}
.
@@ -56,11 +60,11 @@ PostedNewTagToRestaurant.propTypes = {
user: PropTypes.string,
restaurantName: PropTypes.string.isRequired,
tagName: PropTypes.string.isRequired,
- showMapAndInfoWindow: PropTypes.func.isRequired
+ showMapAndInfoWindow: PropTypes.func.isRequired,
};
PostedNewTagToRestaurant.defaultProps = {
- user: ''
+ user: '',
};
export default withStyles(s)(PostedNewTagToRestaurant);
diff --git a/src/components/Notification/NotificationContent/PostedTagToRestaurant/PostedTagToRestaurant.js b/src/components/Notification/NotificationContent/PostedTagToRestaurant/PostedTagToRestaurant.js
index c9a331f57..87937d7b5 100644
--- a/src/components/Notification/NotificationContent/PostedTagToRestaurant/PostedTagToRestaurant.js
+++ b/src/components/Notification/NotificationContent/PostedTagToRestaurant/PostedTagToRestaurant.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from '../NotificationContent.scss';
const PostedTagToRestaurant = ({
@@ -8,10 +8,14 @@ const PostedTagToRestaurant = ({
user,
restaurantName,
tagName,
- showMapAndInfoWindow
+ showMapAndInfoWindow,
}) => {
const restaurantEl = (
-
+
{restaurantName}
);
@@ -23,12 +27,12 @@ const PostedTagToRestaurant = ({
added tag
{' '}
-“
+ “
{tagName}
-”
+ ”
{' '}
-to
+ to
{' '}
{restaurantEl}
.
@@ -37,14 +41,14 @@ to
}
return (
-Tag
+ Tag
-“
+ “
{tagName}
-”
+ ”
{' '}
-was added to
+ was added to
{restaurantEl}
.
@@ -56,11 +60,11 @@ PostedTagToRestaurant.propTypes = {
user: PropTypes.string,
restaurantName: PropTypes.string.isRequired,
tagName: PropTypes.string.isRequired,
- showMapAndInfoWindow: PropTypes.func.isRequired
+ showMapAndInfoWindow: PropTypes.func.isRequired,
};
PostedTagToRestaurant.defaultProps = {
- user: ''
+ user: '',
};
export default withStyles(s)(PostedTagToRestaurant);
diff --git a/src/components/Notification/NotificationContent/RestaurantDeleted/RestaurantDeleted.js b/src/components/Notification/NotificationContent/RestaurantDeleted/RestaurantDeleted.js
index e3715d4bc..3ebbce969 100644
--- a/src/components/Notification/NotificationContent/RestaurantDeleted/RestaurantDeleted.js
+++ b/src/components/Notification/NotificationContent/RestaurantDeleted/RestaurantDeleted.js
@@ -2,7 +2,7 @@
import PropTypes from 'prop-types';
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from '../NotificationContent.scss';
const RestaurantDeleted = ({ loggedIn, user, restaurantName }) => {
@@ -29,11 +29,11 @@ was deleted.
RestaurantDeleted.propTypes = {
loggedIn: PropTypes.bool.isRequired,
user: PropTypes.string,
- restaurantName: PropTypes.string.isRequired
+ restaurantName: PropTypes.string.isRequired,
};
RestaurantDeleted.defaultProps = {
- user: ''
+ user: '',
};
export default withStyles(s)(RestaurantDeleted);
diff --git a/src/components/Notification/NotificationContent/RestaurantPosted/RestaurantPosted.js b/src/components/Notification/NotificationContent/RestaurantPosted/RestaurantPosted.js
index f9e13ca17..0e5182047 100644
--- a/src/components/Notification/NotificationContent/RestaurantPosted/RestaurantPosted.js
+++ b/src/components/Notification/NotificationContent/RestaurantPosted/RestaurantPosted.js
@@ -1,16 +1,20 @@
import PropTypes from 'prop-types';
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from '../NotificationContent.scss';
const RestaurantPosted = ({
loggedIn,
user,
restaurantName,
- showMapAndInfoWindow
+ showMapAndInfoWindow,
}) => {
const restaurantEl = (
-
+
{restaurantName}
);
@@ -20,7 +24,6 @@ const RestaurantPosted = ({
{user}
{' '}
added
- {' '}
{restaurantEl}
.
@@ -39,11 +42,11 @@ RestaurantPosted.propTypes = {
loggedIn: PropTypes.bool.isRequired,
user: PropTypes.string,
restaurantName: PropTypes.string.isRequired,
- showMapAndInfoWindow: PropTypes.func.isRequired
+ showMapAndInfoWindow: PropTypes.func.isRequired,
};
RestaurantPosted.defaultProps = {
- user: ''
+ user: '',
};
export default withStyles(s)(RestaurantPosted);
diff --git a/src/components/Notification/NotificationContent/RestaurantRenamed/RestaurantRenamed.js b/src/components/Notification/NotificationContent/RestaurantRenamed/RestaurantRenamed.js
index eb148a5d3..9e2506642 100644
--- a/src/components/Notification/NotificationContent/RestaurantRenamed/RestaurantRenamed.js
+++ b/src/components/Notification/NotificationContent/RestaurantRenamed/RestaurantRenamed.js
@@ -1,16 +1,32 @@
import PropTypes from 'prop-types';
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from '../NotificationContent.scss';
const RestaurantRenamed = ({
- loggedIn, user, restaurantName, newName, showMapAndInfoWindow
+ loggedIn,
+ user,
+ restaurantName,
+ newName,
+ showMapAndInfoWindow,
}) => {
const oldNameEl = (
- {restaurantName}
+
+ {restaurantName}
+
);
const newNameEl = (
- {newName}
+
+ {newName}
+
);
if (loggedIn) {
return (
@@ -31,7 +47,6 @@ to
{oldNameEl}
{' '}
was renamed to
- {' '}
{newNameEl}
.
@@ -43,11 +58,11 @@ RestaurantRenamed.propTypes = {
user: PropTypes.string,
restaurantName: PropTypes.string.isRequired,
newName: PropTypes.string.isRequired,
- showMapAndInfoWindow: PropTypes.func.isRequired
+ showMapAndInfoWindow: PropTypes.func.isRequired,
};
RestaurantRenamed.defaultProps = {
- user: ''
+ user: '',
};
export default withStyles(s)(RestaurantRenamed);
diff --git a/src/components/Notification/NotificationContent/TagDeleted/TagDeleted.js b/src/components/Notification/NotificationContent/TagDeleted/TagDeleted.js
index faf17789d..7b888fbfd 100644
--- a/src/components/Notification/NotificationContent/TagDeleted/TagDeleted.js
+++ b/src/components/Notification/NotificationContent/TagDeleted/TagDeleted.js
@@ -2,7 +2,7 @@
import PropTypes from 'prop-types';
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from '../NotificationContent.scss';
const TagDeleted = ({ loggedIn, user, tagName }) => {
@@ -14,24 +14,24 @@ const TagDeleted = ({ loggedIn, user, tagName }) => {
deleted tag
{' '}
-“
+ “
{tagName}
-”
+ ”
-.
+ .
);
}
return (
-Tag
+ Tag
-“
+ “
{tagName}
-”
+ ”
{' '}
-was deleted.
+ was deleted.
);
};
@@ -39,11 +39,11 @@ was deleted.
TagDeleted.propTypes = {
loggedIn: PropTypes.bool.isRequired,
user: PropTypes.string,
- tagName: PropTypes.string.isRequired
+ tagName: PropTypes.string.isRequired,
};
TagDeleted.defaultProps = {
- user: ''
+ user: '',
};
export default withStyles(s)(TagDeleted);
diff --git a/src/components/Notification/NotificationContent/VoteDeleted/VoteDeleted.js b/src/components/Notification/NotificationContent/VoteDeleted/VoteDeleted.js
index 1935d765d..3f032e508 100644
--- a/src/components/Notification/NotificationContent/VoteDeleted/VoteDeleted.js
+++ b/src/components/Notification/NotificationContent/VoteDeleted/VoteDeleted.js
@@ -1,16 +1,20 @@
import PropTypes from 'prop-types';
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from '../NotificationContent.scss';
const VoteDeleted = ({
loggedIn,
user,
restaurantName,
- showMapAndInfoWindow
+ showMapAndInfoWindow,
}) => {
const restaurantEl = (
-
+
{restaurantName}
);
@@ -38,11 +42,11 @@ VoteDeleted.propTypes = {
loggedIn: PropTypes.bool.isRequired,
user: PropTypes.string,
restaurantName: PropTypes.string.isRequired,
- showMapAndInfoWindow: PropTypes.func.isRequired
+ showMapAndInfoWindow: PropTypes.func.isRequired,
};
VoteDeleted.defaultProps = {
- user: ''
+ user: '',
};
export default withStyles(s)(VoteDeleted);
diff --git a/src/components/Notification/NotificationContent/VotePosted/VotePosted.js b/src/components/Notification/NotificationContent/VotePosted/VotePosted.js
index cb821c459..1ee2e7727 100644
--- a/src/components/Notification/NotificationContent/VotePosted/VotePosted.js
+++ b/src/components/Notification/NotificationContent/VotePosted/VotePosted.js
@@ -1,13 +1,20 @@
import PropTypes from 'prop-types';
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from '../NotificationContent.scss';
const VotePosted = ({
- loggedIn, user, restaurantName, showMapAndInfoWindow
+ loggedIn,
+ user,
+ restaurantName,
+ showMapAndInfoWindow,
}) => {
const restaurantEl = (
-
+
{restaurantName}
);
@@ -35,11 +42,11 @@ VotePosted.propTypes = {
loggedIn: PropTypes.bool.isRequired,
user: PropTypes.string,
restaurantName: PropTypes.string.isRequired,
- showMapAndInfoWindow: PropTypes.func.isRequired
+ showMapAndInfoWindow: PropTypes.func.isRequired,
};
VotePosted.defaultProps = {
- user: ''
+ user: '',
};
export default withStyles(s)(VotePosted);
diff --git a/src/components/NotificationList/NotificationList.js b/src/components/NotificationList/NotificationList.js
index 5f9fdaa33..bcdbf8fca 100644
--- a/src/components/NotificationList/NotificationList.js
+++ b/src/components/NotificationList/NotificationList.js
@@ -1,28 +1,30 @@
import PropTypes from 'prop-types';
import React from 'react';
-import CSSTransitionGroup from 'react-transition-group/CSSTransitionGroup';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import { CSSTransition, TransitionGroup } from 'react-transition-group';
+import withStyles from 'isomorphic-style-loader/withStyles';
import NotificationContainer from '../Notification/NotificationContainer';
import s from './NotificationList.scss';
const NotificationList = ({ notifications }) => (
-
- {notifications.map(notification => (
-
-
-
+
+ {notifications.map((notification) => (
+
+
+
+
+
))}
-
+
);
NotificationList.propTypes = {
- notifications: PropTypes.array.isRequired
+ notifications: PropTypes.array.isRequired,
};
export default withStyles(s)(NotificationList);
diff --git a/src/components/Restaurant/Restaurant.js b/src/components/Restaurant/Restaurant.js
index 6e9265b04..35eb40109 100644
--- a/src/components/Restaurant/Restaurant.js
+++ b/src/components/Restaurant/Restaurant.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import RestaurantVoteCountContainer from '../RestaurantVoteCount/RestaurantVoteCountContainer';
import RestaurantVoteButtonContainer from '../RestaurantVoteButton/RestaurantVoteButtonContainer';
import RestaurantDecisionContainer from '../RestaurantDecision/RestaurantDecisionContainer';
@@ -17,29 +17,29 @@ class Restaurant extends Component {
shouldShowAddTagArea: PropTypes.bool,
shouldShowDropdown: PropTypes.bool,
listUiItem: PropTypes.object.isRequired,
- showMapAndInfoWindow: PropTypes.func.isRequired
+ showMapAndInfoWindow: PropTypes.func.isRequired,
};
static defaultProps = {
shouldShowAddTagArea: false,
- shouldShowDropdown: false
+ shouldShowDropdown: false,
};
state = {
- isAddingTags: false
+ isAddingTags: false,
};
hideAddTagForm = () => {
this.setState(() => ({
- isAddingTags: false
+ isAddingTags: false,
}));
- }
+ };
showAddTagForm = () => {
this.setState(() => ({
- isAddingTags: true
+ isAddingTags: true,
}));
- }
+ };
render() {
const {
@@ -72,7 +72,13 @@ class Restaurant extends Component {
);
} else {
addTagArea = (
- add tag
+
+ add tag
+
);
}
}
diff --git a/src/components/RestaurantAddForm/RestaurantAddForm.js b/src/components/RestaurantAddForm/RestaurantAddForm.js
index 17e89f967..64ff78db4 100644
--- a/src/components/RestaurantAddForm/RestaurantAddForm.js
+++ b/src/components/RestaurantAddForm/RestaurantAddForm.js
@@ -1,15 +1,21 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
-import { intlShape } from 'react-intl';
+import withStyles from 'isomorphic-style-loader/withStyles';
import loadComponent from '../../helpers/loadComponent';
import s from './RestaurantAddForm.scss';
import generateMessageDescriptor from '../../helpers/generateMessageDescriptor';
const m = generateMessageDescriptor('RestaurantAddForm');
-let google = { maps: { Geocoder: function Geocoder() { return {}; }, GeocoderStatus: {} } };
+let google = {
+ maps: {
+ Geocoder: function Geocoder() {
+ return {};
+ },
+ GeocoderStatus: {},
+ },
+};
if (canUseDOM) {
google = window.google || google;
}
@@ -24,7 +30,7 @@ class RestaurantAddForm extends Component {
clearTempMarker: PropTypes.func.isRequired,
handleSuggestSelect: PropTypes.func.isRequired,
latLng: PropTypes.object.isRequired,
- intl: intlShape.isRequired
+ intl: PropTypes.shape().isRequired,
};
constructor(props) {
@@ -33,7 +39,11 @@ class RestaurantAddForm extends Component {
}
componentDidMount() {
- loadComponent(() => require.ensure([], require => require('react-geosuggest').default, 'map')).then((g) => {
+ loadComponent(() => require.ensure(
+ [],
+ (require) => require('react-geosuggest').default,
+ 'map'
+ )).then((g) => {
Geosuggest = g;
this.forceUpdate();
});
@@ -47,14 +57,16 @@ class RestaurantAddForm extends Component {
}
});
}
- }
+ };
handleSuggestSelect = (suggestion) => {
this.props.handleSuggestSelect(suggestion, this.geosuggest);
- }
+ };
render() {
- const { intl: { formatMessage: f } } = this.props;
+ const {
+ intl: { formatMessage: f },
+ } = this.props;
return (
);
diff --git a/src/components/RestaurantAddTagForm/RestaurantAddTagForm.js b/src/components/RestaurantAddTagForm/RestaurantAddTagForm.js
index 3e0130bbb..6e140b543 100644
--- a/src/components/RestaurantAddTagForm/RestaurantAddTagForm.js
+++ b/src/components/RestaurantAddTagForm/RestaurantAddTagForm.js
@@ -1,8 +1,12 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import Autosuggest from 'react-autosuggest';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
-import { generateTagList, getSuggestionValue, renderSuggestion } from '../../helpers/TagAutosuggestHelper';
+import withStyles from 'isomorphic-style-loader/withStyles';
+import {
+ generateTagList,
+ getSuggestionValue,
+ renderSuggestion,
+} from '../../helpers/TagAutosuggestHelper';
import s from './RestaurantAddTagForm.scss';
// eslint-disable-next-line css-modules/no-unused-class
@@ -19,11 +23,11 @@ export class _RestaurantAddTagForm extends Component {
addNewTagToRestaurant: PropTypes.func.isRequired,
addTagToRestaurant: PropTypes.func.isRequired,
hideAddTagForm: PropTypes.func.isRequired,
- tags: PropTypes.array.isRequired
+ tags: PropTypes.array.isRequired,
};
state = {
- autosuggestValue: ''
+ autosuggestValue: '',
};
componentDidMount() {
@@ -45,7 +49,7 @@ export class _RestaurantAddTagForm extends Component {
this.setState(() => ({
autosuggestValue: '',
}));
- }
+ };
handleSuggestionSelected = (event, { suggestion, method }) => {
if (method === 'enter') {
@@ -58,11 +62,7 @@ export class _RestaurantAddTagForm extends Component {
};
render() {
- const {
- addedTags,
- hideAddTagForm,
- tags,
- } = this.props;
+ const { addedTags, hideAddTagForm, tags } = this.props;
const { autosuggestValue } = this.state;
@@ -84,7 +84,9 @@ export class _RestaurantAddTagForm extends Component {
onSuggestionsFetchRequested={() => {}}
onSuggestionsClearRequested={() => {}}
shouldRenderSuggestions={returnTrue}
- ref={a => { this.autosuggest = a; }}
+ ref={(a) => {
+ this.autosuggest = a;
+ }}
/>
{
const tooltip = (
-We ate here
+ We ate here
{decided ? '!' : '?'}
);
- return ((loggedIn && votes.length > 0) || decided)
- && (
-
-
- ✔
-
-
- );
+ return (
+ ((loggedIn && votes.length > 0) || decided) && (
+
+
+ ✔
+
+
+ )
+ );
};
RestaurantDecision.propTypes = {
@@ -37,7 +40,7 @@ RestaurantDecision.propTypes = {
votes: PropTypes.array.isRequired,
decided: PropTypes.bool.isRequired,
handleClick: PropTypes.func.isRequired,
- loggedIn: PropTypes.bool.isRequired
+ loggedIn: PropTypes.bool.isRequired,
};
export default withStyles(s)(RestaurantDecision);
diff --git a/src/components/RestaurantDropdown/RestaurantDropdown.js b/src/components/RestaurantDropdown/RestaurantDropdown.js
index 0990b580b..1848bc2dd 100644
--- a/src/components/RestaurantDropdown/RestaurantDropdown.js
+++ b/src/components/RestaurantDropdown/RestaurantDropdown.js
@@ -3,7 +3,7 @@ import React from 'react';
import Dropdown from 'react-bootstrap/lib/Dropdown';
import Glyphicon from 'react-bootstrap/lib/Glyphicon';
import MenuItem from 'react-bootstrap/lib/MenuItem';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from './RestaurantDropdown.scss';
const RestaurantDropdown = ({
@@ -21,7 +21,10 @@ const RestaurantDropdown = ({
let editButton;
if (!listUiItem.isEditingName) {
editButton = (
-
+
Edit name
);
@@ -39,14 +42,20 @@ const RestaurantDropdown = ({
);
} else {
decideButton = (
-
+
We ate here...
);
}
const menuItems = [
-
+
Reveal on map
,
editButton,
@@ -56,7 +65,7 @@ const RestaurantDropdown = ({
key={`restaurantDropdown_${restaurant.id}_delete`}
>
Delete
-
+ ,
];
const DropdownToggle = Dropdown.Toggle;
@@ -89,7 +98,7 @@ const RestaurantDropdown = ({
{lastVisited}
-Last
+ Last
{sortDuration}
{' '}
day
@@ -121,13 +130,13 @@ RestaurantDropdown.propTypes = {
showEditNameForm: PropTypes.func.isRequired,
deleteRestaurant: PropTypes.func.isRequired,
removeDecision: PropTypes.func,
- showPastDecisionsModal: PropTypes.func.isRequired
+ showPastDecisionsModal: PropTypes.func.isRequired,
};
RestaurantDropdown.defaultProps = {
decision: {},
pastDecisions: {},
- removeDecision: () => {}
+ removeDecision: () => {},
};
export default withStyles(s)(RestaurantDropdown);
diff --git a/src/components/RestaurantList/RestaurantList.js b/src/components/RestaurantList/RestaurantList.js
index 66eb5c6ae..3070ddc14 100644
--- a/src/components/RestaurantList/RestaurantList.js
+++ b/src/components/RestaurantList/RestaurantList.js
@@ -2,14 +2,17 @@ import PropTypes from 'prop-types';
import React from 'react';
import FlipMove from 'react-flip-move';
import { Element as ScrollElement } from 'react-scroll';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Grid from 'react-bootstrap/lib/Grid';
import RestaurantContainer from '../Restaurant/RestaurantContainer';
import Loading from '../Loading';
import s from './RestaurantList.scss';
const RestaurantList = ({
- allRestaurantIds, flipMove, ids, restaurantListReady
+ allRestaurantIds,
+ flipMove,
+ ids,
+ restaurantListReady,
}) => {
if (!restaurantListReady) {
return ;
@@ -34,9 +37,7 @@ const RestaurantList = ({
return (
-
- Nothing to see here!
-
+ Nothing to see here!
);
@@ -52,7 +53,7 @@ const RestaurantList = ({
staggerDelayBy={40}
staggerDurationBy={40}
>
- {ids.map(id => (
+ {ids.map((id) => (
require.ensure([], require => require('google-map-react').default, 'map')).then((map) => {
+ loadComponent(() => require.ensure(
+ [],
+ (require) => require('google-map-react').default,
+ 'map'
+ )).then((map) => {
GoogleMap = map;
this.forceUpdate();
});
@@ -93,7 +97,7 @@ class RestaurantMap extends Component {
latLng,
mapClicked,
showPOIs,
- tempMarker
+ tempMarker,
} = this.props;
let tempMarkerComponent;
diff --git a/src/components/RestaurantMapSettings/RestaurantMapSettings.js b/src/components/RestaurantMapSettings/RestaurantMapSettings.js
index bdf4e1d21..f7041d062 100644
--- a/src/components/RestaurantMapSettings/RestaurantMapSettings.js
+++ b/src/components/RestaurantMapSettings/RestaurantMapSettings.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Button from 'react-bootstrap/lib/Button';
import s from './RestaurantMapSettings.scss';
@@ -10,14 +10,14 @@ class RestaurantMapSettings extends Component {
showPOIs: PropTypes.bool.isRequired,
setShowPOIs: PropTypes.func.isRequired,
showUnvoted: PropTypes.bool.isRequired,
- setShowUnvoted: PropTypes.func.isRequired
+ setShowUnvoted: PropTypes.func.isRequired,
};
state = {
- collapsed: false
- }
+ collapsed: false,
+ };
- toggleCollapsed = () => this.setState(prevState => ({ collapsed: !prevState.collapsed }));
+ toggleCollapsed = () => this.setState((prevState) => ({ collapsed: !prevState.collapsed }));
render() {
const {
@@ -25,7 +25,7 @@ class RestaurantMapSettings extends Component {
showUnvoted,
showPOIs,
setShowPOIs,
- setShowUnvoted
+ setShowUnvoted,
} = this.props;
const { collapsed } = this.state;
@@ -33,22 +33,38 @@ class RestaurantMapSettings extends Component {
return (
{collapsed ? (
-
Show
+
+ Show
+
) : (
- Save zoom level
- Hide
+
+ Save zoom level
+
+
+ Hide
+
-
+
Show Unvoted
-
+
Show Points of Interest
diff --git a/src/components/RestaurantMarker/RestaurantMarker.js b/src/components/RestaurantMarker/RestaurantMarker.js
index b455642f6..4849e6ad6 100644
--- a/src/components/RestaurantMarker/RestaurantMarker.js
+++ b/src/components/RestaurantMarker/RestaurantMarker.js
@@ -1,7 +1,7 @@
import PropTypes from 'prop-types';
import React from 'react';
import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import App from '../App';
import RestaurantContainer from '../Restaurant/RestaurantContainer';
import s from './RestaurantMarker.scss';
@@ -17,7 +17,7 @@ const InnerRestaurantMarker = ({
index,
baseZIndex,
handleMarkerClick,
- showInfoWindow
+ showInfoWindow,
}) => {
const length = restaurant.votes.length;
let label = '';
@@ -27,9 +27,9 @@ const InnerRestaurantMarker = ({
// place markers lower based on how far down they are in the list
// add item length so index doesn't dip below MAX_ZINDEX
const zIndex = google.maps.Marker.MAX_ZINDEX
- + restaurant.votes.length
- + (-index)
- + baseZIndex;
+ + restaurant.votes.length
+ + -index
+ + baseZIndex;
if (restaurant.votes.length > 99 || decided) {
label = '✔';
@@ -45,15 +45,15 @@ const InnerRestaurantMarker = ({
style={{ zIndex: zIndex * 2 }}
key={`infoWindow_${ref}`}
>
-
+
);
return (
0 || decided ? s.voted : ''}`}
+ className={`${s.root} ${
+ restaurant.votes.length > 0 || decided ? s.voted : ''
+ }`}
data-marker
>
{showInfoWindow ? renderInfoWindow() : null}
@@ -66,9 +66,7 @@ const InnerRestaurantMarker = ({
style={{ zIndex }}
type="button"
>
-
- {label}
-
+ {label}
);
@@ -80,15 +78,12 @@ InnerRestaurantMarker.propTypes = {
index: PropTypes.number.isRequired,
baseZIndex: PropTypes.number.isRequired,
showInfoWindow: PropTypes.bool.isRequired,
- handleMarkerClick: PropTypes.func.isRequired
+ handleMarkerClick: PropTypes.func.isRequired,
};
const StyledRestaurantMarker = withStyles(s)(InnerRestaurantMarker);
-const RestaurantMarker = ({
- restaurant,
- ...props
-}) => {
+const RestaurantMarker = ({ restaurant, ...props }) => {
const context = {
fetch: props.fetch,
insertCss: props.insertCss,
@@ -115,7 +110,7 @@ RestaurantMarker.propTypes = {
insertCss: PropTypes.func.isRequired,
pathname: PropTypes.string.isRequired,
query: PropTypes.object,
- restaurant: PropTypes.object.isRequired
+ restaurant: PropTypes.object.isRequired,
};
RestaurantMarker.defaultProps = {
diff --git a/src/components/RestaurantNameForm/RestaurantNameForm.js b/src/components/RestaurantNameForm/RestaurantNameForm.js
index 1f83a6095..82bd7ae67 100644
--- a/src/components/RestaurantNameForm/RestaurantNameForm.js
+++ b/src/components/RestaurantNameForm/RestaurantNameForm.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from './RestaurantNameForm.scss';
class RestaurantNameForm extends Component {
@@ -21,7 +21,9 @@ class RestaurantNameForm extends Component {
className="form-control input-sm"
value={this.props.editNameFormValue}
onChange={this.props.setEditNameFormValue}
- ref={i => { this.input = i; }}
+ ref={(i) => {
+ this.input = i;
+ }}
/>
(
- {ids.map(tagId => {
- const boundRemoveTag = () => { removeTag(tagId); };
+ {ids.map((tagId) => {
+ const boundRemoveTag = () => {
+ removeTag(tagId);
+ };
return (
-
+
);
})}
@@ -20,7 +26,7 @@ const RestaurantTagList = ({ ids, removeTag, loggedIn }) => (
RestaurantTagList.propTypes = {
ids: PropTypes.array.isRequired,
removeTag: PropTypes.func.isRequired,
- loggedIn: PropTypes.bool.isRequired
+ loggedIn: PropTypes.bool.isRequired,
};
export default withStyles(s)(RestaurantTagList);
diff --git a/src/components/RestaurantVoteButton/RestaurantVoteButton.js b/src/components/RestaurantVoteButton/RestaurantVoteButton.js
index e8697fecd..2b82853a0 100644
--- a/src/components/RestaurantVoteButton/RestaurantVoteButton.js
+++ b/src/components/RestaurantVoteButton/RestaurantVoteButton.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from './RestaurantVoteButton.scss';
export class _RestaurantVoteButton extends Component {
@@ -17,7 +17,9 @@ export class _RestaurantVoteButton extends Component {
return (
{ this.el = r; }}
+ ref={(r) => {
+ this.el = r;
+ }}
onClick={this.props.handleClick}
className={`${s.root} btn btn-sm ${btnClass}`}
type="button"
@@ -30,7 +32,7 @@ export class _RestaurantVoteButton extends Component {
_RestaurantVoteButton.propTypes = {
handleClick: PropTypes.func.isRequired,
- userVotes: PropTypes.array.isRequired
+ userVotes: PropTypes.array.isRequired,
};
export default withStyles(s)(_RestaurantVoteButton);
diff --git a/src/components/RestaurantVoteCount/RestaurantVoteCount.js b/src/components/RestaurantVoteCount/RestaurantVoteCount.js
index 5127025be..f08a7ac5e 100644
--- a/src/components/RestaurantVoteCount/RestaurantVoteCount.js
+++ b/src/components/RestaurantVoteCount/RestaurantVoteCount.js
@@ -2,7 +2,7 @@ import PropTypes from 'prop-types';
import React, { Component } from 'react';
import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger';
import Tooltip from 'react-bootstrap/lib/Tooltip';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import TooltipUserContainer from '../TooltipUser/TooltipUserContainer';
import s from './RestaurantVoteCount.scss';
@@ -10,7 +10,7 @@ export class _RestaurantVoteCount extends Component {
static propTypes = {
id: PropTypes.number.isRequired,
votes: PropTypes.array.isRequired,
- user: PropTypes.object.isRequired
+ user: PropTypes.object.isRequired,
};
componentDidUpdate() {
@@ -44,7 +44,12 @@ export class _RestaurantVoteCount extends Component {
} else {
tooltip = (
- {this.props.votes.map(voteId => )}
+ {this.props.votes.map((voteId) => (
+
+ ))}
);
voteCountContainer = (
@@ -60,7 +65,12 @@ export class _RestaurantVoteCount extends Component {
}
return (
- { this.el = e; }} className={s.root}>
+ {
+ this.el = e;
+ }}
+ className={s.root}
+ >
{voteCountContainer}
);
diff --git a/src/components/Tag/Tag.js b/src/components/Tag/Tag.js
index 3db010501..90c1b23d2 100644
--- a/src/components/Tag/Tag.js
+++ b/src/components/Tag/Tag.js
@@ -1,18 +1,17 @@
import PropTypes from 'prop-types';
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from './Tag.scss';
const Tag = ({
- name,
- showDelete,
- onDeleteClicked,
- exclude
+ name, showDelete, onDeleteClicked, exclude
}) => {
let deleteButton = null;
if (showDelete) {
deleteButton = (
- ×
+
+ ×
+
);
}
@@ -28,11 +27,11 @@ Tag.propTypes = {
name: PropTypes.string.isRequired,
showDelete: PropTypes.bool.isRequired,
onDeleteClicked: PropTypes.func.isRequired,
- exclude: PropTypes.bool
+ exclude: PropTypes.bool,
};
Tag.defaultProps = {
- exclude: false
+ exclude: false,
};
export const undecorated = Tag;
diff --git a/src/components/TagFilterForm/TagFilterForm.js b/src/components/TagFilterForm/TagFilterForm.js
index 2b0ac3363..d4f054c89 100644
--- a/src/components/TagFilterForm/TagFilterForm.js
+++ b/src/components/TagFilterForm/TagFilterForm.js
@@ -1,9 +1,13 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import Autosuggest from 'react-autosuggest';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import TagContainer from '../Tag/TagContainer';
-import { generateTagList, getSuggestionValue, renderSuggestion } from '../../helpers/TagAutosuggestHelper';
+import {
+ generateTagList,
+ getSuggestionValue,
+ renderSuggestion,
+} from '../../helpers/TagAutosuggestHelper';
import s from './TagFilterForm.scss';
// eslint-disable-next-line css-modules/no-unused-class
@@ -28,7 +32,7 @@ class TagFilterForm extends Component {
};
static defaultProps = {
- exclude: false
+ exclude: false,
};
constructor(props) {
@@ -53,7 +57,7 @@ class TagFilterForm extends Component {
return;
}
this.setState(() => ({
- autosuggestValue: newValue
+ autosuggestValue: newValue,
}));
};
@@ -66,7 +70,7 @@ class TagFilterForm extends Component {
this.setState(() => ({
autosuggestValue: '',
}));
- }
+ };
hideForm = () => {
this.props.clearTags();
@@ -75,26 +79,22 @@ class TagFilterForm extends Component {
autosuggestValue: '',
shown: false,
}));
- }
+ };
showForm = () => {
this.setState(() => ({
shown: true,
}));
- }
+ };
removeTagFilter = (tag) => {
this.props.removeTag(tag);
this.props.setFlipMove(false);
- }
+ };
render() {
const {
- addByName,
- addedTags,
- allTags,
- exclude,
- restaurantIds,
+ addByName, addedTags, allTags, exclude, restaurantIds
} = this.props;
const { autosuggestValue, shown } = this.state;
@@ -126,9 +126,11 @@ class TagFilterForm extends Component {
onSuggestionsFetchRequested={() => {}}
onSuggestionsClearRequested={() => {}}
shouldRenderSuggestions={returnTrue}
- ref={a => { this.autosuggest = a; }}
+ ref={(a) => {
+ this.autosuggest = a;
+ }}
/>
- {addedTags.map(tag => (
+ {addedTags.map((tag) => (
+
{exclude ? 'exclude tags' : 'filter by tag'}
);
diff --git a/src/components/TagManagerItem/TagManagerItem.js b/src/components/TagManagerItem/TagManagerItem.js
index bf41252a5..d9b91dc7d 100644
--- a/src/components/TagManagerItem/TagManagerItem.js
+++ b/src/components/TagManagerItem/TagManagerItem.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from './TagManagerItem.scss';
import TagContainer from '../Tag/TagContainer';
@@ -22,7 +22,7 @@ const TagManagerItem = ({ tag, showDelete, handleDeleteClicked }) => (
TagManagerItem.propTypes = {
tag: PropTypes.object.isRequired,
showDelete: PropTypes.bool.isRequired,
- handleDeleteClicked: PropTypes.func.isRequired
+ handleDeleteClicked: PropTypes.func.isRequired,
};
export default withStyles(s)(TagManagerItem);
diff --git a/src/components/TeamForm/TeamForm.js b/src/components/TeamForm/TeamForm.js
index fc63334f3..9a3b10ad1 100644
--- a/src/components/TeamForm/TeamForm.js
+++ b/src/components/TeamForm/TeamForm.js
@@ -9,7 +9,7 @@ import InputGroup from 'react-bootstrap/lib/InputGroup';
import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger';
import Popover from 'react-bootstrap/lib/Popover';
import Row from 'react-bootstrap/lib/Row';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import TeamGeosuggestContainer from '../TeamGeosuggest/TeamGeosuggestContainer';
import TeamMapContainer from '../TeamMap/TeamMapContainer';
import s from './TeamForm.scss';
@@ -18,27 +18,27 @@ class TeamForm extends Component {
static propTypes = {
center: PropTypes.object,
team: PropTypes.object.isRequired,
- updateTeam: PropTypes.func.isRequired
+ updateTeam: PropTypes.func.isRequired,
};
static defaultProps = {
- center: undefined
+ center: undefined,
};
constructor(props) {
super(props);
this.defaultCenter = {
lat: props.team.lat,
- lng: props.team.lng
+ lng: props.team.lng,
};
this.state = {
address: props.team.address,
name: props.team.name,
- sortDuration: props.team.sort_duration
+ sortDuration: props.team.sort_duration,
};
}
- handleChange = field => event => this.setState({ [field]: event.target.value });
+ handleChange = (field) => (event) => this.setState({ [field]: event.target.value });
handleSubmit = (event) => {
event.preventDefault();
@@ -47,7 +47,9 @@ class TeamForm extends Component {
: parseInt(this.state.sortDuration.slice(), 10);
if (typedsortDuration > 0) {
this.props.updateTeam(
- Object.assign({}, this.state, this.props.center, { sort_duration: typedsortDuration })
+ Object.assign({}, this.state, this.props.center, {
+ sort_duration: typedsortDuration,
+ })
);
} else {
event.stopPropagation();
@@ -60,15 +62,16 @@ class TeamForm extends Component {
const popoverRight = (
- Sort duration refers to the amount of time votes and decisions factor in to how
- restaurants are sorted. For example, if you choose Burger Shack for today’s lunch
- and your sort duration is set to 7 days, Burger Shack will appear towards the bottom
- of your restaurant list for the next week.
+ Sort duration refers to the amount of time votes and decisions factor
+ in to how restaurants are sorted. For example, if you choose Burger
+ Shack for today’s lunch and your sort duration is set to 7 days,
+ Burger Shack will appear towards the bottom of your restaurant list
+ for the next week.
- Conversely, if you were to upvote Burger Shack but not choose it for today’s lunch,
- Burger Shack would be prioritized and appear higher in your restaurant list for the
- next week.
+ Conversely, if you were to upvote Burger Shack but not choose it for
+ today’s lunch, Burger Shack would be prioritized and appear higher in
+ your restaurant list for the next week.
);
@@ -76,9 +79,7 @@ class TeamForm extends Component {
return (
Email/password
-
diff --git a/src/routes/main/about/About.js b/src/routes/main/about/About.js
index 2a655685a..b3b9435d8 100644
--- a/src/routes/main/about/About.js
+++ b/src/routes/main/about/About.js
@@ -1,5 +1,5 @@
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Grid from 'react-bootstrap/lib/Grid';
import s from './About.scss';
@@ -10,118 +10,149 @@ const About = () => (
Hi! I’m
{' '}
- Jeffrey
-,
- the guy behind Lunch. I created Lunch when my coworkers at
+
+ Jeffrey
+
+ , the guy behind Lunch. I created Lunch when my coworkers at
{' '}
- Lab Zero
+
+ Lab Zero
+
{' '}
-realized we had fallen into sort of a rut, food-wise. We kept going to the same few
- places, and our routine was getting stale. So I made Lunch, an easy way to keep a list of
- our favorite restaurants, and decide where to go!
+ realized we had fallen into sort of a rut, food-wise. We kept going to
+ the same few places, and our routine was getting stale. So I made Lunch,
+ an easy way to keep a list of our favorite restaurants, and decide where
+ to go!
- It’s worked great for us. Every day around 10:30 (we eat early to beat the crowds), we all
- hop on Lunch and vote for whatever looks good. Eventually, a consensus is reached, and we’re
- on our way. That, or a whole bunch of places are tied for votes, and so we just, y’know, talk
+ It’s worked great for us. Every day around 10:30 (we eat early to beat
+ the crowds), we all hop on Lunch and vote for whatever looks good.
+ Eventually, a consensus is reached, and we’re on our way. That, or a
+ whole bunch of places are tied for votes, and so we just, y’know, talk
it over like humans.
- Either way, I hope you have fun using Lunch! I think it’s helped us grow closer as coworkers,
- because we’re more invested in trying new places together, and making sure we leave the
- office for a little bit each day. Hot tip: set up a reminder in Slack to vote where to go
- every day!
+ Either way, I hope you have fun using Lunch! I think it’s helped us grow
+ closer as coworkers, because we’re more invested in trying new places
+ together, and making sure we leave the office for a little bit each day.
+ Hot tip: set up a reminder in Slack to vote where to go every day!
- /remind #general "Vote for lunch! https://lunch.pink" at 10:30am every weekday
+
+ /remind #general "Vote for lunch! https://lunch.pink" at
+ 10:30am every weekday
+
Privacy
- I haven’t talked to a lawyer, but I should probably reassure you about what might happen with
- your data when you sign up.
+ I haven’t talked to a lawyer, but I should probably reassure you about
+ what might happen with your data when you sign up.
Open-source
First of all, Lunch is
{' '}
-
+
open-source and available on GitHub
-. If you’re ever doubtful about what we’re doing with stuff like your email address or
- your team’s daily decisions, you can have a look yourself.
+ . If you’re ever doubtful about what we’re doing with stuff like your
+ email address or your team’s daily decisions, you can have a look
+ yourself.
Storing your data
- Public sign-ups for Lunch are currently closed. If you try to log in with your Google account
- and you don’t already have a Lunch account, I’m not going to store any of your data, or keep
- a record that you even tried to log in — but you will be prompted to sign up for an
+ Public sign-ups for Lunch are currently closed. If you try to log in
+ with your Google account and you don’t already have a Lunch account, I’m
+ not going to store any of your data, or keep a record that you even
+ tried to log in — but you will be prompted to sign up for an
invitation.
- For those who are already Lunch users, when you link a Google account I only store your email
- address, your name, and your Google profile ID.
+ For those who are already Lunch users, when you link a Google account I
+ only store your email address, your name, and your Google profile ID.
Email use
- I only plan on sending email for stuff like password resets and notifications that you’ve
- been added to a new team. I’m certainly not interested in using your email address for any
- reason other than to identify you when you log in. On Lunch, the only people who can see your
+ I only plan on sending email for stuff like password resets and
+ notifications that you’ve been added to a new team. I’m certainly not
+ interested in using your email address for any reason other than to
+ identify you when you log in. On Lunch, the only people who can see your
email address are owners of the teams you’re a part of.
Cookies
- Like pretty much any website with a login, Lunch will tell your browser to hold onto a cookie
- that identifies you as being logged in. There’s also a separate “session” cookie that makes
- sure you’re the same person from page to page, so you can see success or failure messages
- when doing things like requesting a password reset.
+ Like pretty much any website with a login, Lunch will tell your browser
+ to hold onto a cookie that identifies you as being logged in. There’s
+ also a separate “session” cookie that makes sure you’re the same person
+ from page to page, so you can see success or failure messages when doing
+ things like requesting a password reset.
Google Analytics
This site also uses
{' '}
-
+
Google Analytics
{' '}
-to give me an idea of what sorts of people are using Lunch, and from where.
+ to give me an idea of what sorts of people are using Lunch, and from
+ where.
{' '}
-
+
You can read more about their own policies
-, which are pretty standard (they store a few cookies as well), but it’s worth pointing
- out that the tracking is anonymous — there’s no way they or I can tell exactly who you
- are.
+ , which are pretty standard (they store a few cookies as well), but it’s
+ worth pointing out that the tracking is anonymous — there’s no way
+ they or I can tell exactly who you are.
Cost
- Lunch is currently free. Unlimited users per team, and each user can create or be a part of
- up to three teams. I don’t plan on putting any limitations on what’s currently offered, but I
- might consider charging for future features, whatever those might be. Either way, I haven’t
- even set up a way for you to give me money, so I wouldn’t worry about it.
+ Lunch is currently free. Unlimited users per team, and each user can
+ create or be a part of up to three teams. I don’t plan on putting any
+ limitations on what’s currently offered, but I might consider charging
+ for future features, whatever those might be. Either way, I haven’t even
+ set up a way for you to give me money, so I wouldn’t worry about it.
Advertising
- That said, I’m not against advertisements, or sponsored list items, or something of the sort.
- If I do reach out to restaurants to advertise on Lunch, I’d display tasteful advertisements
- based on their proximity to your team. I wouldn’t give advertisers info like the specific
- names of teams, or the people on it, or anything “personally identifiable” like that. Again,
- this is all just potential stuff in the future, so it’s just a heads up for now.
+ That said, I’m not against advertisements, or sponsored list items, or
+ something of the sort. If I do reach out to restaurants to advertise on
+ Lunch, I’d display tasteful advertisements based on their proximity to
+ your team. I wouldn’t give advertisers info like the specific names of
+ teams, or the people on it, or anything “personally identifiable” like
+ that. Again, this is all just potential stuff in the future, so it’s
+ just a heads up for now.
Be excellent to each other
- Oh and finally, don’t be mean to your teammates. I don’t think there’s any need for global
- moderation on a service this limited, but like, don’t tag restaurants as “disgusting” or
- delete places you don’t like. Just don’t vote for them. Otherwise, your team owner’s totally
- free to kick you out.
+ Oh and finally, don’t be mean to your teammates. I don’t think there’s
+ any need for global moderation on a service this limited, but like,
+ don’t tag restaurants as “disgusting” or delete places you don’t like.
+ Just don’t vote for them. Otherwise, your team owner’s totally free to
+ kick you out.
Any other questions or things I forgot to mention? Drop me a line at
{' '}
jeffrey@labzero.com
-. I’d be happy to hear from
- you.
-
-
- I last updated this page on May 1, 2017.
+. I’d be
+ happy to hear from you.
+ I last updated this page on May 1, 2017.
);
diff --git a/src/routes/main/account/Account.js b/src/routes/main/account/Account.js
index b269a7a0e..145d37289 100644
--- a/src/routes/main/account/Account.js
+++ b/src/routes/main/account/Account.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Button from 'react-bootstrap/lib/Button';
import Col from 'react-bootstrap/lib/Col';
import ControlLabel from 'react-bootstrap/lib/ControlLabel';
@@ -15,7 +15,7 @@ import s from './Account.scss';
class Account extends Component {
static propTypes = {
updateCurrentUser: PropTypes.func.isRequired,
- user: PropTypes.object.isRequired
+ user: PropTypes.object.isRequired,
};
constructor(props) {
@@ -26,20 +26,23 @@ class Account extends Component {
this.state = {
name: user.name,
email: user.email,
- password: ''
+ password: '',
};
}
- handleChange = field => event => this.setState({ [field]: event.target.value });
+ handleChange = (field) => (event) => this.setState({ [field]: event.target.value });
handleSubmit = (event) => {
event.preventDefault();
- this.props.updateCurrentUser(this.state).then(() => {
- this.setState({
- password: ''
- });
- }).catch(() => {});
- }
+ this.props
+ .updateCurrentUser(this.state)
+ .then(() => {
+ this.setState({
+ password: '',
+ });
+ })
+ .catch(() => {});
+ };
render() {
const { name, email, password } = this.state;
@@ -90,7 +93,9 @@ class Account extends Component {
/>
- Leave this blank if you don’t want to set a new password.
+
+ Leave this blank if you don’t want to set a new password.
+
Submit
diff --git a/src/routes/main/invitation/create/Create.js b/src/routes/main/invitation/create/Create.js
index 41a16eba1..f65348faf 100644
--- a/src/routes/main/invitation/create/Create.js
+++ b/src/routes/main/invitation/create/Create.js
@@ -1,18 +1,18 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Grid from 'react-bootstrap/lib/Grid';
import s from './Create.scss';
class Create extends Component {
static propTypes = {
success: PropTypes.string,
- token: PropTypes.string
+ token: PropTypes.string,
};
static defaultProps = {
success: undefined,
- token: undefined
+ token: undefined,
};
render() {
@@ -25,17 +25,20 @@ class Create extends Component {
Confirmation sent
- Thanks for requesting an invitation!
- We’ve sent you an email —
- please follow the provided URL in the email to confirm your request.
- If it doesn’t show up, please check your spam folder.
+ Thanks for requesting an invitation! We’ve sent you an
+ email — please follow the provided URL in the email to
+ confirm your request. If it doesn’t show up, please check
+ your spam folder.
)}
{token && (
Invitation request confirmed
-
Thanks for confirming! Sit tight and you should be Lunching it up in no time.
+
+ Thanks for confirming! Sit tight and you should be Lunching it
+ up in no time.
+
)}
diff --git a/src/routes/main/invitation/new/New.js b/src/routes/main/invitation/new/New.js
index 395bba4c4..4dddbb04d 100644
--- a/src/routes/main/invitation/new/New.js
+++ b/src/routes/main/invitation/new/New.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Button from 'react-bootstrap/lib/Button';
import Col from 'react-bootstrap/lib/Col';
import ControlLabel from 'react-bootstrap/lib/ControlLabel';
@@ -12,11 +12,11 @@ import s from './New.scss';
class New extends Component {
static propTypes = {
- email: PropTypes.string
+ email: PropTypes.string,
};
static defaultProps = {
- email: ''
+ email: '',
};
componentDidMount() {
@@ -31,8 +31,8 @@ class New extends Component {
Request an invitation
- Enter your email address and we will send you a link
- to confirm your request.
+ Enter your email address and we will send you a link to confirm your
+ request.
-
- Name
-
+ Name
-
- URL
-
+ URL
@@ -101,15 +97,16 @@ class NewTeam extends Component {
- Letters, numbers, and dashes only. URL must start with a letter.
+
+ Letters, numbers, and dashes only. URL must start with a letter.
+
Address
- Pick a centerpoint for your team.
- It will ensure that nearby recommendations are shown when you search
- for restaurants.
- You can drag the map or enter your full address.
+ Pick a centerpoint for your team. It will ensure that nearby
+ recommendations are shown when you search for restaurants. You
+ can drag the map or enter your full address.
Instructions sent
- Password reset instructions have been sent to your email address.
+
+ Password reset instructions have been sent to your email
+ address.
+
)}
{success === 'reset' && (
Password reset
-Your password has been reset. Go ahead and
+ Your password has been reset. Go ahead and
log in
.
diff --git a/src/routes/main/password/edit/Edit.js b/src/routes/main/password/edit/Edit.js
index 5af7d1756..e34b4bc51 100644
--- a/src/routes/main/password/edit/Edit.js
+++ b/src/routes/main/password/edit/Edit.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Button from 'react-bootstrap/lib/Button';
import Col from 'react-bootstrap/lib/Col';
import ControlLabel from 'react-bootstrap/lib/ControlLabel';
@@ -13,7 +13,7 @@ import s from './Edit.scss';
class Edit extends Component {
static propTypes = {
- token: PropTypes.string.isRequired
+ token: PropTypes.string.isRequired,
};
componentDidMount() {
@@ -33,7 +33,9 @@ class Edit extends Component {
New password
{ this.passwordField = i; }}
+ inputRef={(i) => {
+ this.passwordField = i;
+ }}
minLength={PASSWORD_MIN_LENGTH}
name="password"
required
diff --git a/src/routes/main/password/new/New.js b/src/routes/main/password/new/New.js
index 0b370619f..dbe3f8436 100644
--- a/src/routes/main/password/new/New.js
+++ b/src/routes/main/password/new/New.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Button from 'react-bootstrap/lib/Button';
import Col from 'react-bootstrap/lib/Col';
import ControlLabel from 'react-bootstrap/lib/ControlLabel';
@@ -12,11 +12,11 @@ import s from './New.scss';
class New extends Component {
static propTypes = {
- email: PropTypes.string
+ email: PropTypes.string,
};
static defaultProps = {
- email: ''
+ email: '',
};
componentDidMount() {
@@ -31,8 +31,8 @@ class New extends Component {
Request password reset
- Enter your email address and we will send you a link
- to reset your password.
+ Enter your email address and we will send you a link to reset your
+ password.
@@ -41,7 +41,9 @@ class New extends Component {
Email
{ this.emailField = i; }}
+ inputRef={(i) => {
+ this.emailField = i;
+ }}
name="email"
required
type="email"
diff --git a/src/routes/main/teams/Teams.js b/src/routes/main/teams/Teams.js
index d6cab9177..b125af9cc 100644
--- a/src/routes/main/teams/Teams.js
+++ b/src/routes/main/teams/Teams.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Glyphicon from 'react-bootstrap/lib/Glyphicon';
import Grid from 'react-bootstrap/lib/Grid';
import Link from '../../../components/Link';
@@ -11,17 +11,17 @@ class Teams extends Component {
confirm: PropTypes.func.isRequired,
host: PropTypes.string.isRequired,
leaveTeam: PropTypes.func.isRequired,
- teams: PropTypes.array.isRequired
+ teams: PropTypes.array.isRequired,
};
- confirmLeave = team => () => {
+ confirmLeave = (team) => () => {
this.props.confirm({
actionLabel: 'Leave',
body: `Are you sure you want to leave this team?
You will need to be invited back by another member.`,
- handleSubmit: () => this.props.leaveTeam(team)
+ handleSubmit: () => this.props.leaveTeam(team),
});
- }
+ };
render() {
const { host, teams } = this.props;
@@ -33,7 +33,7 @@ You will need to be invited back by another member.`,
Visit one of your teams:
- {teams.map(team => (
+ {teams.map((team) => (
{team.name}
-
+
@@ -55,7 +60,9 @@ You will need to be invited back by another member.`,
)}
- Create a new team
+
+ Create a new team
+
diff --git a/src/routes/main/users/create/Create.js b/src/routes/main/users/create/Create.js
index 03152aaf0..41ca3261c 100644
--- a/src/routes/main/users/create/Create.js
+++ b/src/routes/main/users/create/Create.js
@@ -1,5 +1,5 @@
import React from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Grid from 'react-bootstrap/lib/Grid';
import s from './Create.scss';
diff --git a/src/routes/main/users/new/New.js b/src/routes/main/users/new/New.js
index ccf5482b1..ae983f83f 100644
--- a/src/routes/main/users/new/New.js
+++ b/src/routes/main/users/new/New.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Button from 'react-bootstrap/lib/Button';
import Col from 'react-bootstrap/lib/Col';
import ControlLabel from 'react-bootstrap/lib/ControlLabel';
@@ -12,11 +12,11 @@ import s from './New.scss';
class New extends Component {
static propTypes = {
- email: PropTypes.string
+ email: PropTypes.string,
};
static defaultProps = {
- email: ''
+ email: '',
};
componentDidMount() {
@@ -35,16 +35,15 @@ class New extends Component {
Name
-
+
Email
{ this.emailField = i; }}
+ inputRef={(i) => {
+ this.emailField = i;
+ }}
name="email"
required
type="email"
diff --git a/src/routes/main/welcome/Welcome.js b/src/routes/main/welcome/Welcome.js
index 42646e223..86e2568b3 100644
--- a/src/routes/main/welcome/Welcome.js
+++ b/src/routes/main/welcome/Welcome.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Button from 'react-bootstrap/lib/Button';
import Col from 'react-bootstrap/lib/Col';
import ControlLabel from 'react-bootstrap/lib/ControlLabel';
@@ -13,7 +13,7 @@ import s from './Welcome.scss';
class Welcome extends Component {
static propTypes = {
updateCurrentUser: PropTypes.func.isRequired,
- user: PropTypes.object.isRequired
+ user: PropTypes.object.isRequired,
};
constructor(props) {
@@ -26,12 +26,12 @@ class Welcome extends Component {
};
}
- handleChange = event => this.setState({ name: event.target.value });
+ handleChange = (event) => this.setState({ name: event.target.value });
handleSubmit = (event) => {
event.preventDefault();
this.props.updateCurrentUser(this.state);
- }
+ };
render() {
const { name } = this.state;
diff --git a/src/routes/not-found/NotFound.js b/src/routes/not-found/NotFound.js
index cef4a468f..8173e48c5 100644
--- a/src/routes/not-found/NotFound.js
+++ b/src/routes/not-found/NotFound.js
@@ -10,7 +10,7 @@ import PropTypes from 'prop-types';
import React from 'react';
import Grid from 'react-bootstrap/lib/Grid';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import s from './NotFound.scss';
class NotFound extends React.Component {
diff --git a/src/routes/team/home/Home.js b/src/routes/team/home/Home.js
index 6c4fa320c..d5517d55e 100644
--- a/src/routes/team/home/Home.js
+++ b/src/routes/team/home/Home.js
@@ -1,7 +1,7 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import FooterContainer from '../../../components/Footer/FooterContainer';
import NameFilterFormContainer from '../../../components/NameFilterForm/NameFilterFormContainer';
import PastDecisionsModalContainer from '../../../components/PastDecisionsModal/PastDecisionsModalContainer';
@@ -24,7 +24,7 @@ export class _Home extends Component {
invalidateUsers: PropTypes.func.isRequired,
messageReceived: PropTypes.func.isRequired,
pastDecisionsShown: PropTypes.bool.isRequired,
- wsPort: PropTypes.number.isRequired
+ wsPort: PropTypes.number.isRequired,
};
componentDidMount() {
@@ -37,19 +37,27 @@ export class _Home extends Component {
if (canUseDOM) {
let host = window.location.host;
- if (window.location.port && wsPort !== 0 && wsPort !== window.location.port) {
+ if (
+ window.location.port
+ && wsPort !== 0
+ && wsPort !== window.location.port
+ ) {
host = `${window.location.hostname}:${wsPort}`;
}
let protocol = 'ws:';
if (window.location.protocol === 'https:') {
protocol = 'wss:';
}
- this.socket = new window.RobustWebSocket(`${protocol}//${host}/api`, null, {
- shouldReconnect: (event, ws) => {
- if (event.code === 1008 || event.code === 1011) return undefined;
- return Math.min(1000 * ws.attempts, 5000);
- },
- });
+ this.socket = new window.RobustWebSocket(
+ `${protocol}//${host}/api`,
+ null,
+ {
+ shouldReconnect: (event, ws) => {
+ if (event.code === 1008 || event.code === 1011) return undefined;
+ return Math.min(1000 * ws.attempts, 5000);
+ },
+ }
+ );
this.socket.onmessage = messageReceived;
this.socket.onopen = this.fetchAllData;
@@ -78,7 +86,7 @@ export class _Home extends Component {
this.props.fetchRestaurants();
this.props.fetchTags();
this.props.fetchUsers();
- }
+ };
render() {
const { pastDecisionsShown, user } = this.props;
diff --git a/src/routes/team/home/Home.test.js b/src/routes/team/home/Home.test.js
index 861f094cc..409b23bb2 100644
--- a/src/routes/team/home/Home.test.js
+++ b/src/routes/team/home/Home.test.js
@@ -40,7 +40,7 @@ describe('Home', () => {
messageReceived: () => {},
pastDecisionsShown: false,
user: {},
- wsPort: 3000
+ wsPort: 3000,
};
});
diff --git a/src/routes/team/tags/Tags.js b/src/routes/team/tags/Tags.js
index 8d2fea004..ac1892a0c 100644
--- a/src/routes/team/tags/Tags.js
+++ b/src/routes/team/tags/Tags.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Grid from 'react-bootstrap/lib/Grid';
import Loading from '../../../components/Loading';
import TagManagerContainer from '../../../components/TagManager/TagManagerContainer';
@@ -29,7 +29,7 @@ class Tags extends Component {
Tags.propTypes = {
fetchTagsIfNeeded: PropTypes.func.isRequired,
- tagListReady: PropTypes.bool.isRequired
+ tagListReady: PropTypes.bool.isRequired,
};
export default withStyles(s)(Tags);
diff --git a/src/routes/team/team/Team.js b/src/routes/team/team/Team.js
index c6f2bdeda..214e8c185 100644
--- a/src/routes/team/team/Team.js
+++ b/src/routes/team/team/Team.js
@@ -9,8 +9,7 @@ import PropTypes from 'prop-types';
*/
import React from 'react';
-import { intlShape } from 'react-intl';
-import withStyles from 'isomorphic-style-loader/lib/withStyles';
+import withStyles from 'isomorphic-style-loader/withStyles';
import Button from 'react-bootstrap/lib/Button';
import ButtonToolbar from 'react-bootstrap/lib/ButtonToolbar';
import Glyphicon from 'react-bootstrap/lib/Glyphicon';
@@ -41,42 +40,45 @@ class Team extends React.Component {
hasGuestRole: PropTypes.bool.isRequired,
hasMemberRole: PropTypes.bool.isRequired,
hasOwnerRole: PropTypes.bool.isRequired,
- intl: intlShape.isRequired,
+ intl: PropTypes.shape().isRequired,
removeUserFromTeam: PropTypes.func.isRequired,
userListReady: PropTypes.bool.isRequired,
users: PropTypes.array.isRequired,
- team: PropTypes.object.isRequired
+ team: PropTypes.object.isRequired,
};
componentDidMount() {
this.props.fetchUsersIfNeeded();
}
- handleRoleChange = user => event => {
+ handleRoleChange = (user) => (event) => {
const { currentUser, team } = this.props;
const newRole = event.target.value;
const changeRole = () => this.props.changeUserRole(user.id, newRole);
- if (event.target.value === 'member' && getRole(currentUser, team).type === 'member') {
+ if (
+ event.target.value === 'member'
+ && getRole(currentUser, team).type === 'member'
+ ) {
this.props.confirm({
actionLabel: 'Promote',
body: 'Are you sure you want to promote this user to Member status? You will not be able to demote them later.',
- handleSubmit: changeRole
+ handleSubmit: changeRole,
});
} else if (currentUser.id === user.id && !currentUser.superuser) {
this.props.confirm({
actionLabel: 'Demote',
body: 'Are you sure you want to demote yourself? You will not be able to undo this by yourself.',
- handleSubmit: changeRole
+ handleSubmit: changeRole,
});
} else {
changeRole();
}
};
- handleDeleteUserClicked = id => () => {
+ handleDeleteUserClicked = (id) => () => {
// eslint-disable-next-line no-restricted-globals, no-alert
if (confirm('Are you sure you want to remove this user from this team?')) {
this.props.removeUserFromTeam(id);
@@ -91,23 +93,22 @@ class Team extends React.Component {
hasOwnerRole,
intl: { formatMessage: f },
team,
- users
+ users,
} = this.props;
if (canChangeUser(currentUser, user, team, users)) {
return (
-
+
{hasGuestRole && {f(gm('guestRole'))} }
- {hasMemberRole && {f(gm('memberRole'))} }
+ {hasMemberRole && (
+ {f(gm('memberRole'))}
+ )}
{hasOwnerRole && {f(gm('ownerRole'))} }
);
}
return f(gm(`${user.type}Role`));
- }
+ };
renderUsers = () => {
const {
@@ -116,7 +117,7 @@ class Team extends React.Component {
hasOwnerRole,
intl: { formatMessage: f },
team,
- users
+ users,
} = this.props;
return (
@@ -131,23 +132,23 @@ class Team extends React.Component {
- {users.map(user => (
+ {users.map((user) => (
{user.name ? user.name : f(gm('noUserName'))}
{hasOwnerRole && {user.email} }
-
- {this.roleOptions(user)}
-
+ {this.roleOptions(user)}
- {
- currentUser.id !== user.id
- && canChangeUser(currentUser, user, team, users)
- && (
-
+ {currentUser.id !== user.id
+ && canChangeUser(currentUser, user, team, users) && (
+
- )
- }
+ )}
))}
@@ -156,7 +157,7 @@ class Team extends React.Component {
{hasMemberRole && }
);
- }
+ };
render() {
const {
@@ -166,7 +167,7 @@ class Team extends React.Component {
deleteTeamShown,
hasOwnerRole,
team,
- userListReady
+ userListReady,
} = this.props;
if (!userListReady) {
@@ -190,14 +191,20 @@ class Team extends React.Component {
Messy Business
- Change team URL
+
+ Change team URL
+
- Delete team
+
+ Delete team
+
- ) : this.renderUsers()}
+ ) : (
+ this.renderUsers()
+ )}
{changeTeamURLShown && }
{deleteTeamShown && }
diff --git a/src/server.js b/src/server.js
index a7d794450..d92715939 100644
--- a/src/server.js
+++ b/src/server.js
@@ -72,7 +72,7 @@ fs.existsSync(logDirectory) || fs.mkdirSync(logDirectory);
// create a rotating write stream
const accessLogStream = rfs('access.log', {
interval: '1d', // rotate daily
- path: logDirectory
+ path: logDirectory,
});
const app = express();
@@ -116,10 +116,12 @@ app.get('/health', (req, res) => {
});
if (process.env.NODE_ENV === 'production') {
- app.use(enforce.HTTPS({
- trustProtoHeader: true,
- trustXForwardedHostHeader: true
- }));
+ app.use(
+ enforce.HTTPS({
+ trustProtoHeader: true,
+ trustXForwardedHostHeader: true,
+ })
+ );
app.set('trust proxy', true);
}
@@ -128,14 +130,16 @@ app.use(express.static(path.resolve(__dirname, 'public')));
app.use(cookieParser());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
-app.use(methodOverride((req) => {
- if (req.body && typeof req.body === 'object' && '_method' in req.body) {
- const method = req.body._method; // eslint-disable-line no-underscore-dangle
- delete req.body._method; // eslint-disable-line no-underscore-dangle, no-param-reassign
- return method;
- }
- return undefined;
-}));
+app.use(
+ methodOverride((req) => {
+ if (req.body && typeof req.body === 'object' && '_method' in req.body) {
+ const method = req.body._method; // eslint-disable-line no-underscore-dangle
+ delete req.body._method; // eslint-disable-line no-underscore-dangle, no-param-reassign
+ return method;
+ }
+ return undefined;
+ })
+);
//
// Redirect old labzero.com host
@@ -168,19 +172,21 @@ if (__DEV__) {
}
const SequelizeStore = connectSessionSequelize(session.Store);
-app.use(session({
- cookie: {
- domain: config.domain,
- secure: process.env.NODE_ENV === 'production'
- },
- saveUninitialized: false,
- secret: config.auth.session.secret,
- store: new SequelizeStore({
- db: sequelize
- }),
- resave: false,
- proxy: true
-}));
+app.use(
+ session({
+ cookie: {
+ domain: config.domain,
+ secure: process.env.NODE_ENV === 'production',
+ },
+ saveUninitialized: false,
+ secret: config.auth.session.secret,
+ store: new SequelizeStore({
+ db: sequelize,
+ }),
+ resave: false,
+ proxy: true,
+ })
+);
app.use(flash());
@@ -191,8 +197,8 @@ app.use(
expressJwt({
secret: config.auth.jwt.secret,
credentialsRequired: false,
- getToken: req => req.cookies.id_token,
- }),
+ getToken: (req) => req.cookies.id_token,
+ })
);
// Error handler for express-jwt
app.use((err, req, res, next) => {
@@ -212,23 +218,27 @@ app.use((err, req, res, next) => {
app.use(passport.initialize());
app.use((req, res, next) => {
- const subdomainMatch = req.hostname.match(`^(.*)${config.domain.replace(/\./g, '\\.')}`);
+ const subdomainMatch = req.hostname.match(
+ `^(.*)${config.domain.replace(/\./g, '\\.')}`
+ );
if (subdomainMatch && subdomainMatch[1]) {
// eslint-disable-next-line no-param-reassign
req.subdomain = subdomainMatch[1];
}
if (typeof req.user === 'number' || typeof req.user === 'string') {
- User.getSessionUser(req.user).then(user => {
- if (user) {
- // eslint-disable-next-line no-param-reassign
- req.user = user;
- } else {
- // eslint-disable-next-line no-param-reassign
- delete req.user;
- }
- next();
- }).catch(err => next(err));
+ User.getSessionUser(req.user)
+ .then((user) => {
+ if (user) {
+ // eslint-disable-next-line no-param-reassign
+ req.user = user;
+ } else {
+ // eslint-disable-next-line no-param-reassign
+ delete req.user;
+ }
+ next();
+ })
+ .catch((err) => next(err));
} else {
next();
}
@@ -252,7 +262,7 @@ const wsInstance = expressWs(app, wsServer);
export const wss = wsInstance.getWss();
wss.broadcast = (teamId, data) => {
- wss.clients.forEach(client => {
+ wss.clients.forEach((client) => {
if (client.teamId === teamId) {
client.send(JSON.stringify(data));
}
@@ -281,11 +291,13 @@ app.use(async (req, res, next) => {
// Register API middleware
// -----------------------------------------------------------------------------
if (__DEV__) {
- app.use(cors({
- credentials: true,
- optionsSuccessStatus: 200, // some legacy browsers (IE11, various SmartTVs) choke on 204
- origin: true,
- }));
+ app.use(
+ cors({
+ credentials: true,
+ optionsSuccessStatus: 200, // some legacy browsers (IE11, various SmartTVs) choke on 204
+ origin: true,
+ })
+ );
}
app.use('/api', api());
@@ -295,7 +307,7 @@ app.use('/api', api());
const render = async (req, res, next) => {
try {
const stateData = {
- host: config.bsHost
+ host: config.bsHost,
};
if (req.user) {
stateData.user = req.user;
@@ -307,11 +319,11 @@ const render = async (req, res, next) => {
const flashKeys = Object.keys(flashes);
if (flashKeys.length) {
stateData.flashes = [];
- flashKeys.forEach(k => {
- flashes[k].forEach(f => {
+ flashKeys.forEach((k) => {
+ flashes[k].forEach((f) => {
stateData.flashes.push({
message: f,
- type: k
+ type: k,
});
});
});
@@ -322,7 +334,7 @@ const render = async (req, res, next) => {
// https://github.com/kriasoft/isomorphic-style-loader
const insertCss = (...styles) => {
// eslint-disable-next-line no-underscore-dangle
- styles.forEach(style => css.add(style._getCss()));
+ styles.forEach((style) => css.add(style._getCss()));
};
// Universal HTTP client
@@ -374,22 +386,21 @@ const render = async (req, res, next) => {
apikey: process.env.GOOGLE_CLIENT_APIKEY || '',
title: pageTitle,
ogTitle: route.ogTitle || pageTitle,
- description: 'A simple lunch voting app for you and your team. Search nearby restaurants, add them to your list, vote for as many as you like, and decide on today’s pick!',
+ description:
+ 'A simple lunch voting app for you and your team. Search nearby restaurants, add them to your list, vote for as many as you like, and decide on today’s pick!',
body: '',
root: generateUrl(req, req.get('host')),
};
data.children = ReactDOM.renderToString(
-
- {route.component}
- ,
+ {route.component}
);
data.styles = [{ id: 'css', cssText: [...css].join('') }];
const scripts = new Set();
- const addChunk = chunk => {
+ const addChunk = (chunk) => {
if (chunks[chunk]) {
- chunks[chunk].forEach(asset => scripts.add(asset));
+ chunks[chunk].forEach((asset) => scripts.add(asset));
} else if (__DEV__) {
throw new Error(`Chunk with name '${chunk}' cannot be found`);
}
@@ -438,7 +449,7 @@ app.use((err, req, res, next) => {
styles={[{ id: 'css', cssText: errorPageStyle._getCss() }]} // eslint-disable-line no-underscore-dangle
>
{ReactDOM.renderToString( )}
-