diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 000000000..d992b0ffa
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,2 @@
+node_modules
+.git
\ No newline at end of file
diff --git a/.github/workflows/ci_fast.yaml b/.github/workflows/ci_fast.yaml
index e1d1948ea..8a635fa9f 100644
--- a/.github/workflows/ci_fast.yaml
+++ b/.github/workflows/ci_fast.yaml
@@ -35,3 +35,39 @@ jobs:
with:
name: website
path: ./public
+
+ - name: Configure AWS credentials
+ uses: aws-actions/configure-aws-credentials@v1
+ with:
+ aws-access-key-id: ${{ secrets.DELPHI_ECR_ACCESS_ID }}
+ aws-secret-access-key: ${{ secrets.DELPHI_ECR_ACCESS_KEY }}
+ aws-region: us-east-1
+
+ - name: Login to Amazon ECR
+ id: login-ecr
+ uses: aws-actions/amazon-ecr-login@v1
+
+ - name: Build, tag, and push image to Amazon ECR
+ env:
+ ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
+ ECR_REPOSITORY: ${{ github.event.repository.name }}
+ run: |
+ baseRef="${GITHUB_REF#*/}"
+ baseRef="${baseRef#*/}"
+ case "${baseRef}" in
+ main)
+ awsTag="latest"
+ ;;
+ *)
+ awsTag="${baseRef//\//_}" # replace `/` with `_` in branch name
+ ;;
+ esac
+ echo "using tag: --${awsTag}--"
+ docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$awsTag --file ./devops/precompiled/Dockerfile .
+ docker push $ECR_REGISTRY/$ECR_REPOSITORY:$awsTag
+
+ # trigger a webhook update
+ curl -H "Authorization: Bearer ${{ secrets.DELPHI_DEPLOY_WEBHOOK_TOKEN }}" \
+ -X POST ${{ secrets.DELPHI_DEPLOY_WEBHOOK_URL }} \
+ -H "Content-Type: application/x-www-form-urlencoded" \
+ -d "repository=$ECR_REGISTRY/$ECR_REPOSITORY&tag=$awsTag"
diff --git a/.prettierignore b/.prettierignore
index 80f9e07c5..74222a5af 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -24,7 +24,9 @@
*.woff2
*.R
*.xml
+.dockerignore
*.Rmd
*.md
*.jpeg
-*.ico
\ No newline at end of file
+*.ico
+/themes/delphi/layouts/partials/webp-image.html
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index 9c9d16d61..000000000
--- a/Dockerfile
+++ /dev/null
@@ -1,8 +0,0 @@
-FROM continuumio/miniconda
-
-ADD ./environment.yml .
-RUN conda env create -f environment.yml
-
-ADD ./dependencies.R .
-
-RUN conda run -n www-main Rscript ./dependencies.R
\ No newline at end of file
diff --git a/config.toml b/config.toml
index ddacf6f18..91cf26117 100644
--- a/config.toml
+++ b/config.toml
@@ -46,16 +46,21 @@ relativeURLs = false
name = "Surveys"
url = "/covidcast/surveys"
weight = 2
+[[menu.main]]
+ parent = "covidcast"
+ name = "Survey Results"
+ url = "/covidcast/survey-results"
+ weight = 3
[[menu.main]]
parent = "covidcast"
name = "Release Log"
url = "/covidcast/release-log"
- weight = 3
+ weight = 4
[[menu.main]]
parent = "covidcast"
name = "Terms Of Use"
url = "/covidcast/terms-of-use"
- weight = 4
+ weight = 5
[[menu.main]]
identifier = "flu"
name = "Flu and Other Diseases"
@@ -83,6 +88,6 @@ relativeURLs = false
[params]
description = "Developing the Theory and Practice of Epidemiological Forecasting"
- mission = "Develop the theory and practice of epidemiological forecasting, with a long-term vision of seeing this technology become as universally accepted and useful as weather forecasting is today."
+ mission = "Develop the theory and practice of epidemiological forecasting, with a long-term vision of making this technology as universally accepted and useful as weather forecasting is today."
apiUrl = "https://cmu-delphi.github.io/delphi-epidata"
twitter = "CmuDelphi"
diff --git a/content/_index.md b/content/_index.md
index 5f36b8ff8..3e741f837 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -4,19 +4,24 @@ description: Developing the Theory and Practice of Epidemiological Forecasting
layout: landing
carousel:
+ - pre: Our Tools
+ title: National COVID Survey Dashboard
+ ref: covidcast/survey-results
+ alt: Explore the Survey Results
+ image: covidcast_survey.jpg
- pre: Our Tools
title: Real-time Indicators of COVID-19 Activity
ref: covidcast
alt: Explore COVIDCast
- image: covidcast_withfill.png
+ image: covidcast_withfill.jpg
- pre: Our Blog Post
title: New and improved COVID Symptom Survey Tracks Testing and Mask-Wearing
ref: 2020-10-06-survey-wave-4
alt: Learn more
- image: landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.png
+ image: landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.jpg
- pre: Our Research and White Papers
title: "Pancasting: forecasting epidemics from provisional data"
link: https://delphi.cmu.edu/~lcbrooks/brooks2020pancasting.pdf
alt: View Paper
- image: landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.png
+ image: landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.jpg
---
diff --git a/content/about/publications/images/evaluation.jpg b/content/about/publications/images/evaluation.jpg
new file mode 100644
index 000000000..36ee42d10
Binary files /dev/null and b/content/about/publications/images/evaluation.jpg differ
diff --git a/content/about/publications/images/evaluation.png b/content/about/publications/images/evaluation.png
deleted file mode 100644
index 36e379d6c..000000000
Binary files a/content/about/publications/images/evaluation.png and /dev/null differ
diff --git a/content/about/publications/images/flexible_modeling.jpg b/content/about/publications/images/flexible_modeling.jpg
new file mode 100644
index 000000000..edadd5ccd
Binary files /dev/null and b/content/about/publications/images/flexible_modeling.jpg differ
diff --git a/content/about/publications/images/flexible_modeling.png b/content/about/publications/images/flexible_modeling.png
deleted file mode 100644
index 1d64f6c1b..000000000
Binary files a/content/about/publications/images/flexible_modeling.png and /dev/null differ
diff --git a/content/about/publications/images/human.jpg b/content/about/publications/images/human.jpg
new file mode 100644
index 000000000..021e74de8
Binary files /dev/null and b/content/about/publications/images/human.jpg differ
diff --git a/content/about/publications/images/human.png b/content/about/publications/images/human.png
deleted file mode 100644
index e20a8ee82..000000000
Binary files a/content/about/publications/images/human.png and /dev/null differ
diff --git a/content/about/publications/images/kalman_filter.jpg b/content/about/publications/images/kalman_filter.jpg
new file mode 100644
index 000000000..631d7c3a4
Binary files /dev/null and b/content/about/publications/images/kalman_filter.jpg differ
diff --git a/content/about/publications/images/kalman_filter.png b/content/about/publications/images/kalman_filter.png
deleted file mode 100644
index 6dcf22cfc..000000000
Binary files a/content/about/publications/images/kalman_filter.png and /dev/null differ
diff --git a/content/about/publications/images/modeling.jpg b/content/about/publications/images/modeling.jpg
new file mode 100644
index 000000000..cf16913c8
Binary files /dev/null and b/content/about/publications/images/modeling.jpg differ
diff --git a/content/about/publications/images/modeling.png b/content/about/publications/images/modeling.png
deleted file mode 100644
index b168df703..000000000
Binary files a/content/about/publications/images/modeling.png and /dev/null differ
diff --git a/content/about/publications/images/nonmechanistic_forecasts.jpg b/content/about/publications/images/nonmechanistic_forecasts.jpg
new file mode 100644
index 000000000..905efe508
Binary files /dev/null and b/content/about/publications/images/nonmechanistic_forecasts.jpg differ
diff --git a/content/about/publications/images/nonmechanistic_forecasts.png b/content/about/publications/images/nonmechanistic_forecasts.png
deleted file mode 100644
index 8a054e0d9..000000000
Binary files a/content/about/publications/images/nonmechanistic_forecasts.png and /dev/null differ
diff --git a/content/about/publications/images/pancasting.jpg b/content/about/publications/images/pancasting.jpg
new file mode 100644
index 000000000..5b4a4b968
Binary files /dev/null and b/content/about/publications/images/pancasting.jpg differ
diff --git a/content/about/publications/images/pancasting.png b/content/about/publications/images/pancasting.png
deleted file mode 100644
index 2a4af5481..000000000
Binary files a/content/about/publications/images/pancasting.png and /dev/null differ
diff --git a/content/about/publications/images/predicting.jpg b/content/about/publications/images/predicting.jpg
new file mode 100644
index 000000000..ac3a09f4c
Binary files /dev/null and b/content/about/publications/images/predicting.jpg differ
diff --git a/content/about/publications/images/predicting.png b/content/about/publications/images/predicting.png
deleted file mode 100644
index c25b5edd0..000000000
Binary files a/content/about/publications/images/predicting.png and /dev/null differ
diff --git a/content/about/publications/index.md b/content/about/publications/index.md
index 2ba78888b..d3a133b5a 100644
--- a/content/about/publications/index.md
+++ b/content/about/publications/index.md
@@ -2,49 +2,49 @@
title: Research and White Papers
papers:
- title: "Pancasting: forecasting epidemics from provisional data"
- image: pancasting.png
+ image: pancasting.jpg
authors: Brooks
link: https://delphi.cmu.edu/~lcbrooks/brooks2020pancasting.pdf
journal: PhD thesis
year: 2020
- title: "Kalman filter, sensor fusion, and constrained regression: equivalences and insights"
- image: kalman_filter.png
+ image: kalman_filter.jpg
authors: Jahja, Farrow, Rosenfeld, Tibshirani
link: https://papers.nips.cc/paper/9475-kalman-filter-sensor-fusion-and-constrained-regression-equivalences-and-insights
journal: Neural Information Processing Systems
year: 2019
- title: "Nonmechanistic forecasts of seasonal influenza with iterative one-week-ahead distributions"
- image: nonmechanistic_forecasts.png
+ image: nonmechanistic_forecasts.jpg
authors: Brooks, Farrow, Hyun, Tibshirani, Rosenfeld
link: https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1006134
journal: PLOS Computational Biology
year: 2018
- title: "A human judgment approach to epidemiological forecasting"
- image: human.png
+ image: human.jpg
authors: Farrow, Brooks, Hyun, Tibshirani, Burke, Rosenfeld
link: https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005248
journal: PLOS Computational Biology
year: 2017
- title: "Modeling the past, present, and future of influenza"
- image: modeling.png
+ image: modeling.jpg
authors: Farrow
link: https://delphi.cmu.edu/~dfarrow/thesis.pdf
journal: PhD thesis
year: 2016
- title: "Flexible modeling of epidemics with an empirical Bayes framework"
- image: flexible_modeling.png
+ image: flexible_modeling.jpg
authors: Brooks, Farrow, Hyun, Tibshirani, Rosenfeld
link: https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1004382
journal: PLOS Computational Biology
year: 2015
- title: "Predicting the predictable"
- image: predicting.png
+ image: predicting.jpg
authors: Rosenfeld
link: https://delphi.cmu.edu/files/PredictingThePredictable_13-04-03.pdf
journal: presentation
year: 2013
- title: "A proposal for standardized evaluation of epidemiological models"
- image: evaluation.png
+ image: evaluation.jpg
authors: Rosenfeld, Grefenstette, Burke
link: http://www.cs.cmu.edu/~roni/standardized-evaluation-of-epi-models-rev-09nov2012.pdf
journal: White paper
diff --git a/content/about/team/images/lee-kenneth.png b/content/about/team/images/lee-kenneth.png
new file mode 100644
index 000000000..7af93c171
Binary files /dev/null and b/content/about/team/images/lee-kenneth.png differ
diff --git a/content/about/team/index.md b/content/about/team/index.md
index ca73255f1..c6cbc99e2 100644
--- a/content/about/team/index.md
+++ b/content/about/team/index.md
@@ -235,8 +235,8 @@ team:
note: Intern, Summer 2020
- firstName: Kenneth
lastName: Lee
- image: profile-placeholder.png
- affiliation:
+ image: lee-kenneth.png
+ affiliation: UC Davis
team:
- contributors
- firstName: Natalia
diff --git a/content/blog/2015-07-23-template-post.Rmd b/content/blog/2015-07-23-template-post.Rmd
index ba4887db3..c44aa5852 100644
--- a/content/blog/2015-07-23-template-post.Rmd
+++ b/content/blog/2015-07-23-template-post.Rmd
@@ -9,8 +9,8 @@ tags:
draft: true # remove this line in new blog posts
authors: # list of author keys, see /data/authors.yaml
- frida
-heroImage: /blog/images/blog-lg-img_hello-world.png
-heroImageThumb: /blog/images/blog-thumb-img_hello-world.png
+heroImage: /blog/images/blog-lg-img_hello-world.jpg
+heroImageThumb: /blog/images/blog-thumb-img_hello-world.jpg
summary: |
Blog summary, the first 150 characters are used for the blog list
acknowledgements: |
diff --git a/content/blog/2015-07-23-template-post.html b/content/blog/2015-07-23-template-post.html
index 03936f4cc..19cc04435 100644
--- a/content/blog/2015-07-23-template-post.html
+++ b/content/blog/2015-07-23-template-post.html
@@ -9,8 +9,8 @@
draft: true # remove this line in new blog posts
authors: # list of author keys, see /data/authors.yaml
- frida
-heroImage: /blog/images/blog-lg-img_hello-world.png
-heroImageThumb: /blog/images/blog-thumb-img_hello-world.png
+heroImage: /blog/images/blog-lg-img_hello-world.jpg
+heroImageThumb: /blog/images/blog-thumb-img_hello-world.jpg
summary: |
Blog summary, the first 150 characters are used for the blog list
acknowledgements: |
@@ -49,21 +49,21 @@
see http://rmarkdown.rstudio.com.
You can embed an R code chunk like this:
summary(cars)
-## speed dist
-## Min. : 4.0 Min. : 2.00
-## 1st Qu.:12.0 1st Qu.: 26.00
-## Median :15.0 Median : 36.00
-## Mean :15.4 Mean : 42.98
-## 3rd Qu.:19.0 3rd Qu.: 56.00
+## speed dist
+## Min. : 4.0 Min. : 2.00
+## 1st Qu.:12.0 1st Qu.: 26.00
+## Median :15.0 Median : 36.00
+## Mean :15.4 Mean : 42.98
+## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00
fit <- lm(dist ~ speed, data = cars)
fit
-##
+##
## Call:
## lm(formula = dist ~ speed, data = cars)
-##
+##
## Coefficients:
-## (Intercept) speed
+## (Intercept) speed
## -17.579 3.932
Including Plots
diff --git a/content/blog/2020-08-10-hello-world.Rmd b/content/blog/2020-08-10-hello-world.Rmd
index 31d12e6b7..572115a12 100644
--- a/content/blog/2020-08-10-hello-world.Rmd
+++ b/content/blog/2020-08-10-hello-world.Rmd
@@ -7,8 +7,8 @@ tags:
authors:
- roni
- ryan
-heroImage: /blog/images/blog-lg-img_hello-world.png
-heroImageThumb: /blog/images/blog-thumb-img_hello-world.png
+heroImage: /blog/images/blog-lg-img_hello-world.jpg
+heroImageThumb: /blog/images/blog-thumb-img_hello-world.jpg
summary: |
Hello from the Delphi research group at Carnegie Mellon University!
We're a group of faculty, students, and staff, based primarily out of CMU
diff --git a/content/blog/2020-08-10-hello-world.html b/content/blog/2020-08-10-hello-world.html
index bca6020a8..f683c0b12 100644
--- a/content/blog/2020-08-10-hello-world.html
+++ b/content/blog/2020-08-10-hello-world.html
@@ -7,18 +7,18 @@
authors:
- roni
- ryan
-heroImage: /blog/images/blog-lg-img_hello-world.png
-heroImageThumb: /blog/images/blog-thumb-img_hello-world.png
+heroImage: /blog/images/blog-lg-img_hello-world.jpg
+heroImageThumb: /blog/images/blog-thumb-img_hello-world.jpg
summary: |
Hello from the Delphi research group at Carnegie Mellon University!
We're a group of faculty, students, and staff, based primarily out of CMU
together with strong collaborators from other universities and industry.
- Our group was founded in 2012 to advance the theory and practice of epidemic
- forecasting. Since March 2020, we have refocused efforts towards helping combat
+ Our group was founded in 2012 to advance the theory and practice of epidemic
+ forecasting. Since March 2020, we have refocused efforts towards helping combat
the COVID-19 pandemic, by supporting informed decision-making at federal, state,
and local levels of government and in the healthcare sector. Until now, we've
- been pretty “heads down” with our work, and slow to communicate what we've been
- up to. But at last ... Delphi finally has a blog! This first post serves as an
+ been pretty “heads down” with our work, and slow to communicate what we've been
+ up to. But at last ... Delphi finally has a blog! This first post serves as an
introduction of sorts. Future posts will dive deeper into our various projects.
output:
blogdown::html_page:
diff --git a/content/blog/2020-08-26-fb-survey.Rmd b/content/blog/2020-08-26-fb-survey.Rmd
index 01082460b..cf7ca4e82 100644
--- a/content/blog/2020-08-26-fb-survey.Rmd
+++ b/content/blog/2020-08-26-fb-survey.Rmd
@@ -9,8 +9,8 @@ tags:
authors:
- alex
- ryan
-heroImage: /blog/images/blog-lg-img_facebook-survey-post.png
-heroImageThumb: /blog/images/blog-thumb-img_facebook-survey-post.png
+heroImage: /blog/images/blog-lg-img_facebook-survey-post.jpg
+heroImageThumb: /blog/images/blog-thumb-img_facebook-survey-post.jpg
summary: |
Since April 2020, in collaboration with Facebook,
partner universities, and public health officials,
diff --git a/content/blog/2020-08-26-fb-survey.html b/content/blog/2020-08-26-fb-survey.html
index 3138a7e7a..cd2bdc214 100644
--- a/content/blog/2020-08-26-fb-survey.html
+++ b/content/blog/2020-08-26-fb-survey.html
@@ -9,8 +9,8 @@
authors:
- alex
- ryan
-heroImage: /blog/images/blog-lg-img_facebook-survey-post.png
-heroImageThumb: /blog/images/blog-thumb-img_facebook-survey-post.png
+heroImage: /blog/images/blog-lg-img_facebook-survey-post.jpg
+heroImageThumb: /blog/images/blog-thumb-img_facebook-survey-post.jpg
summary: |
Since April 2020, in collaboration with Facebook,
partner universities, and public health officials,
@@ -36,7 +36,7 @@
survey data. The COVIDcast API, which serves these estimates and is updated
daily, is a much larger effort run by the Delphi group, and our entire
engineering team is owed a lot of credit here. Ryan came up with the
- idea of running the surveys, and worked with Facebook to make this a reality.
+ idea of running the surveys, and worked with Facebook to make this a reality.
On the Facebook side, Curtiss Cobb and Jonathan McKay played big roles. The
University of Maryland team, including Adrianne Bradford and Samantha Chiu and
led by Frauke Kreuter, made many contributions to the survey design.
diff --git a/content/blog/2020-08-28-api.Rmd b/content/blog/2020-08-28-api.Rmd
index 4d8bc32f0..926f08767 100644
--- a/content/blog/2020-08-28-api.Rmd
+++ b/content/blog/2020-08-28-api.Rmd
@@ -10,8 +10,8 @@ tags:
authors:
- kathryn
- alex
-heroImage: /blog/images/blog-lg-img_Accessing Open COVID-19.png
-heroImageThumb: /blog/images/blog-thumb-img_Accessing Open COVID-19.png
+heroImage: /blog/images/blog-lg-img_Accessing Open COVID-19.jpg
+heroImageThumb: /blog/images/blog-thumb-img_Accessing Open COVID-19.jpg
summary: |
One of our primary initiatives at the Delphi COVIDcast project
has been to curate a diverse set of COVID-related data streams,
diff --git a/content/blog/2020-08-28-api.html b/content/blog/2020-08-28-api.html
index 8f3c6d8a4..8fa1a3ee2 100644
--- a/content/blog/2020-08-28-api.html
+++ b/content/blog/2020-08-28-api.html
@@ -10,8 +10,8 @@
authors:
- kathryn
- alex
-heroImage: /blog/images/blog-lg-img_Accessing Open COVID-19.png
-heroImageThumb: /blog/images/blog-thumb-img_Accessing Open COVID-19.png
+heroImage: /blog/images/blog-lg-img_Accessing Open COVID-19.jpg
+heroImageThumb: /blog/images/blog-thumb-img_Accessing Open COVID-19.jpg
summary: |
One of our primary initiatives at the Delphi COVIDcast project
has been to curate a diverse set of COVID-related data streams,
diff --git a/content/blog/2020-09-18-google-survey.Rmd b/content/blog/2020-09-18-google-survey.Rmd
index 86b22e618..ea565b0ca 100644
--- a/content/blog/2020-09-18-google-survey.Rmd
+++ b/content/blog/2020-09-18-google-survey.Rmd
@@ -8,8 +8,8 @@ tags:
- R
authors:
- ryan
-heroImage: /blog/images/blog-lg-img_google-survey-post.png
-heroImageThumb: /blog/images/blog-thumb-img_google-survey-post.png
+heroImage: /blog/images/blog-lg-img_google-survey-post.jpg
+heroImageThumb: /blog/images/blog-thumb-img_google-survey-post.jpg
summary: |
Since April 2020, in addition to our massive daily survey advertised on
Facebook, we've been running (even-more-massive) surveys through Google to
diff --git a/content/blog/2020-09-18-google-survey.html b/content/blog/2020-09-18-google-survey.html
index 83520de30..a58fca1bc 100644
--- a/content/blog/2020-09-18-google-survey.html
+++ b/content/blog/2020-09-18-google-survey.html
@@ -8,30 +8,30 @@
- R
authors:
- ryan
-heroImage: /blog/images/blog-lg-img_google-survey-post.png
-heroImageThumb: /blog/images/blog-thumb-img_google-survey-post.png
+heroImage: /blog/images/blog-lg-img_google-survey-post.jpg
+heroImageThumb: /blog/images/blog-thumb-img_google-survey-post.jpg
summary: |
- Since April 2020, in addition to our massive daily survey advertised on
- Facebook, we've been running (even-more-massive) surveys through Google to
- track the spread of COVID-19 in the United States.
- At its peak, our Google survey was taken by over 1.2 million people in a single
- day, and over its first month in operation, averaged over 600,000 daily
- respondents. In mid-May, we paused daily dissemination of this survey in order
+ Since April 2020, in addition to our massive daily survey advertised on
+ Facebook, we've been running (even-more-massive) surveys through Google to
+ track the spread of COVID-19 in the United States.
+ At its peak, our Google survey was taken by over 1.2 million people in a single
+ day, and over its first month in operation, averaged over 600,000 daily
+ respondents. In mid-May, we paused daily dissemination of this survey in order
to focus on our (longer, more complex) survey through Facebook,
- but we plan to bring back the Google survey this fall.
- This short post covers some key differences between our Google and Facebook
+ but we plan to bring back the Google survey this fall.
+ This short post covers some key differences between our Google and Facebook
surveys, explains the backstory behind the "CLI-in-community" question
- as it arose through our collaboration with Google,
+ as it arose through our collaboration with Google,
and shares some of our thinking about next steps for the Google survey.
acknowledgements: |
- Ryan Tibshirani wrote the initial code for producing
- estimates from the aggregated survey data. Sangwon Hyun, Natalia Lombardi de
+ Ryan Tibshirani wrote the initial code for producing
+ estimates from the aggregated survey data. Sangwon Hyun, Natalia Lombardi de
Oliveira, and Lester Mackey greatly extended and improved this codebase, and
- they developed, along with Ryan, the underlying statistical methodology. Ryan
- came up with the idea of running the surveys, and worked with Google to make
- this a reality. On the Google side, Brett Slatkin and Hal Varian have been key
- collaborators; Brett wrote the code to get daily survey data over to Delphi's
- estimation pipeline; and both contributed numerous important ideas at various
+ they developed, along with Ryan, the underlying statistical methodology. Ryan
+ came up with the idea of running the surveys, and worked with Google to make
+ this a reality. On the Google side, Brett Slatkin and Hal Varian have been key
+ collaborators; Brett wrote the code to get daily survey data over to Delphi's
+ estimation pipeline; and both contributed numerous important ideas at various
stages of the project.
output:
html_document:
diff --git a/content/blog/2020-09-21-forecast-demo.Rmd b/content/blog/2020-09-21-forecast-demo.Rmd
index e360aa9e3..d10b13a81 100644
--- a/content/blog/2020-09-21-forecast-demo.Rmd
+++ b/content/blog/2020-09-21-forecast-demo.Rmd
@@ -9,8 +9,8 @@ tags:
- R
authors:
- ryan
-heroImage: /blog/images/blog-Lg-img_can symptoms surveys improve covid-19.png
-heroImageThumb: /blog/images/blog-thumbnail_can symptoms surveys improve covid-19.png
+heroImage: /blog/images/blog-Lg-img_can symptoms surveys improve covid-19.jpg
+heroImageThumb: /blog/images/blog-thumbnail_can symptoms surveys improve covid-19.jpg
summary: |
Building on our previous two posts (on our COVID-19 symptom surveys through
Facebook and Google)
diff --git a/content/blog/2020-09-21-forecast-demo.html b/content/blog/2020-09-21-forecast-demo.html
index defcebb63..632638cf3 100644
--- a/content/blog/2020-09-21-forecast-demo.html
+++ b/content/blog/2020-09-21-forecast-demo.html
@@ -9,19 +9,19 @@
- R
authors:
- ryan
-heroImage: /blog/images/blog-Lg-img_can symptoms surveys improve covid-19.png
-heroImageThumb: /blog/images/blog-thumbnail_can symptoms surveys improve covid-19.png
+heroImage: /blog/images/blog-Lg-img_can symptoms surveys improve covid-19.jpg
+heroImageThumb: /blog/images/blog-thumbnail_can symptoms surveys improve covid-19.jpg
summary: |
Building on our previous two posts (on our COVID-19 symptom surveys through
Facebook and Google)
- this post offers a deeper dive into empirical analysis, examining whether the
- % CLI-in-community indicators from our two surveys can be used to improve
+ this post offers a deeper dive into empirical analysis, examining whether the
+ % CLI-in-community indicators from our two surveys can be used to improve
the accuracy of short-term forecasts of county-level COVID-19 case rates.
acknowledgements: |
Delphi's forecasting effort involves many people from our
- modeling team, from forecaster design, to implementation, to evaluation. The
+ modeling team, from forecaster design, to implementation, to evaluation. The
broader insights on forecasting shared in this post certainly cannot be
- attributable to Ryan's work alone, and are a reflection of the work carried out
+ attributable to Ryan's work alone, and are a reflection of the work carried out
by all these team members.
related:
- 2020-09-18-google-survey
@@ -217,17 +217,17 @@ Forecasting Code
as.Date(max(time_value)),
by = "day")) %>% ungroup()
df = full_join(df, df_all, by = c("geo_value", "time_value"))
-
+
# Group by geo value, sort rows by increasing time
- df = df %>% group_by(geo_value) %>% arrange(time_value)
-
+ df = df %>% group_by(geo_value) %>% arrange(time_value)
+
# Load over shifts, and add lag value or lead value
for (shift in shifts) {
fun = ifelse(shift < 0, lag, lead)
varname = sprintf("value%+d", shift)
df = mutate(df, !!varname := fun(value, n = abs(shift)))
}
-
+
# Ungroup and return
return(ungroup(df))
}
@@ -261,40 +261,40 @@ Forecasting Code
case_num = 200
geo_values = covidcast_signal("jhu-csse", "confirmed_cumulative_num",
"2020-05-14", "2020-05-14") %>%
- filter(value >= case_num) %>% pull(geo_value)
+ filter(value >= case_num) %>% pull(geo_value)
# Fetch county-level Google and Facebook % CLI-in-community signals, and JHU
# confirmed case incidence proportion
start_day = "2020-04-11"
end_day = "2020-09-01"
g = covidcast_signal("google-survey", "smoothed_cli") %>%
- filter(geo_value %in% geo_values) %>%
- select(geo_value, time_value, value)
-f = covidcast_signal("fb-survey", "smoothed_hh_cmnty_cli",
+ filter(geo_value %in% geo_values) %>%
+ select(geo_value, time_value, value)
+f = covidcast_signal("fb-survey", "smoothed_hh_cmnty_cli",
start_day, end_day) %>%
- filter(geo_value %in% geo_values) %>%
- select(geo_value, time_value, value)
+ filter(geo_value %in% geo_values) %>%
+ select(geo_value, time_value, value)
c = covidcast_signal("jhu-csse", "confirmed_7dav_incidence_prop",
start_day, end_day) %>%
- filter(geo_value %in% geo_values) %>%
+ filter(geo_value %in% geo_values) %>%
select(geo_value, time_value, value)
-# Find "complete" counties, present in all three data signals at all times
+# Find "complete" counties, present in all three data signals at all times
geo_values_complete = intersect(intersect(g$geo_value, f$geo_value),
c$geo_value)
-# Filter to complete counties, transform the signals, append 1-2 week lags to
+# Filter to complete counties, transform the signals, append 1-2 week lags to
# all three, and also 1-2 week leads to case rates
-lags = 1:2 * -7
+lags = 1:2 * -7
leads = 1:2 * 7
-g = g %>% filter(geo_value %in% geo_values_complete) %>%
- mutate(value = trans(value * rescale_g)) %>%
- append_shifts(shifts = lags)
-f = f %>% filter(geo_value %in% geo_values_complete) %>%
- mutate(value = trans(value * rescale_f)) %>%
- append_shifts(shifts = lags)
+g = g %>% filter(geo_value %in% geo_values_complete) %>%
+ mutate(value = trans(value * rescale_g)) %>%
+ append_shifts(shifts = lags)
+f = f %>% filter(geo_value %in% geo_values_complete) %>%
+ mutate(value = trans(value * rescale_f)) %>%
+ append_shifts(shifts = lags)
c = c %>% filter(geo_value %in% geo_values_complete) %>%
- mutate(value = trans(value * rescale_c)) %>%
+ mutate(value = trans(value * rescale_c)) %>%
append_shifts(shifts = c(lags, leads))
# Rename columns
@@ -310,47 +310,47 @@ Forecasting Code
# Use quantgen for LAD regression (this package supports quantile regression and
# more; you can find it on GitHub here: https://github.com/ryantibs/quantgen)
-library(quantgen)
+library(quantgen)
res_list = vector("list", length = length(leads))
# Loop over lead, forecast dates, build models and record errors (warning: this
# computation takes a while)
-for (i in 1:length(leads)) {
+for (i in 1:length(leads)) {
lead = leads[i]; if (verbose) cat("***", lead, "***\n")
-
+
# Create a data frame to store our forecast results. Code below populates its
- # rows in a way that breaks from typical dplyr operations, done for efficiency
- res_list[[i]] = z %>%
- filter(between(time_value, as.Date(start_day) - min(lags) + lead,
+ # rows in a way that breaks from typical dplyr operations, done for efficiency
+ res_list[[i]] = z %>%
+ filter(between(time_value, as.Date(start_day) - min(lags) + lead,
as.Date(end_day) - lead)) %>%
select(geo_value, time_value) %>%
- mutate(err0 = as.double(NA), err1 = as.double(NA), err2 = as.double(NA),
- err3 = as.double(NA), err4 = as.double(NA), lead = lead)
+ mutate(err0 = as.double(NA), err1 = as.double(NA), err2 = as.double(NA),
+ err3 = as.double(NA), err4 = as.double(NA), lead = lead)
valid_dates = unique(res_list[[i]]$time_value)
-
+
for (k in 1:length(valid_dates)) {
date = valid_dates[k]; if (verbose) cat(format(date), "... ")
-
+
# Filter down to training set and test set
z_tr = z %>% filter(between(time_value, date - lead - n, date - lead))
z_te = z %>% filter(time_value == date)
inds = which(res_list[[i]]$time_value == date)
-
+
# Create training and test responses
y_tr = z_tr %>% pull(paste0("case+", lead))
y_te = z_te %>% pull(paste0("case+", lead))
-
+
# Strawman model
if (verbose) cat("0")
y_hat = z_te %>% pull(case)
res_list[[i]][inds,]$err0 = abs(inv_trans(y_hat) - inv_trans(y_te))
-
+
# Cases only model
if (verbose) cat("1")
x_tr_case = z_tr %>% select(starts_with("case") & !contains("+"))
x_te_case = z_te %>% select(starts_with("case") & !contains("+"))
- x_tr = x_tr_case; x_te = x_te_case # For symmetry wrt what follows
+ x_tr = x_tr_case; x_te = x_te_case # For symmetry wrt what follows
ok = complete.cases(x_tr, y_tr)
if (sum(ok) > 0) {
obj = quantile_lasso(as.matrix(x_tr[ok,]), y_tr[ok], tau = 0.5,
@@ -358,7 +358,7 @@ Forecasting Code
y_hat = as.numeric(predict(obj, newx = as.matrix(x_te)))
res_list[[i]][inds,]$err1 = abs(inv_trans(y_hat) - inv_trans(y_te))
}
-
+
# Cases and Facebook model
if (verbose) cat("2")
x_tr_fb = z_tr %>% select(starts_with("fb"))
@@ -386,7 +386,7 @@ Forecasting Code
y_hat = as.numeric(predict(obj, newx = as.matrix(x_te)))
res_list[[i]][inds,]$err3 = abs(inv_trans(y_hat) - inv_trans(y_te))
}
-
+
# Cases, Facebook, and Google model
if (verbose) cat("4\n")
x_tr = cbind(x_tr_case, x_tr_fb, x_tr_goog)
@@ -401,7 +401,7 @@ Forecasting Code
}
}
-# Bind results over different leads into one big data frame, and save
+# Bind results over different leads into one big data frame, and save
res = do.call(rbind, res_list)
save(list = ls(), file = "demo.rda")
diff --git a/content/blog/2020-10-06-survey-wave-4.Rmd b/content/blog/2020-10-06-survey-wave-4.Rmd
index 4878617ec..ad8ea7d5f 100644
--- a/content/blog/2020-10-06-survey-wave-4.Rmd
+++ b/content/blog/2020-10-06-survey-wave-4.Rmd
@@ -12,8 +12,8 @@ summary: |
Today we release new public datasets and share maps revealing access to COVID testing, test results, and public use of masks.
authors:
- alex
-heroImage: /blog/images/blog-lg-img_New and Improved COVID.png
-heroImageThumb: /blog/images/blog-thumb-img_New and Improved COVID.png
+heroImage: /blog/images/blog-lg-img_New and Improved COVID.jpg
+heroImageThumb: /blog/images/blog-thumb-img_New and Improved COVID.jpg
acknowledgements: |
Many items in Wave 4 of our survey are based on work by
the team at the Joint Program in Survey Methodology at the University of
diff --git a/content/blog/2020-10-06-survey-wave-4.html b/content/blog/2020-10-06-survey-wave-4.html
index 9dd48f166..bea390eb1 100644
--- a/content/blog/2020-10-06-survey-wave-4.html
+++ b/content/blog/2020-10-06-survey-wave-4.html
@@ -7,13 +7,13 @@
- COVIDcast
- R
summary: |
- Beginning on September 8, 2020, we deployed a new version of our symptom survey.
- Facebook helps us recruit tens of thousands of respondents daily, and the new survey gives us unprecedented insights into the effects of COVID-19 across the United States.
+ Beginning on September 8, 2020, we deployed a new version of our symptom survey.
+ Facebook helps us recruit tens of thousands of respondents daily, and the new survey gives us unprecedented insights into the effects of COVID-19 across the United States.
Today we release new public datasets and share maps revealing access to COVID testing, test results, and public use of masks.
authors:
- alex
-heroImage: /blog/images/blog-lg-img_New and Improved COVID.png
-heroImageThumb: /blog/images/blog-thumb-img_New and Improved COVID.png
+heroImage: /blog/images/blog-lg-img_New and Improved COVID.jpg
+heroImageThumb: /blog/images/blog-thumb-img_New and Improved COVID.jpg
acknowledgements: |
Many items in Wave 4 of our survey are based on work by
the team at the Joint Program in Survey Methodology at the University of
diff --git a/content/blog/2020-10-14-dv-signal.Rmd b/content/blog/2020-10-14-dv-signal.Rmd
index 0abe6dd81..f5b4119ba 100644
--- a/content/blog/2020-10-14-dv-signal.Rmd
+++ b/content/blog/2020-10-14-dv-signal.Rmd
@@ -9,8 +9,8 @@ tags:
authors:
- aaron
- roni
-heroImage: /blog/images/blog-img_A Syndromic COVID-19.png
-heroImageThumb: /blog/images/blog-thumb-img_A Syndromic COVID-19.png
+heroImage: /blog/images/blog-img_A Syndromic COVID-19.jpg
+heroImageThumb: /blog/images/blog-thumb-img_A Syndromic COVID-19.jpg
related:
- 2020-09-18-google-survey
- 2020-08-26-fb-survey
diff --git a/content/blog/2020-10-14-dv-signal.html b/content/blog/2020-10-14-dv-signal.html
index 0eec260d0..deaebcd25 100644
--- a/content/blog/2020-10-14-dv-signal.html
+++ b/content/blog/2020-10-14-dv-signal.html
@@ -9,16 +9,16 @@
authors:
- aaron
- roni
-heroImage: /blog/images/blog-img_A Syndromic COVID-19.png
-heroImageThumb: /blog/images/blog-thumb-img_A Syndromic COVID-19.png
+heroImage: /blog/images/blog-img_A Syndromic COVID-19.jpg
+heroImageThumb: /blog/images/blog-thumb-img_A Syndromic COVID-19.jpg
related:
- 2020-09-18-google-survey
- 2020-08-26-fb-survey
summary: |
In previous posts, we discussed our massive ongoing symptom surveys that have reached over 12 million people in the U.S. since April 2020, in partnership with Facebook and Google. Another one of our major data initiatives is based on partnerships with healthcare systems, granting us access to various aggregate statistics from hospital records and insurance claims covering 10-15% of the United States population. From these data, we can extract informative indicators that can be early indicators of COVID activity. This post focuses on one indicator in particular, based on outpatient visits, and demonstrates both the challenges and promises associated with medical records data.
acknowledgements: |
- Maria Jahja contributed immensely to every stage of this project, from determining which ICD codes to use to the final implementation of the indicator.
- Aaron Rumack devised the weekday adjustment and analyzed the performance of the DV indicator.
+ Maria Jahja contributed immensely to every stage of this project, from determining which ICD codes to use to the final implementation of the indicator.
+ Aaron Rumack devised the weekday adjustment and analyzed the performance of the DV indicator.
Roni Rosenfeld worked closely with our health systems partners to get access to the data and provided domain knowledge to ensure that the data was useful. Both Roni and Ryan Tibshirani provided helpful suggestions and insights towards the methodology and analysis.
output:
diff --git a/content/covidcast/_index.md b/content/covidcast/_index.md
index d0e3e71b2..c3c2d7e58 100644
--- a/content/covidcast/_index.md
+++ b/content/covidcast/_index.md
@@ -1,4 +1,6 @@
---
-title: COVIDCast
+title: COVIDcast
layout: covidcast_app
+description: COVIDcast tracks and forecasts the spread of COVID-19. By Carnegie Mellon's Delphi Research Group.
+heroImage: /images/landing-page/hero-images/covidcast_withfill.jpg
---
diff --git a/content/covidcast/export.md b/content/covidcast/export.md
new file mode 100644
index 000000000..db607385d
--- /dev/null
+++ b/content/covidcast/export.md
@@ -0,0 +1,7 @@
+---
+title: COVIDCast Export Data
+linkTitle: Export Data
+description: Use COVIDcast data in your own analysis
+layout: covidcast_app
+heroImage: /images/landing-page/hero-images/covidcast_withfill.jpg
+---
diff --git a/content/covidcast/release-log/headless/v1.12.0.md b/content/covidcast/release-log/headless/v1.12.0.md
new file mode 100644
index 000000000..40ac350de
--- /dev/null
+++ b/content/covidcast/release-log/headless/v1.12.0.md
@@ -0,0 +1,27 @@
+---
+title: v1.12.0
+date: 2020-12-23
+---
+
+This release introduces the new National COVID Survey Dashboard showing aggregated survey results. In addition, the overall style of COVIDCast has been adapted to the new website.
+
+#### New Features
+
+- [#600](https://github.com/cmu-delphi/www-covidcast/pull/600) National COVID Survey Dashboard
+- [#688](https://github.com/cmu-delphi/www-covidcast/pull/688) (re: [#536](https://github.com/cmu-delphi/www-covidcast/issues/536)) Default ratio cases/deaths
+- [#616](https://github.com/cmu-delphi/www-covidcast/pull/616), [#678](https://github.com/cmu-delphi/www-covidcast/pull/678) UIKit Adaptations
+- [#692](https://github.com/cmu-delphi/www-covidcast/pull/692), [#671](https://github.com/cmu-delphi/www-covidcast/pull/671) (re: [#651](https://github.com/cmu-delphi/www-covidcast/issues/651)) Simplify URL parameters
+- [#677](https://github.com/cmu-delphi/www-covidcast/pull/677) (re: [#632](https://github.com/cmu-delphi/www-covidcast/issues/632)) Compute mega counties (`Rest of ...`) population on the fly
+- [#658](https://github.com/cmu-delphi/www-covidcast/pull/658) (re: [#485](https://github.com/cmu-delphi/www-covidcast/issues/485), [#639](https://github.com/cmu-delphi/www-covidcast/issues/639)) Additional export options
+
+#### Improvements
+
+- [#689](https://github.com/cmu-delphi/www-covidcast/pull/689) (re: [#687](https://github.com/cmu-delphi/www-covidcast/issues/687)) Change date shortcuts
+- [#676](https://github.com/cmu-delphi/www-covidcast/pull/676) Improve Map Selection UX
+- [#659](https://github.com/cmu-delphi/www-covidcast/pull/659) (re: [#656](https://github.com/cmu-delphi/www-covidcast/issues/656)) Shrink card header font size, adjust spacing.
+
+#### Bug-fixes
+
+- [#690](https://github.com/cmu-delphi/www-covidcast/pull/690) (re: [#686](https://github.com/cmu-delphi/www-covidcast/issues/686)) Add special case for old safari
+- [#674](https://github.com/cmu-delphi/www-covidcast/pull/674) Refactor: use vega resize method
+- [#666](https://github.com/cmu-delphi/www-covidcast/pull/666) (re: [#664](https://github.com/cmu-delphi/www-covidcast/issues/664), [#665](https://github.com/cmu-delphi/www-covidcast/issues/665)) Add HRR Population data and fix Orlando bug
\ No newline at end of file
diff --git a/content/covidcast/single.md b/content/covidcast/single.md
new file mode 100644
index 000000000..23ad81bb1
--- /dev/null
+++ b/content/covidcast/single.md
@@ -0,0 +1,7 @@
+---
+title: COVIDCast Region Details
+linkTitle: Region Details
+description: COVIDcast tracks and forecasts the spread of COVID-19. By Carnegie Mellon's Delphi Research Group.
+layout: covidcast_app
+heroImage: /images/landing-page/hero-images/covidcast_withfill.jpg
+---
diff --git a/content/covidcast/survey-results.md b/content/covidcast/survey-results.md
new file mode 100644
index 000000000..b0f78bc9c
--- /dev/null
+++ b/content/covidcast/survey-results.md
@@ -0,0 +1,8 @@
+---
+title: COVIDCast Survey Results
+linkTitle: Survey Results
+description: |
+ In collaboration with Facebook Data for Good, along with a consortium of universities and public health officials, the Delphi Group at Carnegie Mellon University conducts research surveys to monitor the spread and impact of the COVID-19 pandemic in the United States. This survey is advertised through Facebook. It has run continuously since early April 2020.
+layout: covidcast_app
+heroImage: /images/landing-page/hero-images/covidcast_survey.jpg
+---
diff --git a/content/covidcast/surveys.md b/content/covidcast/surveys.md
index 832ab7616..63cd975d1 100644
--- a/content/covidcast/surveys.md
+++ b/content/covidcast/surveys.md
@@ -2,7 +2,11 @@
title: Delphi's COVID-19 Surveys
---
-In collaboration with Facebook, along with a consortium of universities and public health officials, the [Delphi group]({{< relref "/" >}}) at [Carnegie Mellon University](https://www.cmu.edu/) conducts research surveys to monitor the spread and impact of the COVID-19 pandemic in the United States. This survey is advertised through Facebook. It has run continuously since early April 2020, and about 50,000 people in the United States participate **every day**. Survey results are publicly available on our [COVIDcast map]({{< relref "covidcast" >}}) and in our [COVIDcast API]({{< apiref "api/covidcast.html" >}}).
+{{< alert category="primary">}}
+ Summary results for the survey are now available. [Click here to explore]({{< relref "covidcast/survey-results" >}})
+{{< /alert >}}
+
+In collaboration with Facebook, along with a consortium of universities and public health officials, the [Delphi group]({{< relref "/" >}}) at [Carnegie Mellon University](https://www.cmu.edu/) conducts research surveys to monitor the spread and impact of the COVID-19 pandemic in the United States. This survey is advertised through Facebook. It has run continuously since early April 2020, and about 50,000 people in the United States participate **every day**. Survey results are publicly available on our [National COVID Survey Dashboard]({{< relref "covidcast/survey-results" >}}), [COVIDcast Map]({{< relref "covidcast" >}}), [COVIDcast Exporter]({{< relref "covidcast/export" >}}), and in our [COVIDcast API]({{< apiref "api/covidcast.html" >}}).
Such detailed data has never before been available during a public health emergency, and it will help public health officials understand how to save lives and how to safely reopen public life. The data will also help researchers understand the social, economic, and health effects of the COVID-19 pandemic.
@@ -14,7 +18,7 @@ The [Symptom Data Challenge](https://www.symptomchallenge.org/) challenged parti
The survey asks respondents whether they are experiencing any symptoms, then asks a series of questions designed to help researchers understand the spread of COVID-19 and its effect on people in the United States. These include questions about COVID-19 testing, prior medical conditions, social distancing measures, mental health, demographics, and the economic effects of the pandemic.
-Delphi uses information from the survey as part of its public [COVIDcast map]({{< relref "covidcast" >}}), to inform its forecasts (currently in development) of the pandemic’s spread, and to assist public health agency partners. By providing daily data from all parts of the United States, the survey allows comparisons between regions and allows careful tracking of changes over time. Other researchers use the survey to study factors related to the pandemic's spread, its effects on mental health, how different demographic groups are affected by the pandemic, and numerous other important questions.
+Delphi uses information from the survey as part of its public [COVIDcast Map]({{< relref "covidcast" >}}), to inform its forecasts (currently in development) of the pandemic’s spread, and to assist public health agency partners. By providing daily data from all parts of the United States, the survey allows comparisons between regions and allows careful tracking of changes over time. Other researchers use the survey to study factors related to the pandemic's spread, its effects on mental health, how different demographic groups are affected by the pandemic, and numerous other important questions.
Because the survey can reach thousands of respondents every day, its questions focus on what the respondents are experiencing right now. This allows us to track how conditions change across the country every day.
@@ -34,7 +38,7 @@ To account for the differences between Facebook users and the United States popu
## Where can I see the results?
-Our [COVIDcast map]({{< relref "covidcast" >}}) shows basic aggregate survey results, revealing the rates of mask usage and COVID-like symptoms across the United States, and this data is also freely available for download through the [COVIDcast API]({{< apiref "api/covidcast.html">}}). Facebook also publishes [a map](https://covid-survey.dataforgood.fb.com/) based on the United States and international aggregate data.
+Our [National COVID Survey Dashboard]({{< relref "covidcast/survey-results" >}}) shows aggregate survey results, ranging from rates of COVID-like symptoms over mask usage to mental health. In addition, our [COVIDcast map]({{< relref "covidcast" >}}) shows basic aggregate survey results, revealing the rates of mask usage and COVID-like symptoms across the United States. The data used by both tools is also freely available for download through the [COVIDcast API]({{< apiref "api/covidcast.html">}}) and our [COVIDcast Exporter]({{< relref "covidcast/export" >}}). Facebook also publishes [a map](https://covid-survey.dataforgood.fb.com/) based on the United States and international aggregate data.
### Blog posts and presentations
diff --git a/content/covidcast/timelapse.md b/content/covidcast/timelapse.md
new file mode 100644
index 000000000..8710382d4
--- /dev/null
+++ b/content/covidcast/timelapse.md
@@ -0,0 +1,7 @@
+---
+title: COVIDCast Timelapse
+linkTitle: Timelapse
+description: COVIDcast tracks and forecasts the spread of COVID-19. By Carnegie Mellon's Delphi Research Group.
+layout: covidcast_app
+heroImage: /images/landing-page/hero-images/covidcast_withfill.jpg
+---
diff --git a/content/covidcast/top10.md b/content/covidcast/top10.md
new file mode 100644
index 000000000..881909044
--- /dev/null
+++ b/content/covidcast/top10.md
@@ -0,0 +1,7 @@
+---
+title: COVIDCast Top 10
+linkTitle: Top 10
+description: COVIDcast tracks and forecasts the spread of COVID-19. By Carnegie Mellon's Delphi Research Group.
+layout: covidcast_app
+heroImage: /images/landing-page/hero-images/covidcast_withfill.jpg
+---
diff --git a/data/authors.yaml b/data/authors.yaml
index efbbdac39..da08074f5 100644
--- a/data/authors.yaml
+++ b/data/authors.yaml
@@ -17,6 +17,7 @@
name: Alex Reinhart
link: https://www.refsmmat.com
description: manages Delphi's surveys, and is an Assistant Teaching Professor in the Department of Statistics & Data Science at CMU.
+ twitter: capnrefsmmat
- key: kathryn
name: Kathryn Mazaitis
link: https://cs.cmu.edu/~krivard
diff --git a/devops/Dockerfile b/devops/Dockerfile
new file mode 100644
index 000000000..55d62c461
--- /dev/null
+++ b/devops/Dockerfile
@@ -0,0 +1,11 @@
+# docker image building and packaging the website
+FROM node:lts-buster AS builder
+WORKDIR /src
+COPY . ./
+RUN npm ci --unsafe-perm
+RUN npm run build
+
+FROM nginx:stable-alpine
+COPY --from=builder /src/public /usr/share/nginx/html
+# ensure files are readable at runtime
+RUN chmod o+r -R /usr/share/nginx/html/
\ No newline at end of file
diff --git a/devops/precompiled/Dockerfile b/devops/precompiled/Dockerfile
new file mode 100644
index 000000000..bb229551a
--- /dev/null
+++ b/devops/precompiled/Dockerfile
@@ -0,0 +1,6 @@
+# docker image using the current built website
+FROM nginx:stable-alpine
+
+COPY ./public /usr/share/nginx/html
+# ensure files are readable at runtime
+RUN chmod o+r -R /usr/share/nginx/html/
\ No newline at end of file
diff --git a/devops/r/Dockerfile b/devops/r/Dockerfile
new file mode 100644
index 000000000..04e2d7e8a
--- /dev/null
+++ b/devops/r/Dockerfile
@@ -0,0 +1,11 @@
+# docker image for setting up an R environment
+FROM continuumio/miniconda
+
+ADD ./environment.yml .
+RUN conda env create -f environment.yml
+
+ADD ./dependencies.R .
+
+RUN conda run -n www-main Rscript ./dependencies.R
+
+ENV PATH /opt/conda/envs/www-main/bin:$PATH
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index ad2448947..fe0ce77bb 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -3,13 +3,14 @@ version: "3.1"
# docker services for R environment and Hugo runner
services:
r:
- build: "."
+ build:
+ context: .
+ dockerfile: devops/r/Dockerfile
working_dir: "/app"
command: tail -F anything
volumes:
- "./:/app"
# run: docker-compose exec r bash
- # conda activate www-main
# Rscript -e 'blogdown::build_site(run_hugo=FALSE, build_rmd=TRUE)'
# see https://github.com/peaceiris/hugo-extended-docker
diff --git a/package-lock.json b/package-lock.json
index 6cc9ddb3c..952dc3d5e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "www-main",
- "version": "0.1.0",
+ "version": "1.12.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -95,6 +95,59 @@
"color-convert": "^1.9.0"
}
},
+ "anymatch": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
+ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
+ "dev": true,
+ "requires": {
+ "micromatch": "^2.1.5",
+ "normalize-path": "^2.0.0"
+ },
+ "dependencies": {
+ "braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "dev": true,
+ "requires": {
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
+ }
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
+ }
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ }
+ }
+ },
"arch": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
@@ -118,18 +171,140 @@
}
}
},
+ "arr-diff": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.0.1"
+ }
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+ "dev": true
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true
+ },
"astral-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
"dev": true
},
+ "async-each": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
+ "dev": true
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "dev": true
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dev": true,
+ "requires": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ }
+ },
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dev": true,
+ "requires": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ }
+ }
+ },
"base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
@@ -220,6 +395,22 @@
"pify": "^4.0.1"
}
},
+ "binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+ "dev": true
+ },
+ "bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
"bl": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
@@ -287,6 +478,31 @@
"integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
"dev": true
},
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "requires": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
"cacheable-request": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz",
@@ -339,12 +555,58 @@
"supports-color": "^5.3.0"
}
},
+ "chokidar": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
+ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
+ "dev": true,
+ "requires": {
+ "anymatch": "^1.3.0",
+ "async-each": "^1.0.0",
+ "fsevents": "^1.0.0",
+ "glob-parent": "^2.0.0",
+ "inherits": "^2.0.1",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^2.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.0.0"
+ }
+ },
"ci-info": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
"integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
"dev": true
},
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
"clean-stack": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
@@ -379,6 +641,16 @@
"mimic-response": "^1.0.0"
}
},
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "dev": true,
+ "requires": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ }
+ },
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@@ -405,6 +677,12 @@
"integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==",
"dev": true
},
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
+ },
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -438,6 +716,18 @@
}
}
},
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true
+ },
+ "core-js": {
+ "version": "2.6.12",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
+ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
+ "dev": true
+ },
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
@@ -471,6 +761,25 @@
}
}
},
+ "cpx": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/cpx/-/cpx-1.5.0.tgz",
+ "integrity": "sha1-GFvgGFEdhycN7czCkxceN2VauI8=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.9.2",
+ "chokidar": "^1.6.0",
+ "duplexer": "^0.1.1",
+ "glob": "^7.0.5",
+ "glob2base": "^0.0.12",
+ "minimatch": "^3.0.2",
+ "mkdirp": "^0.5.1",
+ "resolve": "^1.1.7",
+ "safe-buffer": "^5.0.1",
+ "shell-quote": "^1.6.1",
+ "subarg": "^1.0.0"
+ }
+ },
"cross-spawn": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
@@ -631,6 +940,59 @@
"integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=",
"dev": true
},
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ }
+ }
+ },
"download": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz",
@@ -659,6 +1021,12 @@
}
}
},
+ "duplexer": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
+ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
+ "dev": true
+ },
"duplexer3": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
@@ -736,6 +1104,48 @@
}
}
},
+ "expand-brackets": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "dev": true,
+ "requires": {
+ "is-posix-bracket": "^0.1.0"
+ }
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+ "dev": true,
+ "requires": {
+ "fill-range": "^2.1.0"
+ },
+ "dependencies": {
+ "fill-range": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
+ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
+ "dev": true,
+ "requires": {
+ "is-number": "^2.1.0",
+ "isobject": "^2.0.0",
+ "randomatic": "^3.0.0",
+ "repeat-element": "^1.1.2",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ }
+ }
+ },
"ext-list": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz",
@@ -755,6 +1165,36 @@
"sort-keys-length": "^1.0.0"
}
},
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "dev": true,
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ },
"fd-slicer": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
@@ -779,6 +1219,19 @@
"integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==",
"dev": true
},
+ "file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "dev": true,
+ "optional": true
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
+ "dev": true
+ },
"filename-reserved-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
@@ -805,6 +1258,12 @@
"to-regex-range": "^5.0.1"
}
},
+ "find-index": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz",
+ "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=",
+ "dev": true
+ },
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
@@ -823,6 +1282,30 @@
"semver-regex": "^2.0.0"
}
},
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.1"
+ }
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
"from2": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
@@ -845,6 +1328,23 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true
},
+ "fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
+ }
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
"get-own-enumerable-property-symbols": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
@@ -866,6 +1366,12 @@
"integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
"dev": true
},
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true
+ },
"glob": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
@@ -880,6 +1386,34 @@
"path-is-absolute": "^1.0.0"
}
},
+ "glob-base": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "dev": true,
+ "requires": {
+ "glob-parent": "^2.0.0",
+ "is-glob": "^2.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^2.0.0"
+ }
+ },
+ "glob2base": {
+ "version": "0.0.12",
+ "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz",
+ "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=",
+ "dev": true,
+ "requires": {
+ "find-index": "^0.1.1"
+ }
+ },
"got": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz",
@@ -919,6 +1453,15 @@
"integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
"dev": true
},
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@@ -940,10 +1483,70 @@
"has-symbol-support-x": "^1.4.1"
}
},
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
"highlight.js": {
- "version": "10.3.2",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.3.2.tgz",
- "integrity": "sha512-3jRT7OUYsVsKvukNKZCtnvRcFyCJqSEIuIMsEybAXRiFSwpt65qjPd/Pr+UOdYt7WJlt+lj3+ypUsHiySBp/Jw=="
+ "version": "10.4.1",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz",
+ "integrity": "sha512-yR5lWvNz7c85OhVAEAeFhVCc/GV4C30Fjzc/rCP0aCWzc1UUOPUk55dK/qdwTZHBvMZo+eZ2jpk62ndX/xMFlg=="
},
"http-cache-semantics": {
"version": "3.8.1",
@@ -1098,18 +1701,115 @@
"p-is-promise": "^1.1.0"
}
},
- "is-arrayish": {
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
"dev": true
},
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^1.0.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-core-module": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz",
+ "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "is-dotfile": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
+ "dev": true
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "dev": true,
+ "requires": {
+ "is-primitive": "^2.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true
+ },
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ },
"is-natural-number": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz",
@@ -1140,6 +1840,35 @@
"integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
"dev": true
},
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
+ "dev": true
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+ "dev": true
+ },
"is-regexp": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
@@ -1158,6 +1887,12 @@
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
"dev": true
},
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true
+ },
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -1170,6 +1905,15 @@
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
"dev": true
},
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ },
"isurl": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
@@ -1221,6 +1965,15 @@
"json-buffer": "3.0.0"
}
},
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ },
"lines-and-columns": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
@@ -1630,6 +2383,27 @@
}
}
},
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "dev": true
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "dev": true,
+ "requires": {
+ "object-visit": "^1.0.0"
+ }
+ },
+ "math-random": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
+ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==",
+ "dev": true
+ },
"merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -1673,17 +2447,93 @@
"brace-expansion": "^1.1.7"
}
},
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "dev": true
+ },
+ "mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
- "ncp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
- "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=",
- "dev": true
+ "nan": {
+ "version": "2.14.2",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
+ "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==",
+ "dev": true,
+ "optional": true
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ }
+ }
},
"nice-try": {
"version": "1.0.5",
@@ -1752,6 +2602,72 @@
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
},
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "dev": true,
+ "requires": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "dev": true,
+ "requires": {
+ "for-own": "^0.1.4",
+ "is-extendable": "^0.1.1"
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -1863,6 +2779,18 @@
"callsites": "^3.0.0"
}
},
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "dev": true,
+ "requires": {
+ "glob-base": "^0.3.0",
+ "is-dotfile": "^1.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.0"
+ }
+ },
"parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
@@ -1873,6 +2801,12 @@
"json-parse-better-errors": "^1.0.1"
}
},
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true
+ },
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
@@ -1891,6 +2825,12 @@
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
"dev": true
},
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
"path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -1994,12 +2934,24 @@
"semver-compare": "^1.0.0"
}
},
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "dev": true
+ },
"prepend-http": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
"dev": true
},
+ "preserve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
+ "dev": true
+ },
"prettier": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.0.tgz",
@@ -2051,6 +3003,31 @@
"strict-uri-encode": "^1.0.0"
}
},
+ "randomatic": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
+ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
+ "dev": true,
+ "requires": {
+ "is-number": "^4.0.0",
+ "kind-of": "^6.0.0",
+ "math-random": "^1.0.1"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ }
+ }
+ },
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
@@ -2074,12 +3051,383 @@
}
}
},
+ "readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ }
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "dev": true
+ },
+ "regex-cache": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
+ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
+ "dev": true,
+ "requires": {
+ "is-equal-shallow": "^0.1.3"
+ }
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "repeat-element": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz",
+ "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.1.0",
+ "path-parse": "^1.0.6"
+ }
+ },
"resolve-from": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true
},
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "dev": true
+ },
"responselike": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
@@ -2099,6 +3447,12 @@
"signal-exit": "^3.0.2"
}
},
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true
+ },
"rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
@@ -2123,6 +3477,15 @@
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"dev": true
},
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true,
+ "requires": {
+ "ret": "~0.1.10"
+ }
+ },
"seek-bzip": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz",
@@ -2159,6 +3522,29 @@
"semver": "^5.3.0"
}
},
+ "set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
"shebang-command": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
@@ -2174,6 +3560,12 @@
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
"dev": true
},
+ "shell-quote": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz",
+ "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==",
+ "dev": true
+ },
"signal-exit": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
@@ -2307,6 +3699,129 @@
}
}
},
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
+ "requires": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.2.0"
+ }
+ },
"sort-keys": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
@@ -2325,6 +3840,61 @@
"sort-keys": "^1.0.0"
}
},
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "dev": true,
+ "requires": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "dev": true
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.0"
+ }
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "dev": true,
+ "requires": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
"strict-uri-encode": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
@@ -2421,6 +3991,15 @@
"escape-string-regexp": "^1.0.2"
}
},
+ "subarg": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
+ "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.1.0"
+ }
+ },
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -2463,6 +4042,27 @@
"integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==",
"dev": true
},
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -2517,6 +4117,70 @@
"through": "^2.3.8"
}
},
+ "union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ }
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "dev": true,
+ "requires": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "dev": true
+ },
"url-parse-lax": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
@@ -2532,6 +4196,12 @@
"integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=",
"dev": true
},
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "dev": true
+ },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -2597,10 +4267,17 @@
"dev": true
},
"www-covidcast": {
- "version": "https://github.com/cmu-delphi/www-covidcast/releases/download/v1.11.1/www-covidcast-1.11.1.tgz",
- "integrity": "sha512-KHtaZtur4r+O371oHk2f1g72PkueB6EIybdS6eRYonX41ryLr1I97MgVTwCU5O3r2srf0PqioNOc64NZN6KH+w==",
+ "version": "https://github.com/cmu-delphi/www-covidcast/releases/download/v1.12.0/www-covidcast-1.12.0.tgz",
+ "integrity": "sha512-kqfEGujNz+lMat4GKSVBB015GiKWrEnqx1qVu1PxMWnSTaJo3vox+KX9fFP00wnTpSM/uCF2/f7AzRxGtBtdog==",
"requires": {
- "uikit": "^3.5.9"
+ "uikit": "^3.5.10"
+ },
+ "dependencies": {
+ "uikit": {
+ "version": "3.6.5",
+ "resolved": "https://registry.npmjs.org/uikit/-/uikit-3.6.5.tgz",
+ "integrity": "sha512-ChsoZBuCC4y0CXqJ51tiIPS4zcKgj8yvXDl8njRyMBLCjNRFlHgSjem2T6pQsEEItoN+Vh7NE3iueD70A4LW4A=="
+ }
}
},
"xtend": {
diff --git a/package.json b/package.json
index 63a8a1f38..291ba6877 100644
--- a/package.json
+++ b/package.json
@@ -1,32 +1,33 @@
{
"name": "www-main",
- "version": "0.1.0",
+ "version": "1.12.0",
"private": true,
"dependencies": {
"@fortawesome/fontawesome-free": "^5.15.1",
- "highlight.js": "^10.3.2",
+ "highlight.js": "^10.4.1",
"katex": "^0.12.0",
"uikit": "^3.5.9",
- "www-covidcast": "https://github.com/cmu-delphi/www-covidcast/releases/download/v1.11.1/www-covidcast-1.11.1.tgz"
+ "www-covidcast": "https://github.com/cmu-delphi/www-covidcast/releases/download/v1.12.0/www-covidcast-1.12.0.tgz"
},
"devDependencies": {
+ "cpx": "^1.5.0",
"hugo-bin": "^0.66.2",
"husky": "^4.3.0",
"lint-staged": "^10.5.2",
- "ncp": "^2.0.0",
"prettier": "^2.2.0",
"prettier-plugin-go-template": "0.0.10"
},
"scripts": {
- "copy_fonts": "ncp node_modules/katex/dist/fonts themes/delphi/static/css/fonts/",
- "copy_covidcast": "ncp node_modules/www-covidcast/public static/covidcast/",
+ "copy_fonts": "cpx node_modules/katex/dist/fonts themes/delphi/static/css/fonts/",
+ "copy_covidcast": "cpx \"node_modules/www-covidcast/public/**/*.{js,txt,css,map}\" static/covidcast/",
"postinstall": "npm run copy_fonts && npm run copy_covidcast",
"build:blog": "Rscript -e \"blogdown::build_site(local=FALSE, run_hugo=FALSE, build_rmd=TRUE)\"",
"build": "hugo --gc --minify",
"start": "hugo server -D",
"start:blog": "Rscript -e \"blogdown::serve_site()\"",
"format": "prettier *.* \"(.vscode|content|data|themes)/**\" --write",
- "lint": "prettier *.* \"(.vscode|content|data|themes)/**\" --check"
+ "lint": "prettier *.* \"(.vscode|content|data|themes)/**\" --check",
+ "image": "docker build -t www-main:latest --file ./devops/Dockerfile ."
},
"hugo-bin": {
"buildTags": "extended"
diff --git a/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.jpg b/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.jpg
new file mode 100644
index 000000000..9be2ea1d0
Binary files /dev/null and b/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.jpg differ
diff --git a/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.png b/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.png
deleted file mode 100644
index 7c680deec..000000000
Binary files a/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.png and /dev/null differ
diff --git a/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.webp b/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.webp
new file mode 100644
index 000000000..ac7f40f37
Binary files /dev/null and b/static/blog/images/blog-Lg-img_can symptoms surveys improve covid-19.webp differ
diff --git a/static/blog/images/blog-img_A Syndromic COVID-19.jpg b/static/blog/images/blog-img_A Syndromic COVID-19.jpg
new file mode 100644
index 000000000..93965df70
Binary files /dev/null and b/static/blog/images/blog-img_A Syndromic COVID-19.jpg differ
diff --git a/static/blog/images/blog-img_A Syndromic COVID-19.png b/static/blog/images/blog-img_A Syndromic COVID-19.png
deleted file mode 100644
index b82cdf77c..000000000
Binary files a/static/blog/images/blog-img_A Syndromic COVID-19.png and /dev/null differ
diff --git a/static/blog/images/blog-img_A Syndromic COVID-19.webp b/static/blog/images/blog-img_A Syndromic COVID-19.webp
new file mode 100644
index 000000000..c1c77008c
Binary files /dev/null and b/static/blog/images/blog-img_A Syndromic COVID-19.webp differ
diff --git a/static/blog/images/blog-lg-img_Accessing Open COVID-19.jpg b/static/blog/images/blog-lg-img_Accessing Open COVID-19.jpg
new file mode 100644
index 000000000..b049d4bd7
Binary files /dev/null and b/static/blog/images/blog-lg-img_Accessing Open COVID-19.jpg differ
diff --git a/static/blog/images/blog-lg-img_Accessing Open COVID-19.png b/static/blog/images/blog-lg-img_Accessing Open COVID-19.png
deleted file mode 100644
index 97858730a..000000000
Binary files a/static/blog/images/blog-lg-img_Accessing Open COVID-19.png and /dev/null differ
diff --git a/static/blog/images/blog-lg-img_Accessing Open COVID-19.webp b/static/blog/images/blog-lg-img_Accessing Open COVID-19.webp
new file mode 100644
index 000000000..37d3abce9
Binary files /dev/null and b/static/blog/images/blog-lg-img_Accessing Open COVID-19.webp differ
diff --git a/static/blog/images/blog-lg-img_New and Improved COVID.jpg b/static/blog/images/blog-lg-img_New and Improved COVID.jpg
new file mode 100644
index 000000000..6725bdf09
Binary files /dev/null and b/static/blog/images/blog-lg-img_New and Improved COVID.jpg differ
diff --git a/static/blog/images/blog-lg-img_New and Improved COVID.png b/static/blog/images/blog-lg-img_New and Improved COVID.png
deleted file mode 100644
index 3dfe3c34a..000000000
Binary files a/static/blog/images/blog-lg-img_New and Improved COVID.png and /dev/null differ
diff --git a/static/blog/images/blog-lg-img_New and Improved COVID.webp b/static/blog/images/blog-lg-img_New and Improved COVID.webp
new file mode 100644
index 000000000..9e5eeadd1
Binary files /dev/null and b/static/blog/images/blog-lg-img_New and Improved COVID.webp differ
diff --git a/static/blog/images/blog-lg-img_facebook-survey-post.jpg b/static/blog/images/blog-lg-img_facebook-survey-post.jpg
new file mode 100644
index 000000000..212c46a3c
Binary files /dev/null and b/static/blog/images/blog-lg-img_facebook-survey-post.jpg differ
diff --git a/static/blog/images/blog-lg-img_facebook-survey-post.png b/static/blog/images/blog-lg-img_facebook-survey-post.png
deleted file mode 100644
index 9cc5fb8c7..000000000
Binary files a/static/blog/images/blog-lg-img_facebook-survey-post.png and /dev/null differ
diff --git a/static/blog/images/blog-lg-img_facebook-survey-post.webp b/static/blog/images/blog-lg-img_facebook-survey-post.webp
new file mode 100644
index 000000000..6a8cd78b4
Binary files /dev/null and b/static/blog/images/blog-lg-img_facebook-survey-post.webp differ
diff --git a/static/blog/images/blog-lg-img_google-survey-post.jpg b/static/blog/images/blog-lg-img_google-survey-post.jpg
new file mode 100644
index 000000000..4de0a9fcb
Binary files /dev/null and b/static/blog/images/blog-lg-img_google-survey-post.jpg differ
diff --git a/static/blog/images/blog-lg-img_google-survey-post.png b/static/blog/images/blog-lg-img_google-survey-post.png
deleted file mode 100644
index e3551bb66..000000000
Binary files a/static/blog/images/blog-lg-img_google-survey-post.png and /dev/null differ
diff --git a/static/blog/images/blog-lg-img_google-survey-post.webp b/static/blog/images/blog-lg-img_google-survey-post.webp
new file mode 100644
index 000000000..10f54144a
Binary files /dev/null and b/static/blog/images/blog-lg-img_google-survey-post.webp differ
diff --git a/static/blog/images/blog-lg-img_hello-world.jpg b/static/blog/images/blog-lg-img_hello-world.jpg
new file mode 100644
index 000000000..bb8eaeb95
Binary files /dev/null and b/static/blog/images/blog-lg-img_hello-world.jpg differ
diff --git a/static/blog/images/blog-lg-img_hello-world.png b/static/blog/images/blog-lg-img_hello-world.png
deleted file mode 100644
index ce543bba4..000000000
Binary files a/static/blog/images/blog-lg-img_hello-world.png and /dev/null differ
diff --git a/static/blog/images/blog-lg-img_hello-world.webp b/static/blog/images/blog-lg-img_hello-world.webp
new file mode 100644
index 000000000..98169c9c4
Binary files /dev/null and b/static/blog/images/blog-lg-img_hello-world.webp differ
diff --git a/static/blog/images/blog-thumb-img_A Syndromic COVID-19.jpg b/static/blog/images/blog-thumb-img_A Syndromic COVID-19.jpg
new file mode 100644
index 000000000..69d0955f0
Binary files /dev/null and b/static/blog/images/blog-thumb-img_A Syndromic COVID-19.jpg differ
diff --git a/static/blog/images/blog-thumb-img_A Syndromic COVID-19.png b/static/blog/images/blog-thumb-img_A Syndromic COVID-19.png
deleted file mode 100644
index f57f06156..000000000
Binary files a/static/blog/images/blog-thumb-img_A Syndromic COVID-19.png and /dev/null differ
diff --git a/static/blog/images/blog-thumb-img_A Syndromic COVID-19.webp b/static/blog/images/blog-thumb-img_A Syndromic COVID-19.webp
new file mode 100644
index 000000000..39c9a5cd2
Binary files /dev/null and b/static/blog/images/blog-thumb-img_A Syndromic COVID-19.webp differ
diff --git a/static/blog/images/blog-thumb-img_Accessing Open COVID-19.jpg b/static/blog/images/blog-thumb-img_Accessing Open COVID-19.jpg
new file mode 100644
index 000000000..075bf4c7a
Binary files /dev/null and b/static/blog/images/blog-thumb-img_Accessing Open COVID-19.jpg differ
diff --git a/static/blog/images/blog-thumb-img_Accessing Open COVID-19.png b/static/blog/images/blog-thumb-img_Accessing Open COVID-19.png
deleted file mode 100644
index 7e1b4d8a2..000000000
Binary files a/static/blog/images/blog-thumb-img_Accessing Open COVID-19.png and /dev/null differ
diff --git a/static/blog/images/blog-thumb-img_Accessing Open COVID-19.webp b/static/blog/images/blog-thumb-img_Accessing Open COVID-19.webp
new file mode 100644
index 000000000..7a8683d4b
Binary files /dev/null and b/static/blog/images/blog-thumb-img_Accessing Open COVID-19.webp differ
diff --git a/static/blog/images/blog-thumb-img_New and Improved COVID.jpg b/static/blog/images/blog-thumb-img_New and Improved COVID.jpg
new file mode 100644
index 000000000..6e79b9134
Binary files /dev/null and b/static/blog/images/blog-thumb-img_New and Improved COVID.jpg differ
diff --git a/static/blog/images/blog-thumb-img_New and Improved COVID.png b/static/blog/images/blog-thumb-img_New and Improved COVID.png
deleted file mode 100644
index 02a2a5a83..000000000
Binary files a/static/blog/images/blog-thumb-img_New and Improved COVID.png and /dev/null differ
diff --git a/static/blog/images/blog-thumb-img_New and Improved COVID.webp b/static/blog/images/blog-thumb-img_New and Improved COVID.webp
new file mode 100644
index 000000000..60d2aa914
Binary files /dev/null and b/static/blog/images/blog-thumb-img_New and Improved COVID.webp differ
diff --git a/static/blog/images/blog-thumb-img_facebook-survey-post.jpg b/static/blog/images/blog-thumb-img_facebook-survey-post.jpg
new file mode 100644
index 000000000..d173d218d
Binary files /dev/null and b/static/blog/images/blog-thumb-img_facebook-survey-post.jpg differ
diff --git a/static/blog/images/blog-thumb-img_facebook-survey-post.png b/static/blog/images/blog-thumb-img_facebook-survey-post.png
deleted file mode 100644
index 61f7b5638..000000000
Binary files a/static/blog/images/blog-thumb-img_facebook-survey-post.png and /dev/null differ
diff --git a/static/blog/images/blog-thumb-img_facebook-survey-post.webp b/static/blog/images/blog-thumb-img_facebook-survey-post.webp
new file mode 100644
index 000000000..5fa464895
Binary files /dev/null and b/static/blog/images/blog-thumb-img_facebook-survey-post.webp differ
diff --git a/static/blog/images/blog-thumb-img_google-survey-post.jpg b/static/blog/images/blog-thumb-img_google-survey-post.jpg
new file mode 100644
index 000000000..8ad0ad76a
Binary files /dev/null and b/static/blog/images/blog-thumb-img_google-survey-post.jpg differ
diff --git a/static/blog/images/blog-thumb-img_google-survey-post.png b/static/blog/images/blog-thumb-img_google-survey-post.png
deleted file mode 100644
index 308af47b0..000000000
Binary files a/static/blog/images/blog-thumb-img_google-survey-post.png and /dev/null differ
diff --git a/static/blog/images/blog-thumb-img_google-survey-post.webp b/static/blog/images/blog-thumb-img_google-survey-post.webp
new file mode 100644
index 000000000..b00c0cf9f
Binary files /dev/null and b/static/blog/images/blog-thumb-img_google-survey-post.webp differ
diff --git a/static/blog/images/blog-thumb-img_hello-world.jpg b/static/blog/images/blog-thumb-img_hello-world.jpg
new file mode 100644
index 000000000..5458a5542
Binary files /dev/null and b/static/blog/images/blog-thumb-img_hello-world.jpg differ
diff --git a/static/blog/images/blog-thumb-img_hello-world.png b/static/blog/images/blog-thumb-img_hello-world.png
deleted file mode 100644
index 7aafb8ed8..000000000
Binary files a/static/blog/images/blog-thumb-img_hello-world.png and /dev/null differ
diff --git a/static/blog/images/blog-thumb-img_hello-world.webp b/static/blog/images/blog-thumb-img_hello-world.webp
new file mode 100644
index 000000000..8ebe1bdb7
Binary files /dev/null and b/static/blog/images/blog-thumb-img_hello-world.webp differ
diff --git a/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.jpg b/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.jpg
new file mode 100644
index 000000000..9c2a31a30
Binary files /dev/null and b/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.jpg differ
diff --git a/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.png b/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.png
deleted file mode 100644
index 0dc7dc30f..000000000
Binary files a/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.png and /dev/null differ
diff --git a/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.webp b/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.webp
new file mode 100644
index 000000000..067dc5990
Binary files /dev/null and b/static/blog/images/blog-thumbnail_can symptoms surveys improve covid-19.webp differ
diff --git a/static/blog/images/masks-public-full-size.webp b/static/blog/images/masks-public-full-size.webp
new file mode 100644
index 000000000..7cfb9560e
Binary files /dev/null and b/static/blog/images/masks-public-full-size.webp differ
diff --git a/static/blog/images/masks-public-thumb.jpg b/static/blog/images/masks-public-thumb.jpg
index fe8bfa092..c692b711b 100644
Binary files a/static/blog/images/masks-public-thumb.jpg and b/static/blog/images/masks-public-thumb.jpg differ
diff --git a/static/blog/images/masks-public-thumb.webp b/static/blog/images/masks-public-thumb.webp
new file mode 100644
index 000000000..8239a279c
Binary files /dev/null and b/static/blog/images/masks-public-thumb.webp differ
diff --git a/static/images/landing-page/API-image.jpg b/static/images/landing-page/API-image.jpg
new file mode 100644
index 000000000..3bcabc6b0
Binary files /dev/null and b/static/images/landing-page/API-image.jpg differ
diff --git a/static/images/landing-page/API-image.png b/static/images/landing-page/API-image.png
deleted file mode 100644
index c4096b143..000000000
Binary files a/static/images/landing-page/API-image.png and /dev/null differ
diff --git a/static/images/landing-page/hero-images/covidcast_survey.jpg b/static/images/landing-page/hero-images/covidcast_survey.jpg
new file mode 100644
index 000000000..bd2926070
Binary files /dev/null and b/static/images/landing-page/hero-images/covidcast_survey.jpg differ
diff --git a/static/images/landing-page/hero-images/covidcast_survey.webp b/static/images/landing-page/hero-images/covidcast_survey.webp
new file mode 100644
index 000000000..04d99cf67
Binary files /dev/null and b/static/images/landing-page/hero-images/covidcast_survey.webp differ
diff --git a/static/images/landing-page/hero-images/covidcast_withfill.jpg b/static/images/landing-page/hero-images/covidcast_withfill.jpg
new file mode 100644
index 000000000..dca2ec64c
Binary files /dev/null and b/static/images/landing-page/hero-images/covidcast_withfill.jpg differ
diff --git a/static/images/landing-page/hero-images/covidcast_withfill.png b/static/images/landing-page/hero-images/covidcast_withfill.png
deleted file mode 100644
index f84bba04f..000000000
Binary files a/static/images/landing-page/hero-images/covidcast_withfill.png and /dev/null differ
diff --git a/static/images/landing-page/hero-images/covidcast_withfill.webp b/static/images/landing-page/hero-images/covidcast_withfill.webp
new file mode 100644
index 000000000..f71b69097
Binary files /dev/null and b/static/images/landing-page/hero-images/covidcast_withfill.webp differ
diff --git a/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.jpg b/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.jpg
new file mode 100644
index 000000000..8e60680a1
Binary files /dev/null and b/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.jpg differ
diff --git a/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.png b/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.png
deleted file mode 100644
index 3b41eb47e..000000000
Binary files a/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.png and /dev/null differ
diff --git a/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.webp b/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.webp
new file mode 100644
index 000000000..84f3fcae7
Binary files /dev/null and b/static/images/landing-page/hero-images/landing-pg_hero-img-2_New and Improved COVID Symptom Survey Tracks Testing and Mask-Wearing.webp differ
diff --git a/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.jpg b/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.jpg
new file mode 100644
index 000000000..4bca0ac98
Binary files /dev/null and b/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.jpg differ
diff --git a/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.png b/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.png
deleted file mode 100644
index 944fbef34..000000000
Binary files a/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.png and /dev/null differ
diff --git a/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.webp b/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.webp
new file mode 100644
index 000000000..44603b11a
Binary files /dev/null and b/static/images/landing-page/hero-images/landing-pg_hero-img-2_Pancasting_ forecasting epidemics from provisional data.webp differ
diff --git a/static/images/red-bubble-map_mission-pg-short.webp b/static/images/red-bubble-map_mission-pg-short.webp
new file mode 100644
index 000000000..a949c6c90
Binary files /dev/null and b/static/images/red-bubble-map_mission-pg-short.webp differ
diff --git a/static/images/supporters/about/Screenshot_2020-11-13 COVIDcast Terms of Use - COVIDcast - Delphi Research Group - Carnegie Mellon University.png b/static/images/supporters/about/Screenshot_2020-11-13 COVIDcast Terms of Use - COVIDcast - Delphi Research Group - Carnegie Mellon University.png
deleted file mode 100644
index 98760cbc3..000000000
Binary files a/static/images/supporters/about/Screenshot_2020-11-13 COVIDcast Terms of Use - COVIDcast - Delphi Research Group - Carnegie Mellon University.png and /dev/null differ
diff --git a/static/images/supporters/about/brian-patrick-tagalog-_8hGFBxWD0A-unsplash.jpg b/static/images/supporters/about/brian-patrick-tagalog-_8hGFBxWD0A-unsplash.jpg
deleted file mode 100644
index a7db59ea1..000000000
Binary files a/static/images/supporters/about/brian-patrick-tagalog-_8hGFBxWD0A-unsplash.jpg and /dev/null differ
diff --git a/static/images/supporters/about/clay-banks-tRXPl_FCK9c-unsplash.jpg b/static/images/supporters/about/clay-banks-tRXPl_FCK9c-unsplash.jpg
deleted file mode 100644
index 28f6a6e2c..000000000
Binary files a/static/images/supporters/about/clay-banks-tRXPl_FCK9c-unsplash.jpg and /dev/null differ
diff --git a/static/images/supporters/about/engin-akyurt-2u095regyBI-unsplash.jpg b/static/images/supporters/about/engin-akyurt-2u095regyBI-unsplash.jpg
deleted file mode 100644
index 978d33511..000000000
Binary files a/static/images/supporters/about/engin-akyurt-2u095regyBI-unsplash.jpg and /dev/null differ
diff --git a/static/images/supporters/about/engin-akyurt-X_bKSpZJHzw-unsplash.jpg b/static/images/supporters/about/engin-akyurt-X_bKSpZJHzw-unsplash.jpg
deleted file mode 100644
index 93a2163a9..000000000
Binary files a/static/images/supporters/about/engin-akyurt-X_bKSpZJHzw-unsplash.jpg and /dev/null differ
diff --git a/static/images/supporters/about/engin-akyurt-aI2YW6g-6yg-unsplash.jpg b/static/images/supporters/about/engin-akyurt-aI2YW6g-6yg-unsplash.jpg
deleted file mode 100644
index f0e220d79..000000000
Binary files a/static/images/supporters/about/engin-akyurt-aI2YW6g-6yg-unsplash.jpg and /dev/null differ
diff --git a/static/images/supporters/about/engin-akyurt-srt61vmXMY8-unsplash.jpg b/static/images/supporters/about/engin-akyurt-srt61vmXMY8-unsplash.jpg
deleted file mode 100644
index 0ed5012b3..000000000
Binary files a/static/images/supporters/about/engin-akyurt-srt61vmXMY8-unsplash.jpg and /dev/null differ
diff --git a/static/images/supporters/about/engin-akyurt-ssmGkcausW0-unsplash.jpg b/static/images/supporters/about/engin-akyurt-ssmGkcausW0-unsplash.jpg
deleted file mode 100644
index 72e8bc882..000000000
Binary files a/static/images/supporters/about/engin-akyurt-ssmGkcausW0-unsplash.jpg and /dev/null differ
diff --git a/static/images/supporters/about/giacomo-carra-gf6UDwpl0ac-unsplash.jpg b/static/images/supporters/about/giacomo-carra-gf6UDwpl0ac-unsplash.jpg
deleted file mode 100644
index 5dd2af02f..000000000
Binary files a/static/images/supporters/about/giacomo-carra-gf6UDwpl0ac-unsplash.jpg and /dev/null differ
diff --git a/static/images/supporters/about/jj-ying-WmnsGyaFnCQ-unsplash.jpg b/static/images/supporters/about/jj-ying-WmnsGyaFnCQ-unsplash.jpg
deleted file mode 100644
index 62e7c4b91..000000000
Binary files a/static/images/supporters/about/jj-ying-WmnsGyaFnCQ-unsplash.jpg and /dev/null differ
diff --git a/static/images/supporters/about/markus-spiske-3_SvgDspSTE-unsplash.jpg b/static/images/supporters/about/markus-spiske-3_SvgDspSTE-unsplash.jpg
deleted file mode 100644
index 143b28199..000000000
Binary files a/static/images/supporters/about/markus-spiske-3_SvgDspSTE-unsplash.jpg and /dev/null differ
diff --git a/static/images/supporters/about/martin-sanchez-B1bu7r41HuU-unsplash.jpg b/static/images/supporters/about/martin-sanchez-B1bu7r41HuU-unsplash.jpg
deleted file mode 100644
index b6e361640..000000000
Binary files a/static/images/supporters/about/martin-sanchez-B1bu7r41HuU-unsplash.jpg and /dev/null differ
diff --git a/static/images/supporters/about/nathan-anderson-fcZIyU-nbFE-unsplash.jpg b/static/images/supporters/about/nathan-anderson-fcZIyU-nbFE-unsplash.jpg
deleted file mode 100644
index dd49ac3a4..000000000
Binary files a/static/images/supporters/about/nathan-anderson-fcZIyU-nbFE-unsplash.jpg and /dev/null differ
diff --git a/static/images/supporters/about/ricardo-gomez-angel-pRZVCSTqje4-unsplash.jpg b/static/images/supporters/about/ricardo-gomez-angel-pRZVCSTqje4-unsplash.jpg
deleted file mode 100644
index 3f6a3cd1b..000000000
Binary files a/static/images/supporters/about/ricardo-gomez-angel-pRZVCSTqje4-unsplash.jpg and /dev/null differ
diff --git a/static/images/supporters/about/tai-s-captures-0I52FCHNjoU-unsplash.jpg b/static/images/supporters/about/tai-s-captures-0I52FCHNjoU-unsplash.jpg
deleted file mode 100644
index b36fbab81..000000000
Binary files a/static/images/supporters/about/tai-s-captures-0I52FCHNjoU-unsplash.jpg and /dev/null differ
diff --git a/static/images/supporters/about/zane-lee-IHj0xtWtLKE-unsplash.jpg b/static/images/supporters/about/zane-lee-IHj0xtWtLKE-unsplash.jpg
deleted file mode 100644
index 628c3697f..000000000
Binary files a/static/images/supporters/about/zane-lee-IHj0xtWtLKE-unsplash.jpg and /dev/null differ
diff --git a/themes/delphi/assets/css/components/_card_grid.scss b/themes/delphi/assets/css/components/_card_grid.scss
index 170fce8bb..5ec421bec 100644
--- a/themes/delphi/assets/css/components/_card_grid.scss
+++ b/themes/delphi/assets/css/components/_card_grid.scss
@@ -30,9 +30,14 @@
margin: 1em 1em 0 8em;
}
+ .card-grid-item > picture {
+ width: 12em;
+ flex-shrink: 0;
+ }
+
.card-grid-item-img {
- width: 14em;
- height: unset;
+ width: 12em;
+ height: 100%;
border-radius: 8px 0 0 8px;
}
diff --git a/themes/delphi/assets/css/pages/_about.scss b/themes/delphi/assets/css/pages/_about.scss
index 44371bbc6..e1860578c 100644
--- a/themes/delphi/assets/css/pages/_about.scss
+++ b/themes/delphi/assets/css/pages/_about.scss
@@ -1,7 +1,14 @@
.about-mission {
- background-image: url("../images/red-bubble-map_mission-pg-short.jpg");
- background-size: auto;
height: 200px;
+ display: flex;
+
+ > picture {
+ display: flex;
+ flex: 1 1 0;
+ }
+}
+.about-mission-img {
+ flex: 1 1 0;
}
.mission-text {
diff --git a/themes/delphi/assets/css/pages/_blog.scss b/themes/delphi/assets/css/pages/_blog.scss
index 5e307be7d..b8f886b82 100644
--- a/themes/delphi/assets/css/pages/_blog.scss
+++ b/themes/delphi/assets/css/pages/_blog.scss
@@ -72,7 +72,7 @@ $blog-list-date-width: 5em;
@media (min-width: $breakpoint-medium) {
.blog-blog > *,
.blog-blog div.section > * {
- margin-right: 25%;
+ margin-right: 13%;
}
.blog-blog div.section,
.blog-blog .blog-image-wrapper.wide-figure {
diff --git a/themes/delphi/assets/css/pages/_landing.scss b/themes/delphi/assets/css/pages/_landing.scss
index a0c060695..22a5de2de 100644
--- a/themes/delphi/assets/css/pages/_landing.scss
+++ b/themes/delphi/assets/css/pages/_landing.scss
@@ -21,6 +21,10 @@ $carousel-height: 500px;
img {
z-index: -1;
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ position: absolute;
}
}
@@ -54,11 +58,11 @@ $carousel-height: 500px;
}
}
-.white-area {
+.landing-white-area {
padding-top: 2rem;
padding-bottom: 2rem;
}
-.gray-area {
+.landing-gray-area {
padding-top: 3rem;
padding-bottom: 3rem;
background-color: #eee;
@@ -99,6 +103,9 @@ $carousel-height: 500px;
max-width: 100%;
max-height: 100%;
}
+ > img {
+ border-radius: 5px;
+ }
}
.latest-news {
@@ -112,4 +119,16 @@ $carousel-height: 500px;
> img {
filter: grayscale(100%);
}
+ > img:first-of-type {
+ border-top-left-radius: 5px;
+ }
+ > img:nth-child(4) {
+ border-top-right-radius: 5px;
+ }
+ > img:nth-child(5) {
+ border-bottom-left-radius: 5px;
+ }
+ > img:last-of-type {
+ border-bottom-right-radius: 5px;
+ }
}
diff --git a/themes/delphi/assets/js/main.js b/themes/delphi/assets/js/main.js
index a1a98c6b0..22055015b 100644
--- a/themes/delphi/assets/js/main.js
+++ b/themes/delphi/assets/js/main.js
@@ -1,6 +1,8 @@
import UIkit from "uikit/dist/js/uikit.js";
-// import plugin from 'uikit/dist/js/uikit-icons.js';
-// UIkit.use(plugin);
+import plugin from "uikit/dist/js/uikit-icons.js";
+UIkit.use(plugin);
// re export for COVIDCast
window.UIkit = UIkit;
+// define for covidcast at which base url it is embedded
+window.DELPHI_COVIDCAST_PAGE = "/covidcast/";
diff --git a/themes/delphi/layouts/_default/about.html b/themes/delphi/layouts/_default/about.html
index a828d9841..9998980cc 100644
--- a/themes/delphi/layouts/_default/about.html
+++ b/themes/delphi/layouts/_default/about.html
@@ -1,5 +1,7 @@
{{ define "main" }}
-
+
+ {{ partial "webp-image.html" (dict "src" "/images/red-bubble-map_mission-pg-short.jpg" "class" "about-mission-img" "width" 1920 "height" 250 "alt" "Banner") }}
+
diff --git a/themes/delphi/layouts/_default/baseof.html b/themes/delphi/layouts/_default/baseof.html
index f70a407fa..f2389b0a8 100644
--- a/themes/delphi/layouts/_default/baseof.html
+++ b/themes/delphi/layouts/_default/baseof.html
@@ -8,7 +8,7 @@
{{ partial "nav.html" . }}
- {{ partial "menu/breadcrumb.html" . }}
+ {{ block "breadcrumb" . }}{{ partial "menu/breadcrumb.html" . }}{{ end }}
{{ block "main" . }} {{ end }}
{{ partial "footer.html" . }}
{{ partial "scripts.html" . }}
diff --git a/themes/delphi/layouts/_default/covidcast_app.html b/themes/delphi/layouts/_default/covidcast_app.html
index 7f9876b78..1e4cbfd4b 100644
--- a/themes/delphi/layouts/_default/covidcast_app.html
+++ b/themes/delphi/layouts/_default/covidcast_app.html
@@ -7,6 +7,7 @@
{{ end }}
+{{ define "breadcrumb" }}{{ end }}
{{ define "body_class" }}covidcast_wrapper{{ end }}
{{ define "main" }}
diff --git a/themes/delphi/layouts/_default/team.html b/themes/delphi/layouts/_default/team.html
index 589afab80..e1611a24f 100644
--- a/themes/delphi/layouts/_default/team.html
+++ b/themes/delphi/layouts/_default/team.html
@@ -8,6 +8,8 @@
diff --git a/themes/delphi/layouts/blog/list.html b/themes/delphi/layouts/blog/list.html
index d76ea371d..ee3aeb736 100644
--- a/themes/delphi/layouts/blog/list.html
+++ b/themes/delphi/layouts/blog/list.html
@@ -7,13 +7,7 @@
{{ .Description }}
{{ range .Paginator.Pages }}
{{ .Date.Format "Jan _2" }}
-

+ {{ partial "webp-image.html" (dict "src" .Params.heroImageThumb "alt" .Title "class" "card-grid-item-img" "width" 300 "height" 200) }}
diff --git a/themes/delphi/layouts/blog/single.html b/themes/delphi/layouts/blog/single.html
index 6bb8435d3..61d532b06 100644
--- a/themes/delphi/layouts/blog/single.html
+++ b/themes/delphi/layouts/blog/single.html
@@ -13,7 +13,7 @@
{{ .Title }}
{{ partial "blog/tags.html" . }}
{{ if isset .Params "heroimage" }}
-

+ {{ partial "webp-image.html" (dict "src" .Params.heroImage "width" 1120 "height" 440 "alt" .Title) }}
{{ end }}
@@ -47,7 +47,7 @@
Outline
{{ if isset .Params "acknowledgements" }}
Acknowledgements:
- {{ .Params.acknowledgements | markdownify }}
+ {{ .Params.acknowledgements | .RenderString }}
{{ end }}
{{ if isset .Params "related" }}
diff --git a/themes/delphi/layouts/landing.html b/themes/delphi/layouts/landing.html
index 25f8de2d4..05d5e6f08 100644
--- a/themes/delphi/layouts/landing.html
+++ b/themes/delphi/layouts/landing.html
@@ -1,38 +1,36 @@
{{ define "main" }}
-
- {{ partial "landing/carousel.html" . }}
-
-
-
-
Our Mission
-
- {{ .Site.Params.mission }}
-
-
+ {{ partial "landing/carousel.html" . }}
+
+
+
+
Our Mission
+
+ {{ .Site.Params.mission }}
+
+
-
-
-
-
- {{ partial "landing/teampic.html" (dict "Site" .Site "team" "highlight") }}
-
-
Our Team
-
Meet the Delphi team
- {{ partial "arrow-link.html" (dict "link" (relref . "team") "alt" "View all") }}
+
+
+
+
+ {{ partial "landing/teampic.html" (dict "Site" .Site "team" "highlight") }}
-
-
-

-
-
Our API
-
Access our data and tools
- {{ partial "arrow-link.html" (dict "link" .Site.Params.apiUrl "alt" "Learn more") }}
+
Our Team
+
Meet the Delphi team
+ {{ partial "arrow-link.html" (dict "link" (relref . "team") "alt" "View all") }}
+
+
+
+
+
Our API
+
Access our data and tools
+ {{ partial "arrow-link.html" (dict "link" .Site.Params.apiUrl "alt" "Learn more") }}
-
- {{ partial "landing/latest-news.html" . }}
+
+ {{ partial "landing/latest-news.html" . }}
{{ end }}
diff --git a/themes/delphi/layouts/partials/blog/card.html b/themes/delphi/layouts/partials/blog/card.html
index 9e650dceb..d17020c6e 100644
--- a/themes/delphi/layouts/partials/blog/card.html
+++ b/themes/delphi/layouts/partials/blog/card.html
@@ -1,13 +1,8 @@
{{ partial "blog/tags.html" . }}
diff --git a/themes/delphi/layouts/partials/footer.html b/themes/delphi/layouts/partials/footer.html
index c448317e7..fe94b349a 100644
--- a/themes/delphi/layouts/partials/footer.html
+++ b/themes/delphi/layouts/partials/footer.html
@@ -1,12 +1,17 @@