From ad112711a644f06530aa7df6e462575487018c56 Mon Sep 17 00:00:00 2001 From: Michele Pegoraro Date: Wed, 29 Jul 2020 13:21:43 +0100 Subject: [PATCH] July 2020 release --- .bulldozer.yml | 17 + .editorconfig | 8 + .gitignore | 12 +- .travis.yml | 108 +- CHANGELOG.md | 53 +- dockerfiles/HTTPServer/CE.Dockerfile | 45 - .../HTTPServer/StaticContent.Dockerfile | 40 +- dockerfiles/HTTPServer/UAWebApp.Dockerfile | 28 + dockerfiles/HTTPServer/docker-compose.yml | 30 + .../httpdconfig/custom_ihs_perf.conf | 94 - .../HTTPServer/httpdconfig/custom_ssl.conf | 24 - .../httpdconfig/custom_staticcontent.conf | 7 - dockerfiles/HTTPServer/ihsstart.sh | 86 - dockerfiles/Liberty/Batch.Dockerfile | 22 +- dockerfiles/Liberty/ClientEAR.Dockerfile | 41 + .../{EAR.Dockerfile => ServerEAR.Dockerfile} | 39 +- .../Utilities.Dockerfile} | 14 +- dockerfiles/Liberty/XMLServer.Dockerfile | 24 +- dockerfiles/Liberty/content/liveness-probe.sh | 13 + .../Liberty/content/start-xmlserver.sh | 17 +- dockerfiles/Liberty/docker-compose.yml | 97 + helm-charts/apps/.helmignore | 4 +- helm-charts/apps/Chart.yaml | 17 +- helm-charts/apps/README.md | 37 + helm-charts/apps/RELEASENOTES.md | 76 + helm-charts/apps/templates/NOTES.txt | 7 + helm-charts/apps/templates/_database.tpl | 79 + helm-charts/apps/templates/_helpers.tpl | 127 +- .../apps/templates/_sch-chart-config.tpl | 27 + .../configmaps}/configmap-applications.yaml | 10 +- .../configmaps}/configmap-birt-bind.yaml | 4 + .../configmaps/configmap-bootstrap.yaml | 83 + .../{ => configmaps}/configmap-customsql.yaml | 6 +- .../configmaps}/configmap-dbconn.yaml | 12 +- .../configmaps}/configmap-endpoints.yaml | 6 +- .../{ => configmaps}/configmap-isam.yaml | 5 +- .../configmap-jms-consumer-bind.yaml | 4 + .../configmap-jms-consumer-security.yaml | 9 +- .../configmap-jms-producer-bind.yaml | 4 + .../configmap-jms-producer-security.yaml | 13 +- .../configmap-jvm-options-override.yaml | 5 +- .../configmaps}/configmap-jvm-options.yaml | 6 +- .../configmaps}/configmap-log4j.yaml | 4 + .../configmaps}/configmap-logging.yaml | 4 + .../configmaps}/configmap-messaging.yaml | 144 +- .../configmaps}/configmap-openldap.yaml | 3 + .../configmaps}/configmap-server.yaml | 4 + .../configmaps}/configmap-sessions.yaml | 8 +- .../configmaps}/configmap-transactions.yaml | 10 +- .../apps/templates/deployment-consumer.yaml | 133 +- .../apps/templates/deployment-producer.yaml | 136 +- .../hooks/hook-create-ltpa-keys.yaml | 78 + .../hooks/hook-delete-ltpa-keys.yaml | 54 + .../templates/hooks/hook-role-secret-mgr.yaml | 42 + .../templates/hooks/hook-rolebinding.yaml | 39 + .../templates/hooks/hook-secret-ltpa.yaml | 34 + .../templates/hooks/hook-serviceaccount.yaml | 34 + helm-charts/apps/templates/secret-db.yaml | 32 + .../templates/secret-pull.yaml} | 12 +- .../apps/templates/secret-sysuser.yaml | 31 + .../{tls-secret.yaml => secret-tls.yaml} | 5 +- helm-charts/apps/templates/service.yaml | 14 +- .../apps/templates/serviceaccount.yaml | 33 + helm-charts/apps/values.yaml | 185 +- helm-charts/batch/.helmignore | 3 + helm-charts/batch/Chart.yaml | 19 +- helm-charts/batch/README.md | 35 + helm-charts/batch/RELEASENOTES.md | 68 + helm-charts/batch/templates/NOTES.txt | 25 + helm-charts/batch/templates/_helpers.tpl | 59 +- .../batch/templates/_sch-chart-config.tpl | 39 + .../batch/templates/configmap-bootstrap.yaml | 83 + helm-charts/batch/templates/cronjob.yaml | 70 +- helm-charts/batch/templates/db-secret.yaml | 32 + helm-charts/batch/templates/pull-secret.yaml | 27 + .../batch/templates/serviceaccount.yaml | 33 + helm-charts/batch/values.yaml | 97 +- helm-charts/ce-app/templates/_helpers.tpl | 101 - helm-charts/ce-app/templates/deployment.yaml | 98 - helm-charts/ce-app/values.yaml | 42 - helm-charts/configmaps/templates/_helpers.tpl | 157 - .../templates/configmap-ltpa-keys.yaml | 30 - helm-charts/configmaps/values.yaml | 56 - helm-charts/ihs/.helmignore | 22 - helm-charts/ihs/Chart.yaml | 34 - helm-charts/ihs/LICENSE | 201 - helm-charts/ihs/templates/_helpers.tpl | 104 - helm-charts/ihs/templates/deployment.yaml | 93 - helm-charts/ihs/values.yaml | 45 - helm-charts/mqserver/Chart.yaml | 12 +- helm-charts/mqserver/RELEASENOTES.md | 39 + helm-charts/mqserver/templates/_helpers.tpl | 13 + .../mqserver/templates/_sch-chart-config.tpl | 23 + .../mqserver/templates/configmap-mqsc.yaml | 35 +- .../mqserver/templates/deployment.yaml | 43 +- .../templates/hooks/hook-create-mq-creds.yaml | 81 + .../templates/hooks/hook-delete-mq-creds.yaml | 54 + .../templates/hooks/hook-role-secret-mgr.yaml | 42 + .../templates/hooks/hook-rolebinding.yaml | 39 + .../hooks/hook-secret-credentials.yaml | 35 + .../templates/hooks/hook-serviceaccount.yaml | 34 + helm-charts/mqserver/templates/pv-data.yaml | 42 + helm-charts/mqserver/templates/pv-logs.yaml | 42 + helm-charts/mqserver/templates/pv-qm.yaml | 42 + helm-charts/mqserver/templates/pvc-data.yaml | 41 + helm-charts/mqserver/templates/pvc-logs.yaml | 41 + helm-charts/mqserver/templates/pvc-qm.yaml | 41 + .../mqserver/templates/statefulset.yaml | 202 + helm-charts/mqserver/values.yaml | 25 +- helm-charts/openldap/Chart.yaml | 4 +- .../templates/tests/openldap-tests.yaml | 2 +- helm-charts/spm/.helmignore | 3 + helm-charts/spm/Chart.yaml | 42 +- helm-charts/spm/README.md | 48 + helm-charts/spm/RELEASENOTES.md | 38 + helm-charts/spm/prereqs/createSCC.sh | 28 +- helm-charts/spm/prereqs/scc.yaml | 2 + helm-charts/spm/requirements.yaml | 44 - helm-charts/spm/templates/NOTES.txt | 25 + helm-charts/spm/templates/_helpers.tpl | 65 +- .../spm/templates/_sch-chart-config.tpl | 25 + .../templates/configmap-bootstrap.yaml | 14 +- helm-charts/spm/templates/ingress.yaml | 19 +- .../spm/templates/persistence-pvc.yaml | 5 +- .../spm/templates/persistence-secret.yaml | 7 +- helm-charts/spm/templates/routes-apps.yaml | 3 +- .../{routes-ce.yaml => routes-ua.yaml} | 11 +- .../{routes-ihs.yaml => routes-web.yaml} | 9 +- helm-charts/spm/templates/secret-db.yaml | 32 + helm-charts/spm/templates/secret-pull.yaml | 30 + .../{tls-secret.yaml => secret-tls.yaml} | 3 + helm-charts/spm/values.yaml | 234 +- helm-charts/{ce-app => uawebapp}/.helmignore | 3 + helm-charts/{ce-app => uawebapp}/Chart.yaml | 22 +- helm-charts/{ce-app => uawebapp}/LICENSE | 0 helm-charts/uawebapp/README.md | 36 + helm-charts/uawebapp/RELEASENOTES.md | 61 + helm-charts/uawebapp/templates/NOTES.txt | 11 + helm-charts/uawebapp/templates/_helpers.tpl | 57 + .../uawebapp/templates/_sch-chart-config.tpl | 43 + .../uawebapp/templates/configmap-confd.yaml | 95 + .../uawebapp/templates/configmap-scripts.yaml | 52 + .../uawebapp/templates/deployment.yaml | 116 + .../uawebapp/templates/pull-secret.yaml | 28 + .../{ihs => uawebapp}/templates/service.yaml | 22 +- .../uawebapp/templates/serviceaccount.yaml | 33 + .../uawebapp/templates/tls-secret.yaml | 32 + helm-charts/uawebapp/values.yaml | 84 + helm-charts/{configmaps => web}/.helmignore | 3 + helm-charts/{configmaps => web}/Chart.yaml | 25 +- helm-charts/{configmaps => web}/LICENSE | 0 helm-charts/web/README.md | 37 + helm-charts/web/RELEASENOTES.md | 37 + helm-charts/web/templates/NOTES.txt | 10 + helm-charts/web/templates/_helpers.tpl | 60 + .../web/templates/_sch-chart-config.tpl | 39 + .../web/templates/configmap-confd.yaml | 94 + .../web/templates/configmap-scripts.yaml | 49 + helm-charts/web/templates/deployment.yaml | 113 + .../{spm => web}/templates/pull-secret.yaml | 4 +- .../{ce-app => web}/templates/service.yaml | 16 +- helm-charts/web/templates/serviceaccount.yaml | 33 + .../{ihs => web}/templates/tls-secret.yaml | 9 +- helm-charts/web/values.yaml | 85 + helm-charts/xmlserver/.helmignore | 3 + helm-charts/xmlserver/Chart.yaml | 21 +- helm-charts/xmlserver/README.md | 37 + helm-charts/xmlserver/RELEASENOTES.md | 30 + helm-charts/xmlserver/templates/NOTES.txt | 10 + helm-charts/xmlserver/templates/_helpers.tpl | 72 +- .../xmlserver/templates/_sch-chart-config.tpl | 39 + .../xmlserver/templates/deployment.yaml | 63 +- .../xmlserver/templates/pull-secret.yaml | 27 + helm-charts/xmlserver/templates/service.yaml | 19 +- .../xmlserver/templates/serviceaccount.yaml | 33 + helm-charts/xmlserver/values.yaml | 46 +- linkcheckerrc | 6 + package-lock.json | 20373 ++++++++++++++++ package.json | 17 +- src/data/nav-items.yaml | 39 +- src/images/curam_jmsqueue_message_flow.png | Bin 0 -> 33989 bytes src/images/dev_workstation_architecture.png | Bin 41334 -> 67065 bytes src/images/spm-reference-arch-kube.png | Bin 181197 -> 661171 bytes .../spm_static_content_on_kubernetes.png | Bin 83046 -> 54904 bytes src/pages/00-intro/IHSStaticContent.mdx | 2 +- src/pages/00-intro/arch-overview.mdx | 36 +- src/pages/00-intro/referenceArchSPM.mdx | 2 +- src/pages/01-prereq/3rdparty-sw.mdx | 24 +- .../01-prereq/Docker-Kubernetes-Helm.mdx | 25 +- src/pages/01-prereq/crc_installation.mdx | 7 +- src/pages/01-prereq/iks.mdx | 7 +- src/pages/01-prereq/minikube.mdx | 39 +- src/pages/02-deploy-spm/create_spm_db.mdx | 4 +- src/pages/03-build-images/base_images.mdx | 76 + src/pages/03-build-images/build_images.mdx | 232 +- .../03-build-images/setup_docker_context.mdx | 29 +- src/pages/04-deployment/hc_deployment.mdx | 253 +- src/pages/04-deployment/hc_preparation.mdx | 98 +- src/pages/06-operations/updating_curam.mdx | 22 +- src/pages/06-operations/updating_tools.mdx | 18 +- .../07-supporting-infrastructure/COS.mdx | 9 +- .../07-supporting-infrastructure/ISAM.mdx | 96 + .../07-supporting-infrastructure/LDAP.mdx | 3 +- .../07-supporting-infrastructure/LogDNA.mdx | 2 +- .../MQSetupConfig.mdx | 38 +- .../07-supporting-infrastructure/batch.mdx | 39 +- src/pages/08-runtime/failed_jms_messages.mdx | 115 + src/pages/08-runtime/interrogate_runtime.mdx | 22 +- src/pages/08-runtime/must_gather.mdx | 113 +- src/pages/08-runtime/troubleshoot.mdx | 4 +- src/pages/08-runtime/xmlserver.mdx | 2 +- src/pages/FAQ.mdx | 28 + src/pages/known_issues.mdx | 7 +- src/styles/index.scss | 25 +- static/resources/crc-values.yaml | 77 +- static/resources/iks-values.yaml | 85 +- static/resources/minikube-values.yaml | 87 +- 217 files changed, 26458 insertions(+), 2903 deletions(-) create mode 100644 .bulldozer.yml create mode 100644 .editorconfig delete mode 100644 dockerfiles/HTTPServer/CE.Dockerfile create mode 100644 dockerfiles/HTTPServer/UAWebApp.Dockerfile create mode 100644 dockerfiles/HTTPServer/docker-compose.yml delete mode 100644 dockerfiles/HTTPServer/httpdconfig/custom_ihs_perf.conf delete mode 100644 dockerfiles/HTTPServer/httpdconfig/custom_ssl.conf delete mode 100644 dockerfiles/HTTPServer/httpdconfig/custom_staticcontent.conf delete mode 100755 dockerfiles/HTTPServer/ihsstart.sh create mode 100644 dockerfiles/Liberty/ClientEAR.Dockerfile rename dockerfiles/Liberty/{EAR.Dockerfile => ServerEAR.Dockerfile} (60%) rename dockerfiles/{MQ/Dockerfile => Liberty/Utilities.Dockerfile} (76%) create mode 100755 dockerfiles/Liberty/content/liveness-probe.sh create mode 100644 dockerfiles/Liberty/docker-compose.yml create mode 100644 helm-charts/apps/README.md create mode 100644 helm-charts/apps/RELEASENOTES.md create mode 100644 helm-charts/apps/templates/NOTES.txt create mode 100644 helm-charts/apps/templates/_database.tpl create mode 100644 helm-charts/apps/templates/_sch-chart-config.tpl rename helm-charts/{configmaps/templates => apps/templates/configmaps}/configmap-applications.yaml (76%) rename helm-charts/{configmaps/templates => apps/templates/configmaps}/configmap-birt-bind.yaml (92%) create mode 100644 helm-charts/apps/templates/configmaps/configmap-bootstrap.yaml rename helm-charts/apps/templates/{ => configmaps}/configmap-customsql.yaml (91%) rename helm-charts/{configmaps/templates => apps/templates/configmaps}/configmap-dbconn.yaml (83%) rename helm-charts/{configmaps/templates => apps/templates/configmaps}/configmap-endpoints.yaml (84%) rename helm-charts/apps/templates/{ => configmaps}/configmap-isam.yaml (92%) rename helm-charts/{configmaps/templates => apps/templates/configmaps}/configmap-jms-consumer-bind.yaml (94%) rename helm-charts/{configmaps/templates => apps/templates/configmaps}/configmap-jms-consumer-security.yaml (88%) rename helm-charts/{configmaps/templates => apps/templates/configmaps}/configmap-jms-producer-bind.yaml (95%) rename helm-charts/{configmaps/templates => apps/templates/configmaps}/configmap-jms-producer-security.yaml (85%) rename helm-charts/apps/templates/{ => configmaps}/configmap-jvm-options-override.yaml (88%) rename helm-charts/{configmaps/templates => apps/templates/configmaps}/configmap-jvm-options.yaml (88%) rename helm-charts/{configmaps/templates => apps/templates/configmaps}/configmap-log4j.yaml (90%) rename helm-charts/{configmaps/templates => apps/templates/configmaps}/configmap-logging.yaml (90%) rename helm-charts/{mqserver/templates => apps/templates/configmaps}/configmap-messaging.yaml (51%) rename helm-charts/{configmaps/templates => apps/templates/configmaps}/configmap-openldap.yaml (91%) rename helm-charts/{configmaps/templates => apps/templates/configmaps}/configmap-server.yaml (93%) rename helm-charts/{configmaps/templates => apps/templates/configmaps}/configmap-sessions.yaml (84%) rename helm-charts/{configmaps/templates => apps/templates/configmaps}/configmap-transactions.yaml (72%) create mode 100644 helm-charts/apps/templates/hooks/hook-create-ltpa-keys.yaml create mode 100644 helm-charts/apps/templates/hooks/hook-delete-ltpa-keys.yaml create mode 100644 helm-charts/apps/templates/hooks/hook-role-secret-mgr.yaml create mode 100644 helm-charts/apps/templates/hooks/hook-rolebinding.yaml create mode 100644 helm-charts/apps/templates/hooks/hook-secret-ltpa.yaml create mode 100644 helm-charts/apps/templates/hooks/hook-serviceaccount.yaml create mode 100644 helm-charts/apps/templates/secret-db.yaml rename helm-charts/{ce-app/templates/tls-secret.yaml => apps/templates/secret-pull.yaml} (72%) create mode 100644 helm-charts/apps/templates/secret-sysuser.yaml rename helm-charts/apps/templates/{tls-secret.yaml => secret-tls.yaml} (86%) create mode 100644 helm-charts/apps/templates/serviceaccount.yaml create mode 100644 helm-charts/batch/README.md create mode 100644 helm-charts/batch/RELEASENOTES.md create mode 100644 helm-charts/batch/templates/NOTES.txt create mode 100644 helm-charts/batch/templates/_sch-chart-config.tpl create mode 100644 helm-charts/batch/templates/configmap-bootstrap.yaml create mode 100644 helm-charts/batch/templates/db-secret.yaml create mode 100644 helm-charts/batch/templates/pull-secret.yaml create mode 100644 helm-charts/batch/templates/serviceaccount.yaml delete mode 100644 helm-charts/ce-app/templates/_helpers.tpl delete mode 100644 helm-charts/ce-app/templates/deployment.yaml delete mode 100644 helm-charts/ce-app/values.yaml delete mode 100644 helm-charts/configmaps/templates/_helpers.tpl delete mode 100644 helm-charts/configmaps/templates/configmap-ltpa-keys.yaml delete mode 100644 helm-charts/configmaps/values.yaml delete mode 100644 helm-charts/ihs/.helmignore delete mode 100644 helm-charts/ihs/Chart.yaml delete mode 100644 helm-charts/ihs/LICENSE delete mode 100644 helm-charts/ihs/templates/_helpers.tpl delete mode 100644 helm-charts/ihs/templates/deployment.yaml delete mode 100644 helm-charts/ihs/values.yaml create mode 100644 helm-charts/mqserver/RELEASENOTES.md create mode 100644 helm-charts/mqserver/templates/_sch-chart-config.tpl create mode 100644 helm-charts/mqserver/templates/hooks/hook-create-mq-creds.yaml create mode 100644 helm-charts/mqserver/templates/hooks/hook-delete-mq-creds.yaml create mode 100644 helm-charts/mqserver/templates/hooks/hook-role-secret-mgr.yaml create mode 100644 helm-charts/mqserver/templates/hooks/hook-rolebinding.yaml create mode 100644 helm-charts/mqserver/templates/hooks/hook-secret-credentials.yaml create mode 100644 helm-charts/mqserver/templates/hooks/hook-serviceaccount.yaml create mode 100644 helm-charts/mqserver/templates/pv-data.yaml create mode 100644 helm-charts/mqserver/templates/pv-logs.yaml create mode 100644 helm-charts/mqserver/templates/pv-qm.yaml create mode 100644 helm-charts/mqserver/templates/pvc-data.yaml create mode 100644 helm-charts/mqserver/templates/pvc-logs.yaml create mode 100644 helm-charts/mqserver/templates/pvc-qm.yaml create mode 100644 helm-charts/mqserver/templates/statefulset.yaml create mode 100644 helm-charts/spm/README.md create mode 100644 helm-charts/spm/RELEASENOTES.md delete mode 100644 helm-charts/spm/requirements.yaml create mode 100644 helm-charts/spm/templates/NOTES.txt create mode 100644 helm-charts/spm/templates/_sch-chart-config.tpl rename helm-charts/{configmaps => spm}/templates/configmap-bootstrap.yaml (86%) rename helm-charts/spm/templates/{routes-ce.yaml => routes-ua.yaml} (77%) rename helm-charts/spm/templates/{routes-ihs.yaml => routes-web.yaml} (81%) create mode 100644 helm-charts/spm/templates/secret-db.yaml create mode 100644 helm-charts/spm/templates/secret-pull.yaml rename helm-charts/spm/templates/{tls-secret.yaml => secret-tls.yaml} (88%) rename helm-charts/{ce-app => uawebapp}/.helmignore (94%) rename helm-charts/{ce-app => uawebapp}/Chart.yaml (80%) rename helm-charts/{ce-app => uawebapp}/LICENSE (100%) create mode 100644 helm-charts/uawebapp/README.md create mode 100644 helm-charts/uawebapp/RELEASENOTES.md create mode 100644 helm-charts/uawebapp/templates/NOTES.txt create mode 100644 helm-charts/uawebapp/templates/_helpers.tpl create mode 100644 helm-charts/uawebapp/templates/_sch-chart-config.tpl create mode 100644 helm-charts/uawebapp/templates/configmap-confd.yaml create mode 100644 helm-charts/uawebapp/templates/configmap-scripts.yaml create mode 100644 helm-charts/uawebapp/templates/deployment.yaml create mode 100644 helm-charts/uawebapp/templates/pull-secret.yaml rename helm-charts/{ihs => uawebapp}/templates/service.yaml (66%) create mode 100644 helm-charts/uawebapp/templates/serviceaccount.yaml create mode 100644 helm-charts/uawebapp/templates/tls-secret.yaml create mode 100644 helm-charts/uawebapp/values.yaml rename helm-charts/{configmaps => web}/.helmignore (94%) rename helm-charts/{configmaps => web}/Chart.yaml (72%) rename helm-charts/{configmaps => web}/LICENSE (100%) create mode 100644 helm-charts/web/README.md create mode 100644 helm-charts/web/RELEASENOTES.md create mode 100644 helm-charts/web/templates/NOTES.txt create mode 100644 helm-charts/web/templates/_helpers.tpl create mode 100644 helm-charts/web/templates/_sch-chart-config.tpl create mode 100644 helm-charts/web/templates/configmap-confd.yaml create mode 100644 helm-charts/web/templates/configmap-scripts.yaml create mode 100644 helm-charts/web/templates/deployment.yaml rename helm-charts/{spm => web}/templates/pull-secret.yaml (84%) rename helm-charts/{ce-app => web}/templates/service.yaml (75%) create mode 100644 helm-charts/web/templates/serviceaccount.yaml rename helm-charts/{ihs => web}/templates/tls-secret.yaml (76%) create mode 100644 helm-charts/web/values.yaml create mode 100644 helm-charts/xmlserver/README.md create mode 100644 helm-charts/xmlserver/RELEASENOTES.md create mode 100644 helm-charts/xmlserver/templates/NOTES.txt create mode 100644 helm-charts/xmlserver/templates/_sch-chart-config.tpl create mode 100644 helm-charts/xmlserver/templates/pull-secret.yaml create mode 100644 helm-charts/xmlserver/templates/serviceaccount.yaml create mode 100644 linkcheckerrc create mode 100644 package-lock.json create mode 100644 src/images/curam_jmsqueue_message_flow.png create mode 100644 src/pages/03-build-images/base_images.mdx create mode 100644 src/pages/07-supporting-infrastructure/ISAM.mdx create mode 100644 src/pages/08-runtime/failed_jms_messages.mdx create mode 100644 src/pages/FAQ.mdx diff --git a/.bulldozer.yml b/.bulldozer.yml new file mode 100644 index 00000000..1b169466 --- /dev/null +++ b/.bulldozer.yml @@ -0,0 +1,17 @@ +version: 1 + +merge: + whitelist: + labels: ["merge when ready"] + comment_substrings: ["==AUTOMERGE==", "==MERGE_WHEN_READY=="] + branches: ["master", "epic/*"] + blacklist: + labels: ["do not merge"] + comment_substrings: ["==DO_NOT_MERGE=="] + method: merge + delete_after_merge: true + +update: + whitelist: + labels: ["wip", "update me"] + branches: ["master", "epic/*"] diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..f4383490 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,8 @@ +root = true + +[*] +end_of_line = lf +trim_trailing_whitespace = true +insert_final_newline = true +indent_style = space +indent_size = 2 diff --git a/.gitignore b/.gitignore index 02b2973f..e2956e92 100644 --- a/.gitignore +++ b/.gitignore @@ -5,12 +5,11 @@ _book *.tgz refreshChartMuseum.sh override_global.yaml -override-values.yaml +helm-charts/*-values.yaml tls.crt tls.key -batch-stage -ear-stage -res-stage +*-stage +.dockerignore dependencies staticcontent *!test.txt @@ -23,6 +22,9 @@ StaticContent.zip .project .settings *.drawio +/Release-* +build/ +!/Jenkins/Pipelines/Build #GATSBY # Logs @@ -91,4 +93,4 @@ yarn-error.log .pnp.js # Yarn Integrity file .yarn-integrity -package-lock.json \ No newline at end of file +!package-lock.json diff --git a/.travis.yml b/.travis.yml index 7082bb92..ced4044a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,25 +1,99 @@ -language: node_js -node_js: - - "12" +language: generic -group: bluezone dist: xenial +services: + - docker + +env: + global: + - ARTIFACTORY_URL=https://eu.artifactory.swg-devops.com/artifactory + - CHARTS_REPO=wh-spmdevops-helm-virtual + - JFROG_CLI_OFFER_CONFIG=false + matrix: + - CHART_BASENAME=db2 + - CHART_BASENAME=dbbuild + - CHART_BASENAME=xmlserver + - CHART_BASENAME=uawebapp + - CHART_BASENAME=apps + - CHART_BASENAME=batch + - CHART_BASENAME=mqserver + - CHART_BASENAME=web + - CHART_BASENAME=openldap + +stage: Charts + install: - - npm install -g gatsby markdownlint-cli - - npm install + # Install Helm v3 + - curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh + - chmod 700 get_helm.sh + - ./get_helm.sh + - helm version + # Install JFrog CLI + - curl -fL https://getcli.jfrog.io | sh + - sudo mv -v jfrog /usr/local/bin/ + - helm plugin install https://github.com/chartmuseum/helm-push + # Starts local Chart Museum instance + - docker run -d -e DEBUG=true -p 8080:8080 -e STORAGE=local -e STORAGE_LOCAL_ROOTDIR=/tmp chartmuseum/chartmuseum:v0.12.0 + - helm repo add sch https://raw.githubusercontent.com/IBM/charts/master/repo/samples + - helm repo update script: - - markdownlint **/*.mdx - - gatsby build --prefix-paths + # Validate and package chart + - cd helm-charts/ + - helm dependencies update $CHART_BASENAME + - helm lint $CHART_BASENAME + - helm template $CHART_BASENAME + - | + if [ ! "$TRAVIS_BRANCH" == "master" ]; then + perl -i -p -e "s/^version\: (.*)/version\: \1-$TRAVIS_BUILD_NUMBER/" $CHART_BASENAME/Chart.yaml + fi + - helm package $CHART_BASENAME + +jobs: + include: + # Build Umbrella Chart + - stage: Umbrella + env: + - CHART_BASENAME=spm + before_script: + # Fake connection to 'local-development' via Chart Museum + - helm repo add local-development http://localhost:8080 + - helm repo update + - find helm-charts/ -maxdepth 1 -type d ! -name . ! -name .git ! -name config ! -name jenkinsfiles -exec helm push {} local-development \; + # Build Documentation + - stage: Documentation + language: node_js + node_js: + - "12" + install: + - npm install -g markdownlint-cli + - npm ci + - pip install --user linkchecker + - sed -i "s/TRAVIS_HOST/$(hostname -f)/" linkcheckerrc + script: + - markdownlint **/*.mdx + - npm run build + - docker run --rm -d --name gatsby -p 8888:80 -v $(pwd)/public:/usr/local/apache2/htdocs$SITE_PREFIX httpd:2.4 + - linkchecker http://$(hostname -f):8888$SITE_PREFIX --config=./linkcheckerrc + deploy: + provider: pages + skip_cleanup: true + local_dir: public + github_token: $GITHUB_TOKEN + github_url: github.ibm.com + committer_from_gh: true + target_branch: gh-pages + on: + branch: master + after_deploy: skip deploy: - - provider: pages - skip_cleanup: true - local_dir: public - github_token: $GITHUB_TOKEN - github_url: github.com - committer_from_gh: true - target_branch: gh-pages - on: - branch: master + provider: script + skip_cleanup: true + script: jfrog rt u --url $ARTIFACTORY_URL --apikey $ARTIFACTORY_TOKEN --build-name $TRAVIS_REPO_SLUG --build-number $TRAVIS_JOB_ID ./${CHART_BASENAME}-*.tgz $CHARTS_REPO/ + on: + all_branches: true + +after_deploy: + - jfrog rt bp --url $ARTIFACTORY_URL --apikey $ARTIFACTORY_TOKEN --build-url https://travis.ibm.com/${TRAVIS_REPO_SLUG}/jobs/${TRAVIS_JOB_ID} $TRAVIS_REPO_SLUG $TRAVIS_JOB_ID diff --git a/CHANGELOG.md b/CHANGELOG.md index fca8a789..e643ae5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,13 +2,59 @@ All notable changes to this project will be documented in this file. -## v20.6.1 Changes +## v20.7.0 + +### Removed + +* `configmaps` chart (ConfigMaps are now part of `apps` chart) +* Dockerfile for IBM MQ (custom image not required anymore - use `ibmcom/mq` directly) +* Removed Helm v2, and related tiller documentation and commands + +### Added + +* Integration with [IBM Security Access manager](https://www.ibm.com/ie-en/marketplace/access-management/details) +* Dependency on IBM [Shared Configuration Helper](https://github.com/IBM/charts/tree/master/samples/ibm-sch) (SCH) chart for aligning with CloudPak code standards +* Dockerfile for a utilities image (used as init containers to import certificates into keystores & wait for other components to become available) +* Chart hooks for managing LTPA keys and MQ client user +* Liberty runtime liveness probe (checks log for specific error messages) +* Instructions for handling failed JMS messages on the MQ dead message queue +* In the MQ chart, a check before creating deployment to see if multi-instance MQ is desired. +* Values for use in multi-instance MQ, with both static and dynamic storage. +* A stateful set YAML file for use in multi-instance MQ. +* PV and PVC YAML files for use in multi-instance MQ. + +### Changed + +* Reduced the privilege requirement of `apps` chart to run with the `restricted` policy +* Reduced the privilege requirement of `batch` chart to run with the `restricted` policy +* Reduced the privilege requirement of `xmlserver` chart to run with the `restricted` policy +* Renamed `ihs` chart to `web` and switched to Apache HTTP server +* Renamed `ce-app` chart to `uawebapp` and switched to Apache HTTP server +* Moved web server configuration to ConfigMaps for `uawebapp` and `web` charts +* Added facility to add multiple batch programs +* Allow the generated UID in OpenShift to run the Liberty runtime +* Changed value file to allow specifying the `storageClassName` when using persistence +* Included database connection override values in `crc-values.yaml`, `iks-values.yaml` and `minikube-values.yaml` +* Updated minikube version to `1.12` +* Updated kubectl version to `1.18` +* Updated Helm to `v3` +* Updated IBM MQ Resource Adapter to `v9.1.5.0` + +### Fixed + +* Incorrect formatting of heredoc in `createSSC.sh` ([#24](https://github.com/IBM/spm-kubernetes/issues/24)) +* Db2 dependency in `spm/requirements.yaml` ([#23](https://github.com/IBM/spm-kubernetes/issues/23)) +* Duplicate `ihs` elements in `spm/values.yaml` ([#15](https://github.com/IBM/spm-kubernetes/issues/15)) + + +## v20.6.1 ### Changed * Updated URL format to match path prefix used by Gatsby build -## v20.6.0 Changes + +## v20.6.0 ### Added @@ -29,7 +75,8 @@ All notable changes to this project will be documented in this file. * [Broken Links in Prerequisites.](https://github.com/IBM/spm-kubernetes/issues/18) -## v20.5.0 Changes + +## v20.5.0 ### Added diff --git a/dockerfiles/HTTPServer/CE.Dockerfile b/dockerfiles/HTTPServer/CE.Dockerfile deleted file mode 100644 index 7c305e93..00000000 --- a/dockerfiles/HTTPServer/CE.Dockerfile +++ /dev/null @@ -1,45 +0,0 @@ -############################################################################### -# Copyright 2020 IBM Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -############################################################################### - -ARG DOCKER_REGISTRY="internal.docker.repository" -ARG HTTP_VERSION=9.0.0.11 - -#Final -FROM ${DOCKER_REGISTRY}/ubi7/ibm-http-server:${HTTP_VERSION} -ARG HTTP_VERSION -LABEL IHS_VERSION=${HTTP_VERSION} - -CMD ["/work/ihsstart.sh"] - -USER root -RUN echo "include conf.d/*.conf" >> /opt/IBM/HTTPServer/conf/httpd.conf \ - && chmod g+w /opt/IBM/HTTPServer \ - && chmod -Rc g+w /opt/IBM/HTTPServer/logs \ - && chmod -Rc g+rw /opt/IBM/WebSphere/Plugins/config \ - && chmod -Rc g+rw /opt/IBM/WebSphere/Plugins/logs - -# Provide authority to bind as non-root -RUN setcap CAP_NET_BIND_SERVICE+ep /opt/IBM/HTTPServer/bin/httpd \ - && echo /opt/IBM/HTTPServer/lib > /etc/ld.so.conf.d/httpd-lib.conf \ - && echo /opt/IBM/HTTPServer/gsk8/lib64 >> /etc/ld.so.conf.d/httpd-lib.conf \ - && rm -rf /etc/ld.so.cache \ - && /sbin/ldconfig - -COPY build /opt/IBM/HTTPServer/htdocs/universal -COPY httpdconfig/custom_*.conf /opt/IBM/HTTPServer/conf.d/ -COPY ihsstart.sh /work/ - -USER 1000 diff --git a/dockerfiles/HTTPServer/StaticContent.Dockerfile b/dockerfiles/HTTPServer/StaticContent.Dockerfile index 44b5bf46..8458bff8 100644 --- a/dockerfiles/HTTPServer/StaticContent.Dockerfile +++ b/dockerfiles/HTTPServer/StaticContent.Dockerfile @@ -14,38 +14,22 @@ # limitations under the License. ############################################################################### -ARG DOCKER_REGISTRY="internal.docker.repository" -ARG HTTP_VERSION=9.0.0.11 +ARG CONTENT_DIR=CuramStatic -#Unzip static content in to temp +# If set, must end with a forward slash, e.g. "registry.redhat.io/" +ARG BASE_REGISTRY + +# Unzip static content in to temp FROM alpine AS ExplodedStaticzip COPY StaticContent.zip /tmp/ RUN mkdir -p /work/staticcontent/ \ - && unzip -o -q /tmp/StaticContent.zip -d /work/staticcontent/ - -#Final -FROM ${DOCKER_REGISTRY}/ubi7/ibm-http-server:${HTTP_VERSION} -ARG HTTP_VERSION -LABEL IHS_VERSION=${HTTP_VERSION} - -CMD ["/work/ihsstart.sh"] - -USER root -RUN echo "include conf.d/*.conf" >> /opt/IBM/HTTPServer/conf/httpd.conf \ - && chmod g+w /opt/IBM/HTTPServer \ - && chmod -Rc g+w /opt/IBM/HTTPServer/logs \ - && chmod -Rc g+rw /opt/IBM/WebSphere/Plugins/config \ - && chmod -Rc g+rw /opt/IBM/WebSphere/Plugins/logs + && unzip -o -q /tmp/StaticContent.zip -d /work/staticcontent/ \ + && chmod -R g=u /work/staticcontent -# Provide authority to bind as non-root -RUN setcap CAP_NET_BIND_SERVICE+ep /opt/IBM/HTTPServer/bin/httpd \ - && echo /opt/IBM/HTTPServer/lib > /etc/ld.so.conf.d/httpd-lib.conf \ - && echo /opt/IBM/HTTPServer/gsk8/lib64 >> /etc/ld.so.conf.d/httpd-lib.conf \ - && rm -rf /etc/ld.so.cache \ - && /sbin/ldconfig +# Final +FROM ${BASE_REGISTRY}rhel8/httpd-24 +ARG CONTENT_DIR -COPY --from=ExplodedStaticzip /work/staticcontent/WebContent /opt/IBM/HTTPServer/htdocs/CuramStatic -COPY httpdconfig/custom_*.conf /opt/IBM/HTTPServer/conf.d/ -COPY ihsstart.sh /work/ +COPY --from=ExplodedStaticzip --chown=1001:0 /work/staticcontent/WebContent /var/www/html/$CONTENT_DIR -USER 1000 +USER 1001 diff --git a/dockerfiles/HTTPServer/UAWebApp.Dockerfile b/dockerfiles/HTTPServer/UAWebApp.Dockerfile new file mode 100644 index 00000000..b5aed9ff --- /dev/null +++ b/dockerfiles/HTTPServer/UAWebApp.Dockerfile @@ -0,0 +1,28 @@ +############################################################################### +# Copyright 2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +ARG CONTENT_DIR=universal + +# If set, must end with a forward slash, e.g. "registry.redhat.io/" +ARG BASE_REGISTRY + +# Final +FROM ${BASE_REGISTRY}rhel8/httpd-24 +ARG CONTENT_DIR + +COPY --chown=1001:0 build /var/www/html/$CONTENT_DIR + +USER 1001 diff --git a/dockerfiles/HTTPServer/docker-compose.yml b/dockerfiles/HTTPServer/docker-compose.yml new file mode 100644 index 00000000..fa588491 --- /dev/null +++ b/dockerfiles/HTTPServer/docker-compose.yml @@ -0,0 +1,30 @@ +version: '2.2' +services: + httpd: + build: + context: . + dockerfile: StaticContent.Dockerfile + labels: + InstallerBuildID: ${actualInstallerBuildId:-NotSet} + CuramVersion: ${VERSION_VALUE} + CuramConfiguration: ${CuramInstallation:-NotSet} + Locale: ${Locale:-en_US} + LangPacks: ${LangPacks:-None} + args: + CONTENT_DIR: ${STATIC_CONTENT_DIR:-CuramStatic} + BASE_REGISTRY: registry.redhat.io/ + image: ${DOCKER_REGISTRY:-wh-spmdevops-docker-local.artifactory.swg-devops.com}/${CuramVersion}/${IMAGE_PREFIX:?'IMAGE_PREFIX' must be specified}_httpd:${IMAGE_TAG:-untagged} + ua: + build: + context: . + dockerfile: UAWebApp.Dockerfile + labels: + InstallerBuildID: ${actualInstallerBuildId:-NotSet} + CuramVersion: ${VERSION_VALUE} + CuramConfiguration: ${CuramInstallation:-NotSet} + Locale: ${Locale:-en_US} + LangPacks: ${LangPacks:-None} + args: + CONTENT_DIR: ${UA_CONTENT_DIR:-universal} + BASE_REGISTRY: registry.redhat.io/ + image: ${DOCKER_REGISTRY:-wh-spmdevops-docker-local.artifactory.swg-devops.com}/${CuramVersion}/uawebapp:${IMAGE_TAG:-untagged} diff --git a/dockerfiles/HTTPServer/httpdconfig/custom_ihs_perf.conf b/dockerfiles/HTTPServer/httpdconfig/custom_ihs_perf.conf deleted file mode 100644 index 1943faa3..00000000 --- a/dockerfiles/HTTPServer/httpdconfig/custom_ihs_perf.conf +++ /dev/null @@ -1,94 +0,0 @@ -# -# Taken from http://www-01.ibm.com/support/docview.wss?uid=swg21685199&aid=1 -# - -KeepAlive On -MaxKeepAliveRequests 1000 -KeepAliveTimeOut 2 - -# -# if required, you need to substitute these in the main httpd.conf for Linux -# -# -#ThreadLimit 300 -#MaxClients 300 -#MinSpareThreads 300 -#MaxSpareThreads 300 -#ThreadsPerChild 300 -#StartServers 1 -#ServerLimit 1 -#MaxRequestsPerChild 0 -# -# -# if required, you need to substitue these in the main httpd.conf for Windows -# -# -#ThreadLimit 300 -#ThreadsPerChild 300 -#MaxRequestsPerChild 0 -#MaxMemFree 2048 -# -# -# - -# -# Allow access to /server-status -# -# -# SetHandler server-status -# Order allow,deny -# Allow from all -# - -# -# Custom rule to redirect to HTTPS -# -# -# RedirectPermanent / https://${HOSTNAME}_SSL/ -# - - LoadModule headers_module modules/mod_headers.so - - - LoadModule expires_module modules/mod_expires.so - - - ExpiresActive On - ExpiresByType text/css "access plus 1 month" - ExpiresByType text/javascript "access plus 1 month" - ExpiresByType text/plain "access plus 1 month" - ExpiresByType image/gif "access plus 1 month" - ExpiresByType image/jpg "access plus 1 month" - ExpiresByType image/png "access plus 1 month" - ExpiresByType application/x-shockwave-flash "access plus 1 month" - ExpiresByType application/x-javascript "access plus 1 month" - Header unset Last-Modified - - -#mod_filter needed for "AddOutputFilterByType" in IHS9 (Apache 2.4) - - LoadModule filter_module modules/mod_filter.so - - - LoadModule deflate_module modules/mod_deflate.so - - - AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript - # Netscape 4.x has some problems... - BrowserMatch ^Mozilla/4 gzip-only-text/html - # Netscape 4.06-4.08 have some more problems - BrowserMatch ^Mozilla/4\.0[678] no-gzip - # MSIE masquerades as Netscape, but it is fine - BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html - # Make sure proxies don't deliver the wrong content - Header append Vary User-Agent env=!dont-vary - #... - - -#For the BrowserRouter support in .htaccess - - LoadModule rewrite_module modules/mod_rewrite.so - - - AllowOverride All - diff --git a/dockerfiles/HTTPServer/httpdconfig/custom_ssl.conf b/dockerfiles/HTTPServer/httpdconfig/custom_ssl.conf deleted file mode 100644 index 530728db..00000000 --- a/dockerfiles/HTTPServer/httpdconfig/custom_ssl.conf +++ /dev/null @@ -1,24 +0,0 @@ -# -# Custom SSL config file -# - - -LoadModule ibm_ssl_module modules/mod_ibm_ssl.so -Listen 0.0.0.0:443 - - SSLEnable - SSLClientAuth None - SSLServerCert websphere - # Disable SSLv3 for CVE-2014-3566 - # SSLv2 is disabled in V8R0 and later by default, and in typical V7 - # and earlier configurations disabled implicitly when SSLv3 ciphers - # are configured with SSLCipherSpec. - SSLProtocolDisable SSLv3 SSLv2 TLSv10 TLSv11 - -KeyFile /opt/IBM/WebSphere/Plugins/config/ssl/key.kdb -SSLStashFile /opt/IBM/WebSphere/Plugins/config/ssl/key.sth -SSLDisable -SSLV2TimeOut 100 -SSLV3TimeOut 1000 -# End of example SSL configuration - diff --git a/dockerfiles/HTTPServer/httpdconfig/custom_staticcontent.conf b/dockerfiles/HTTPServer/httpdconfig/custom_staticcontent.conf deleted file mode 100644 index ecd5f759..00000000 --- a/dockerfiles/HTTPServer/httpdconfig/custom_staticcontent.conf +++ /dev/null @@ -1,7 +0,0 @@ -# Alias /CuramStatic/ "/opt/IBM/HTTPServer/htdocs/WebContent/" - - Options MultiViews - AllowOverride None - #Order allow,deny - Require all granted - diff --git a/dockerfiles/HTTPServer/ihsstart.sh b/dockerfiles/HTTPServer/ihsstart.sh deleted file mode 100755 index f102b245..00000000 --- a/dockerfiles/HTTPServer/ihsstart.sh +++ /dev/null @@ -1,86 +0,0 @@ -#! /bin/bash -set -e -############################################################################### -# Copyright 2020 IBM Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -############################################################################### - -##################################################################################### -# # -# Script to start the server (based on orignal ihsstart.sh) # -# # -# Usage : start_ihs.sh # -# # -##################################################################################### -LOG_PATH=/opt/IBM/HTTPServer/logs - -startServer() -{ - echo "Starting IBM HTTP Server " - # Starting IBM HTTPServer - /opt/IBM/HTTPServer/bin/apachectl start - - if [ $? = 0 ] - then - echo "IBM HTTP Server started successfully" - else - echo "Failed to start IBM HTTP Server" - fi -} - -stopServer() -{ - echo "Stopping IBM HTTP Server " - # Stopping IBM HTTPServer - /opt/IBM/HTTPServer/bin/apachectl graceful-stop - if [ $? = 0 ] - then - echo "IBM HTTP Server stopped successfully" - fi -} - -# Creates a directory for persistence on the PV volume (if set by Helm) -if [ -n "$MOUNT_POINT" ]; then - # Persistence volume can be slow to mount - while [ ! -d "$MOUNT_POINT" ]; do - sleep 1 - done - LOG_PATH=$MOUNT_POINT/$HOSTNAME/logs - mkdir -p $LOG_PATH - rm -rf /opt/IBM/HTTPServer/logs - ln -s $LOG_PATH /opt/IBM/HTTPServer/logs -fi - -mkdir -p /opt/IBM/WebSphere/Plugins/config/ssl -# Note label must match the SSLServerCert setting located within custom_ssl.conf file -gskcapicmd -keydb -create -db /opt/IBM/WebSphere/Plugins/config/ssl/key.kdb -pw wasadmin -type cms -stash -if [ -n "$SSL_CERT_PATH" ]; then - echo "Importing SSL certificate from $SSL_CERT_PATH ..." - openssl pkcs12 -export -inkey $SSL_CERT_PATH/tls.key -in $SSL_CERT_PATH/tls.crt -out /tmp/keystore.p12 -password pass:password -name websphere - gskcapicmd -cert -import -db /tmp/keystore.p12 -type pkcs12 -pw password -target /opt/IBM/WebSphere/Plugins/config/ssl/key.kdb -target_stashed - gskcapicmd -cert -setdefault -db /opt/IBM/WebSphere/Plugins/config/ssl/key.kdb -stashed -label websphere -else - echo "Generating self-signed SSL certificate ..." - gskcapicmd -cert -create -db /opt/IBM/WebSphere/Plugins/config/ssl/key.kdb -stashed -label websphere -size 2048 -sigalg SHA256WithRSA -expire 3650 -dn "CN=$HOSTNAME,OU=SPM,O=IBM Watson Health,C=US" -default_cert yes -fi - -# Starts the server and catchs exit signal -startServer -trap "stopServer" SIGTERM -sleep 10 - -# Only start tailing logs if a pid file has been created (i.e. IHS started successfully) -if [ -f "/opt/IBM/HTTPServer/logs/httpd.pid" ]; then - tail -F $LOG_PATH/access_log -F $LOG_PATH/error_log -fi diff --git a/dockerfiles/Liberty/Batch.Dockerfile b/dockerfiles/Liberty/Batch.Dockerfile index 408a9a4b..862da1e1 100644 --- a/dockerfiles/Liberty/Batch.Dockerfile +++ b/dockerfiles/Liberty/Batch.Dockerfile @@ -14,15 +14,21 @@ # limitations under the License. ############################################################################### -ARG WLP_VERSION=19.0.0.12-full-java8-ibmjava-ubi +ARG WLP_VERSION=20.0.0.6-full-java8-ibmjava-ubi ARG ANT_VERSION=1.10.6 # Intermediate image: extract Ant -FROM alpine AS AntStage +FROM alpine AS PrepStage ARG ANT_VERSION COPY content/apache-ant-${ANT_VERSION}-bin.zip /tmp/apache-ant.zip RUN unzip -qo /tmp/apache-ant.zip -d /opt/ +COPY content/dependencies/javax.mail.jar /opt/javamail/mail.jar +COPY content/dependencies/activation.jar /opt/javamail/activation.jar +COPY content/release-stage/SetEnvironment.sh /opt/ibm/Curam/ +COPY content/release-stage /opt/ibm/Curam/release +RUN chmod -R g=u /opt/ibm/Curam + FROM ibmcom/websphere-liberty:${WLP_VERSION} WORKDIR /opt/ibm/Curam/release @@ -36,15 +42,9 @@ ENV ANT_HOME=/opt/apache-ant-${ANT_VERSION} \ JAVAMAIL_HOME=/opt/javamail \ WLP_HOME=/opt/ibm/wlp ENV PATH=$ANT_HOME/bin:$JAVA_HOME/bin:$PATH:. - -USER root -RUN mkdir -p /opt/ibm/Curam/release \ - && chown -Rc 1001:0 /opt/ibm/Curam USER 1001 -COPY --from=AntStage --chown=1001:0 /opt/apache-ant-${ANT_VERSION} /opt/apache-ant-${ANT_VERSION} -COPY --chown=1001:0 content/dependencies/javax.mail.jar /opt/javamail/mail.jar -COPY --chown=1001:0 content/dependencies/activation.jar /opt/javamail/activation.jar +COPY --from=PrepStage --chown=1001:0 /opt/apache-ant-${ANT_VERSION} /opt/apache-ant-${ANT_VERSION} +COPY --from=PrepStage --chown=1001:0 /opt/javamail /opt/javamail +COPY --from=PrepStage --chown=1001:0 /opt/ibm/Curam /opt/ibm/Curam COPY --chown=1001:0 content/release-stage/build/CryptoConfig.jar /opt/ibm/java/jre/lib/ext/ -COPY --chown=1001:0 content/release-stage/SetEnvironment.sh /opt/ibm/Curam/ -COPY --chown=1001:0 content/release-stage /opt/ibm/Curam/release diff --git a/dockerfiles/Liberty/ClientEAR.Dockerfile b/dockerfiles/Liberty/ClientEAR.Dockerfile new file mode 100644 index 00000000..373565e3 --- /dev/null +++ b/dockerfiles/Liberty/ClientEAR.Dockerfile @@ -0,0 +1,41 @@ +############################################################################### +# Copyright 2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +ARG EAR_NAME +ARG SERVERCODE_IMAGE=servercode:latest +ARG WLP_VERSION=20.0.0.6-full-java8-ibmjava-ubi + +# Explode EAR in a disposable environment +FROM alpine AS ExplodedEAR +ARG EAR_NAME + +COPY content/release-stage/ear/WLP/${EAR_NAME}.ear /tmp/ +RUN mkdir -p /work/${EAR_NAME}.ear \ + && unzip -q /tmp/${EAR_NAME}.ear -d /work/${EAR_NAME}.ear \ + && ORIG_WAR_PATH=`find /work/${EAR_NAME}.ear -type f -name "*.war"` \ + && mv $ORIG_WAR_PATH /tmp/ \ + && mkdir -p $ORIG_WAR_PATH \ + && unzip -q /tmp/`basename $ORIG_WAR_PATH` -d $ORIG_WAR_PATH \ + && rm -rf /tmp/*.ear /tmp/*.war \ + && find /work -type f -name ibm-web-bnd.xm* | xargs -n1 sed -i 's|client_host|default_host|g' \ + && find /work -type f -name ibm-web-bnd.xm* | xargs -n1 sed -i 's|webservices_host|default_host|g' \ + && find /work -type d -name configuration -exec chmod -Rv g+w {} + + +# Create final image +FROM ${SERVERCODE_IMAGE} +ARG EAR_NAME + +COPY --from=ExplodedEAR --chown=1001:0 /work /config/apps diff --git a/dockerfiles/Liberty/EAR.Dockerfile b/dockerfiles/Liberty/ServerEAR.Dockerfile similarity index 60% rename from dockerfiles/Liberty/EAR.Dockerfile rename to dockerfiles/Liberty/ServerEAR.Dockerfile index 2a73c760..d0887846 100644 --- a/dockerfiles/Liberty/EAR.Dockerfile +++ b/dockerfiles/Liberty/ServerEAR.Dockerfile @@ -14,27 +14,19 @@ # limitations under the License. ############################################################################### -ARG EAR_NAME -ARG WLP_VERSION=19.0.0.12-full-java8-ibmjava-ubi -ARG MQ_ADAPTER_VERSION=9.1.3.0 +ARG WLP_VERSION=20.0.0.6-full-java8-ibmjava-ubi +ARG MQ_ADAPTER_VERSION=9.1.5.0 ARG MQ_RA_LICENSE -# Explode EARs in a disposable environment -FROM alpine AS ExplodedEARs -ARG EAR_NAME +# Explode EAR in a disposable environment +FROM alpine AS ExplodedEAR ARG MQ_RA_LICENSE -COPY content/release-stage/ear/WLP/CuramServerCode.ear content/release-stage/ear/WLP/${EAR_NAME}.ear /tmp/ -RUN mkdir -p /work/CuramServerCode.ear /work/${EAR_NAME}.ear \ +COPY content/release-stage/ear/WLP/CuramServerCode.ear /tmp/ +RUN mkdir -p /work/CuramServerCode.ear \ && unzip -q /tmp/CuramServerCode.ear -d /work/CuramServerCode.ear \ - && unzip -q /tmp/${EAR_NAME}.ear -d /work/${EAR_NAME}.ear \ - && ORIG_WAR_PATH=`find /work/${EAR_NAME}.ear -type f -name "*.war"` \ - && mv $ORIG_WAR_PATH /tmp/ \ - && mkdir -p $ORIG_WAR_PATH \ - && unzip -q /tmp/`basename $ORIG_WAR_PATH` -d $ORIG_WAR_PATH \ && rm -rf /tmp/*.ear /tmp/*.war \ - && find /work -type f -name ibm-web-bnd.xm* | xargs -n1 sed -i 's|client_host|default_host|g' \ - && find /work -type f -name ibm-web-bnd.xm* | xargs -n1 sed -i 's|webservices_host|default_host|g' + && mv /work/CuramServerCode.ear/properties.jar /tmp/properties.jar # Run MQ Adapter installer in a disposable environment FROM ibmjava:8-sdk AS MQAdapter @@ -45,25 +37,26 @@ COPY content/${MQ_ADAPTER_VERSION}-IBM-MQ-Java-InstallRA.jar /tmp/ RUN java -jar /tmp/${MQ_ADAPTER_VERSION}-IBM-MQ-Java-InstallRA.jar ${MQ_RA_LICENSE} /opt # Create final image -FROM ibmcom/websphere-liberty:${WLP_VERSION} -ARG EAR_NAME +FROM ibmcom/websphere-liberty:${WLP_VERSION} AS servercode USER root RUN ln -s /opt/ibm/wlp/usr/shared/resources /shared_resources \ - && chown -Rc 1001:0 /config/configDropins \ - && chown -Rc 1001:0 /opt/ibm/wlp/usr/shared \ - && chmod -Rc g+rw /opt/ibm/wlp/usr/shared \ + && chown -R 1001:0 /config/configDropins \ + && chown -R 1001:0 /opt/ibm/wlp/usr/shared \ + && chmod -R g=u /opt/ibm/wlp/usr/shared \ + && chmod -R g=u /output \ && rm -f /config/configDropins/defaults/* USER 1001 -COPY --chown=1001:0 content/docker-server.sh /opt/ibm/helpers/runtime/docker-server.sh +COPY --chown=1001:0 content/*.sh /opt/ibm/helpers/runtime/ COPY --from=MQAdapter --chown=1001:0 /opt/wmq /opt/wmq COPY --chown=1001:0 content/release-stage/CuramSDEJ/drivers/db2jcc*.jar /shared_resources/drivers/ COPY --chown=1001:0 content/release-stage/CuramSDEJ/drivers/ojdbc*.jar /shared_resources/drivers/ COPY --chown=1001:0 content/release-stage/CuramSDEJ/lib/WLPRegistry.jar /shared_resources/ COPY --chown=1001:0 content/release-stage/CuramSDEJ/lib/coreinf-ejb-interfaces.jar /shared_resources/ COPY --chown=1001:0 content/release-stage/build/CryptoConfig.jar /opt/ibm/java/jre/lib/ext/ -COPY --from=ExplodedEARs --chown=1001:0 /work /config/apps +COPY --from=ExplodedEAR --chown=1001:0 /work /config/apps +COPY --from=ExplodedEAR --chown=1001:0 /tmp/properties.jar /shared_resources/ RUN installUtility install defaultServer \ - && (installUtility install wmqJmsClient-2.0 || true) \ No newline at end of file + && (installUtility install wmqJmsClient-2.0 || true) diff --git a/dockerfiles/MQ/Dockerfile b/dockerfiles/Liberty/Utilities.Dockerfile similarity index 76% rename from dockerfiles/MQ/Dockerfile rename to dockerfiles/Liberty/Utilities.Dockerfile index c32cfe8b..20d0233f 100644 --- a/dockerfiles/MQ/Dockerfile +++ b/dockerfiles/Liberty/Utilities.Dockerfile @@ -14,8 +14,14 @@ # limitations under the License. ############################################################################### -ARG MQ_VERSION=9.1.3.0 -FROM ibmcom/mq:${MQ_VERSION} +# If set, must end with a forward slash, e.g. "registry.connect.redhat.com/" +ARG BASE_REGISTRY + +FROM ${BASE_REGISTRY}ibm/ibmjava8:latest + USER root -RUN useradd -g 0 -M default && usermod -L default -USER mqm +RUN microdnf install -y nc \ + && microdnf clean all \ + && rm -rf /var/cache/yum + +USER 1001 diff --git a/dockerfiles/Liberty/XMLServer.Dockerfile b/dockerfiles/Liberty/XMLServer.Dockerfile index c9cc985f..0b5de5a1 100644 --- a/dockerfiles/Liberty/XMLServer.Dockerfile +++ b/dockerfiles/Liberty/XMLServer.Dockerfile @@ -16,14 +16,22 @@ ARG ANT_VERSION=1.10.6 +# If set, must end with a forward slash, e.g. "registry.connect.redhat.com/" +ARG BASE_REGISTRY + # Intermediate image: extract Ant -FROM alpine AS AntStage +FROM alpine AS ExtractAndMod ARG ANT_VERSION COPY content/apache-ant-${ANT_VERSION}-bin.zip /tmp/apache-ant.zip -RUN unzip -qo /tmp/apache-ant.zip -d /opt/ +COPY content/release-stage/CuramSDEJ/xmlserver /opt/ibm/Curam/xmlserver +COPY content/start-xmlserver.sh /opt/ibm/Curam/xmlserver/start-xmlserver.sh +RUN unzip -qo /tmp/apache-ant.zip -d /opt/ \ + && chgrp -Rc 0 /opt/ibm/Curam \ + && chmod -Rc g=u /opt/ibm/Curam \ + && chmod -c +x /opt/ibm/Curam/xmlserver/*.sh # Final image -FROM registry.connect.redhat.com/ibm/ibmjava8 +FROM ${BASE_REGISTRY}ibm/ibmjava8:latest EXPOSE 1800 WORKDIR /opt/ibm/Curam/xmlserver @@ -37,9 +45,9 @@ ENV PATH=$ANT_HOME/bin:$JAVA_HOME/bin:$PATH:. USER root RUN mkdir -p /opt/ibm/Curam/xmlserver \ - && chown -Rc 1001:0 /opt/ibm/Curam -USER 1001 + && chmod -c g+w /etc/passwd -COPY --from=AntStage --chown=1001:0 /opt/apache-ant-${ANT_VERSION} /opt/apache-ant-${ANT_VERSION} -COPY --chown=1001:0 content/release-stage/CuramSDEJ/xmlserver /opt/ibm/Curam/xmlserver -COPY --chown=1001:0 content/start-xmlserver.sh /opt/ibm/Curam/xmlserver/start-xmlserver.sh +COPY --from=ExtractAndMod --chown=1001:0 /opt/apache-ant-${ANT_VERSION} /opt/apache-ant-${ANT_VERSION} +COPY --from=ExtractAndMod --chown=1001:0 /opt/ibm/Curam /opt/ibm/Curam + +USER 1001 diff --git a/dockerfiles/Liberty/content/liveness-probe.sh b/dockerfiles/Liberty/content/liveness-probe.sh new file mode 100755 index 00000000..861a6755 --- /dev/null +++ b/dockerfiles/Liberty/content/liveness-probe.sh @@ -0,0 +1,13 @@ +#!/bin/bash +errorList=("The Connection Manager received a fatal connection error from the Resource Adapter for resource jdbc/curamsessdb.") + +for i in "${errorList[@]}" +do + if grep -q "$i" ${1}; then + printf "\n%sError: The following error: \n%s\"$i\" \n%s Was detected in the messages log at ${1}\n%s" + exit 1 + else + printf "\n%sNo Errors were found in the logs at ${1}" + exit 0 + fi +done \ No newline at end of file diff --git a/dockerfiles/Liberty/content/start-xmlserver.sh b/dockerfiles/Liberty/content/start-xmlserver.sh index f37bacf2..540d309f 100755 --- a/dockerfiles/Liberty/content/start-xmlserver.sh +++ b/dockerfiles/Liberty/content/start-xmlserver.sh @@ -17,6 +17,19 @@ set -e ############################################################################### XMLSERVER_PATH=/opt/ibm/Curam/xmlserver +if [ `id -u` -ge 10000 ]; then + echo "xmlserver:x:`id -u`:`id -g`:,,,:$XMLSERVER_PATH:/bin/bash" >> /etc/passwd +fi + +stopServer() { + echo "Stopping XML Server " + ant -f $XMLSERVER_PATH/xmlserver.xml stop 2>&1 | tee -a tmp/xmlserver.log + if [ $? = 0 ] + then + echo "XML Server stopped successfully" + fi +} + # Creates directories for persistence on the PV volume (if set by Helm) if [ -n "$MOUNT_POINT" ]; then # Persistence volume can be slow to mount @@ -32,6 +45,8 @@ if [ -n "$MOUNT_POINT" ]; then ln -s $MOUNT_POINT/$HOSTNAME/stats $XMLSERVER_PATH/stats fi +trap "stopServer" SIGTERM + # Starts XML Server cd $XMLSERVER_PATH -ant -f xmlserver.xml 2>&1 | tee tmp/xmlserver.log \ No newline at end of file +ant -f xmlserver.xml 2>&1 | tee -a tmp/xmlserver.log diff --git a/dockerfiles/Liberty/docker-compose.yml b/dockerfiles/Liberty/docker-compose.yml new file mode 100644 index 00000000..803eea23 --- /dev/null +++ b/dockerfiles/Liberty/docker-compose.yml @@ -0,0 +1,97 @@ +version: '2.2' +services: + db2: + image: wh-spmdevops-docker-local.artifactory.swg-devops.com/rhel/db2:${DB2_VERSION:-11.1.3.3} + hostname: 'db2container' + privileged: true + ports: + - 50000:50000 + labels: + InstallerBuildID: ${actualInstallerBuildId:-NotSet} + Db2Version: ${DB2_VERSION:-11.1.3.3} + CuramVersion: ${VERSION_VALUE} + CuramConfiguration: ${CuramInstallation:-NotSet} + Locale: ${Locale:-en_US} + LangPacks: ${LangPacks:-None} + servercode: + build: + context: . + dockerfile: ServerEAR.Dockerfile + args: + WLP_VERSION: ${LibertyImageVersion:?'LibertyImageVersion' must be set!} + MQ_ADAPTER_VERSION: ${MQ_ADAPTER_VERSION:-9.1.5.0} + MQ_RA_LICENSE: --acceptLicense + labels: + InstallerBuildID: ${actualInstallerBuildId:-NotSet} + LibertyImageVersion: ${LibertyImageVersion:?'LibertyImageVersion' must be set!} + CuramVersion: ${VERSION_VALUE} + CuramConfiguration: ${CuramInstallation:-NotSet} + Locale: ${Locale:-en_US} + LangPacks: ${LangPacks:-None} + image: ${DOCKER_REGISTRY}/${CuramVersion}/${IMAGE_PREFIX:?'IMAGE_PREFIX' must be specified}_servercode:${IMAGE_TAG:-untagged} + links: + - db2:db2container + wlp: + build: + context: . + dockerfile: ClientEAR.Dockerfile + args: + EAR_NAME: ${EAR_NAME:-Curam} + SERVERCODE_IMAGE: ${DOCKER_REGISTRY}/${CuramVersion}/${IMAGE_PREFIX:?'IMAGE_PREFIX' must be specified}_servercode:${IMAGE_TAG:-untagged} + labels: + InstallerBuildID: ${actualInstallerBuildId:-NotSet} + LibertyImageVersion: ${LibertyImageVersion:?'LibertyImageVersion' must be set!} + CuramVersion: ${VERSION_VALUE} + CuramConfiguration: ${CuramInstallation:-NotSet} + Locale: ${Locale:-en_US} + LangPacks: ${LangPacks:-None} + image: ${DOCKER_REGISTRY}/${CuramVersion}/${IMAGE_PREFIX:?'IMAGE_PREFIX' must be specified}_${IMAGE_SUFFIX:-curam}:${IMAGE_TAG:-untagged} + links: + - db2:db2container + xmlserver: + build: + context: . + dockerfile: XMLServer.Dockerfile + args: + ANT_VERSION: ${ANT_VERSION:-1.10.6} + BASE_REGISTRY: registry.connect.redhat.com/ + labels: + InstallerBuildID: ${actualInstallerBuildId:-NotSet} + CuramVersion: ${VERSION_VALUE} + CuramConfiguration: ${CuramInstallation:-NotSet} + AntVersion: ${ANT_VERSION:-1.10.6} + Locale: ${Locale:-en_US} + LangPacks: ${LangPacks:-None} + image: ${DOCKER_REGISTRY}/${CuramVersion}/${IMAGE_PREFIX:?'IMAGE_PREFIX' must be specified}_xmlserver:${IMAGE_TAG:-untagged} + utilities: + build: + context: . + dockerfile: Utilities.Dockerfile + args: + BASE_REGISTRY: registry.connect.redhat.com/ + labels: + InstallerBuildID: ${actualInstallerBuildId:-NotSet} + CuramVersion: ${VERSION_VALUE} + CuramConfiguration: ${CuramInstallation:-NotSet} + AntVersion: ${ANT_VERSION:-1.10.6} + Locale: ${Locale:-en_US} + LangPacks: ${LangPacks:-None} + image: ${DOCKER_REGISTRY}/${CuramVersion}/${IMAGE_PREFIX:?'IMAGE_PREFIX' must be specified}_utilities:${IMAGE_TAG:-untagged} + batch: + build: + context: . + dockerfile: Batch.Dockerfile + args: + WLP_VERSION: ${LibertyImageVersion:?'LibertyImageVersion' must be set!} + ANT_VERSION: ${ANT_VERSION:-1.10.6} + labels: + InstallerBuildID: ${actualInstallerBuildId:-NotSet} + LibertyVersion: ${LibertyImageVersion:?'LibertyImageVersion' must be set!} + CuramVersion: ${VERSION_VALUE} + CuramConfiguration: ${CuramInstallation:-NotSet} + AntVersion: ${ANT_VERSION:-1.10.6} + Locale: ${Locale:-en_US} + LangPacks: ${LangPacks:-None} + image: ${DOCKER_REGISTRY}/${CuramVersion}/${IMAGE_PREFIX:?'IMAGE_PREFIX' must be specified}_batch:${IMAGE_TAG:-untagged} + links: + - db2:db2container diff --git a/helm-charts/apps/.helmignore b/helm-charts/apps/.helmignore index 6365a14c..2fcdbdf6 100644 --- a/helm-charts/apps/.helmignore +++ b/helm-charts/apps/.helmignore @@ -21,4 +21,6 @@ *.tmproj .vscode/ # Convenience file for testing -euswg.yaml \ No newline at end of file +euswg.yaml +# IBMDev +cv-tests/ diff --git a/helm-charts/apps/Chart.yaml b/helm-charts/apps/Chart.yaml index 30afc32c..02596d59 100644 --- a/helm-charts/apps/Chart.yaml +++ b/helm-charts/apps/Chart.yaml @@ -13,10 +13,12 @@ # See the License for the specific language governing permissions and # limitations under the License. ############################################################################### -apiVersion: v1 +apiVersion: v2 +kubeVersion: ">=1.16" +appVersion: "7.0.10.0" name: apps description: Helm Chart for Deployment of Curam SPM Applications within a Kubernetes Cluster -version: 2.1.0 +version: 3.0.0 maintainers: - name: Cúram SPM Dev Team url: https://github.com/IBM/spm-kubernetes @@ -30,5 +32,16 @@ keywords: - RHOS - Curam - SPM + - amd64 + - deploy + - DevOps + - Commercial + - Limited home: https://www.ibm.com/watson-health/solutions/social-program-management icon: https://avatars2.githubusercontent.com/u/1459110 +dependencies: + - name: ibm-sch + repository: "@sch" + version: "^1.2.17" + alias: sch + condition: global.sch.enabled diff --git a/helm-charts/apps/README.md b/helm-charts/apps/README.md new file mode 100644 index 00000000..c8b6bf7f --- /dev/null +++ b/helm-charts/apps/README.md @@ -0,0 +1,37 @@ +# apps + +## Introduction + +* The Apps chart is a component of IBM Curam Social Program Management (SPM) Platform responsible for providing the Liberty runtime of the application. + +## Chart Details + +* Deployment of a single pod listening on port 8443 +* Exposed to the cluster using a service for potential load balancing + +## Prerequisites + +* Kubernetes 1.16 or later +* Helm 3.0.0 or later +* [`PodDisruptionBudgets`](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) are recommended for high resiliency in an application during risky operations, such as draining a node for maintenance or scaling down a cluster. +* Access to a populated enterprise database. + +### PodSecurityPolicy Requirements + +Custom PodSecurityPolicy definition: + +``` +Not required as the underlying WebSphere Liberty server runs with the default restricted policy +``` + +### SecurityContextConstraints Requirements + +Custom SecurityContextConstraints definition: + +``` +Not required as the underlying WebSphere Liberty server runs with the default restricted policy +``` + +## Configuration + +See [README.md](../spm) in the `spm` umbrella chart. diff --git a/helm-charts/apps/RELEASENOTES.md b/helm-charts/apps/RELEASENOTES.md new file mode 100644 index 00000000..c5579208 --- /dev/null +++ b/helm-charts/apps/RELEASENOTES.md @@ -0,0 +1,76 @@ +# What's new + +* OpenShift support introduced +* Runs with `restricted` (default) pod security policy + +### Fixes + +# Breaking Changes + +* The structure of values for configuring the Liberty runtime of the application has changed + + | Old property | New property | Default value | Comment | + | ------------ | ------------ | ------------- | ------- | + | `global.apps.common.cookieHttpOnly` | `sessionConfig.cookie.httpOnly` | `true` | Value relocated from `configmaps` chart. | + | `global.apps.common.initialDelaySeconds` | `initialDelaySeconds` | `150` | Reduced from 300 set previously. | + | `global.apps.common.loginTrace` | `loginConfig.trace` | `true` | Value relocated from `configmaps` chart. | + | `global.apps.common.port` | `httpsPort` | `8443` | Port configuration has been separated from other deployment components. | + | `global.apps.config.rest.enabled` | Updated | `false` | The Rest application was previously marked to deploy by default. | + | `global.apps.common.runAs` | Removed | `-` | Overriding the user for running the application is not supported by `restricted` security policies. | + | `global.apps.common.security.*` | `systemUser.*` | See [values.yaml](./values.yaml#L235) | Specifies the system user for consuming JMS messages (user must exist in the Curam database). | + | `global.apps.common.sessionTimeout` | `sessionConfig.sessionTimeout` | `30m` | Value relocated from `configmaps` chart. | + | `global.apps.common.transactionTimeout` | `sessionConfig.transactionTimeout` | `3m` | Value relocated from `configmaps` chart. | + | `global.commonAppConfig.maxInMemorySessionCount` | `sessionConfig.maxInMemorySessionCount` | `1000` | Value relocated from `configmaps` chart. | + | `global.commonAppConfig.ltpa.*` | Replaced | `-` | The previously hard-coded LTPA keys have been removed are now generated using `pre-install` and `pre-upgrade` hooks. | + | `global.resources.*` | `defaultResources.*` | See [values.yaml](./values.yaml#L269) | Default resources have been reduced for less cluttered configuration of the deployed applications. | + | `global.xmlserver.port` | Removed | `- `| Specifying the XML server port is not relevant in the Kubernetes environment. | + + +* The new values must be nest under `apps`, when specifying values using the umbrella chart to take effect, for example: + + ```yaml + apps: + httpsPort: 9443 + sessionConfig: + sessionTimeout: 60m + loginConfig: + trace: false + ``` + +## Prerequisites + +* See README.md + +# Version History + +## v3.0.0 + +* Reduce privilege requirements to run with the `restricted` security policy +* Switch to a custom utility image for the init containers to run within the `restricted` security policy +* Add a liveness probe script to detect loss of connection to database or MQ servers +* Chart values have been reorganised for improved readability +* Relocated all ConfigMaps for configuring Liberty to the `apps` chart +* System credentials are securely stored in Secret objects +* Added `pre-install` hooks for securely generating LTPA keys + +## v2.1.0 + +* Technical Preview of OpenShift +* Change to UBI base images +* Add options for persisting JMX stats to a persistent volume +* Add reference configuration for integrating with IBM Security Access Manager using SAML 2.0 + +## v2.0.0 + +* Split of producers and consumers of JMS messages into separate deployment units +* Relocated all configuration from image to chart +* Add options for persisting logs to a persistent volume +* Add options for overriding JVM arguments on a per-application basis + +## v1.1.0 + +* Initial release + +## v1.0.0 + +* Limited availability preview diff --git a/helm-charts/apps/templates/NOTES.txt b/helm-charts/apps/templates/NOTES.txt new file mode 100644 index 00000000..f1d654f4 --- /dev/null +++ b/helm-charts/apps/templates/NOTES.txt @@ -0,0 +1,7 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +The Liberty instances are not exposed by default. + +A Route/Ingress resource must be created to expose the Liberty pod(s). + +Service name: {{ include "sch.names.fullName" (list .) }}.{{ .Release.Namespace }}.svc +Service port: {{ .Values.httpsPort }} \ No newline at end of file diff --git a/helm-charts/apps/templates/_database.tpl b/helm-charts/apps/templates/_database.tpl new file mode 100644 index 00000000..a5772d18 --- /dev/null +++ b/helm-charts/apps/templates/_database.tpl @@ -0,0 +1,79 @@ +{{/* +Copyright 2019,2020 IBM Corporation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +{{/* vim: set filetype=mustache: */}} +{{/* +SSL properties for JDBC connection in Liberty. If global.db2.ssl.secretName is provided, assume it has been imported into a Trust Store +*/}} +{{- define "apps.ssljdbc" -}} +{{- if .enabled }} + sslConnection="true" + {{- if .secretName }} + sslTrustStoreLocation="/output/resources/security/db2TrustStore.jks" + sslTrustStorePassword="{xor}PDc+MTg6Nis=" + {{- end }} +{{- end }} +{{- end }} + +{{/* +Liberty Datastore properties fragment +*/}} +{{- define "apps.dsprops.fragment" -}} +{{- $dbConfig := .Values.global.database -}} +{{- if eq ($dbConfig.type | upper) "DB2" -}} + +{{- else if eq ($dbConfig.type | upper) "ORA" -}} + +{{- else -}} +{{ fail ("Unsupported database type provided: " $dbConfig.type) }} +{{- end -}} +{{- end -}} + +{{/* +Oracle JDBC URL +*/}} +{{- define "apps.oracleurl" -}} +{{- $dbConfig := .Values.global.database -}} +{{- if $dbConfig.serviceName -}} +jdbc:oracle:thin:/@//{{ $dbConfig.hostname }}:{{ $dbConfig.port }}/{{ $dbConfig.serviceName }} +{{- else -}} +jdbc:oracle:thin:@{{ $dbConfig.hostname }}:{{ $dbConfig.port }}:{{ $dbConfig.dbName }} +{{- end }} +{{- end }} + +{{/* +JDBC Connection driver JAR list +*/}} +{{- define "apps.dbdriver.jars" -}} +{{- if eq (.type | upper) "DB2" -}} +db2jcc4.jar db2jcc_license_cu.jar +{{- else if eq (.type | upper) "ORA" -}} +ojdbc.jar +{{- else -}} +{{ fail ("Unsupported database type provided: " .type) }} +{{- end -}} +{{- end -}} diff --git a/helm-charts/apps/templates/_helpers.tpl b/helm-charts/apps/templates/_helpers.tpl index 04bc7f3d..fe135af2 100644 --- a/helm-charts/apps/templates/_helpers.tpl +++ b/helm-charts/apps/templates/_helpers.tpl @@ -15,45 +15,10 @@ limitations under the License. */}} {{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. - -Accepted Values: - Curam,CuramWebServices,Rest,CuramBIRTViewer,CitizenPortal,MDTWorkspace,NavigatorS,NavigatorNS,CPMExternalS,CPMExternalNS -*/}} -{{- define "apps.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "apps.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "apps.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - {{/* Create the image pull secret */}} -{{- define "imagePullSecret" }} +{{- define "apps.imagePullSecret" }} {{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .registry (printf "%s:%s" .username (required "Credentials password is required" .password) | b64enc) | b64enc }} {{- end }} @@ -71,17 +36,6 @@ Build up full image path {{- .ImageName -}}:{{- .ImageConfig.imageTag -}} {{- end -}} -{{/* -Define DB2 hostname -*/}} -{{- define "apps.dbhostname" -}} -{{- if .Values.global.database.hostname -}} -{{- .Values.global.database.hostname -}} -{{- else -}} -{{- .Release.Name -}}-db2 -{{- end -}} -{{- end -}} - {{/* Folder name where the Liberty application will store its logs */}} @@ -125,14 +79,75 @@ JMX Stats Persistence enablement options {{- end -}} {{/* -Common labels +InitContainer resources */}} -{{- define "apps.labels" -}} -app.kubernetes.io/name: {{ include "apps.name" . }} -helm.sh/chart: {{ include "apps.chart" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- define "initContainer.resources" }} +resources: + limits: + memory: 256Mi + cpu: 250m + requests: + memory: 128Mi + cpu: 250m +{{- end }} + +{{/* +InitContainer resources for applying custom SQL +*/}} +{{- define "customSQL.definition" }} +image: {{ include "apps.imageFullName" (dict "ImageConfig" $.Values.global.images "ImageName" "batch") }} +{{- include "initContainer.resources" $ }} +{{- include "sch.security.securityContext" (list $ $.sch.chart.containerSecurityContext) }} +{{- end }} + +{{/* +ibmjava image +*/}} +{{- define "utilities.definition" }} +image: {{ include "apps.imageFullName" (dict "ImageConfig" $.Values.global.images "ImageName" "utilities") }} +{{- include "initContainer.resources" $ }} +{{- include "sch.security.securityContext" (list $ $.sch.chart.containerSecurityContext) }} +{{- end }} + +{{/* +JMS Connection Factory properties +*/}} +{{- define "jms.connectionFactory" }} + +{{- end }} + +{{/* +JMS Activation Spec properties +*/}} +{{- define "jms.activationSpec" }} +{{- $params := . -}} +{{- $root := first $params -}} +{{- $type := (include "sch.utils.getItem" (list $params 1 "")) -}} +{{- $refName := (include "sch.utils.getItem" (list $params 2 "")) -}} + {{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end -}} diff --git a/helm-charts/apps/templates/_sch-chart-config.tpl b/helm-charts/apps/templates/_sch-chart-config.tpl new file mode 100644 index 00000000..fd8680c6 --- /dev/null +++ b/helm-charts/apps/templates/_sch-chart-config.tpl @@ -0,0 +1,27 @@ +{{- /* +".sch.chart.config.values" contains the default configuration values used by +the Shared Configurable Helpers overridden for this chart. +*/ -}} +{{- define "apps.sch.chart.config.values" -}} +sch: + chart: + labelType: "prefixed" + metering: + productName: "IBM Curam Social Program Management Platform" + productVersion: "7.0.10" + productID: "1bba719a1b4744a9901f85563744c0d1" + podSecurityContext: + hostIPC: false + hostNetwork: false + hostPID: false + securityContext: + runAsNonRoot: true + containerSecurityContext: + securityContext: + privileged: false + readOnlyRootFilesystem: false + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL +{{- end -}} diff --git a/helm-charts/configmaps/templates/configmap-applications.yaml b/helm-charts/apps/templates/configmaps/configmap-applications.yaml similarity index 76% rename from helm-charts/configmaps/templates/configmap-applications.yaml rename to helm-charts/apps/templates/configmaps/configmap-applications.yaml index cf314e51..c02bc830 100644 --- a/helm-charts/configmaps/templates/configmap-applications.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-applications.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -19,6 +21,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-applications-cm namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: server_applications.xml: | @@ -27,9 +31,9 @@ data: diff --git a/helm-charts/configmaps/templates/configmap-birt-bind.yaml b/helm-charts/apps/templates/configmaps/configmap-birt-bind.yaml similarity index 92% rename from helm-charts/configmaps/templates/configmap-birt-bind.yaml rename to helm-charts/apps/templates/configmaps/configmap-birt-bind.yaml index b80d4810..1777e1df 100644 --- a/helm-charts/configmaps/templates/configmap-birt-bind.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-birt-bind.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -18,6 +20,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-birt-bind namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: application_CuramBIRTViewer.xml: | diff --git a/helm-charts/apps/templates/configmaps/configmap-bootstrap.yaml b/helm-charts/apps/templates/configmaps/configmap-bootstrap.yaml new file mode 100644 index 00000000..ef0e16ce --- /dev/null +++ b/helm-charts/apps/templates/configmaps/configmap-bootstrap.yaml @@ -0,0 +1,83 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +{{- if .Values.global.sch.enabled -}} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Release.Name }}-bootstrap-cm + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} +data: + Bootstrap.properties: | + # Placed by Kubernetes Configmap. + curam.environment.bindings.location=/tmp + curam.dmx.locale=en_US + + curam.db.type={{ .Values.global.database.type | upper }} + curam.db.servername={{ .Values.global.database.hostname }} + curam.db.serverport={{ required "Database server port is required (global.database.port)." .Values.global.database.port }} + curam.db.username=${sysenv.SPM_DB_USR} + curam.db.password=${sysenv.SPM_DB_PSW} + curam.db.name={{ .Values.global.database.dbName }} + {{- if eq (.Values.global.database.type | upper) "ORA" }} + {{- if .Values.global.database.serviceName }} + curam.db.oracle.servicename={{ .Values.global.database.serviceName }} + {{- end }} + {{- end }} + + {{- if eq (.Values.global.database.type | upper) "DB2" }} + {{ if .Values.global.database.ssl.enabled }} + curam.db2.ssl=true + {{- if .Values.global.database.ssl.secretName }} + # Import must be handled by an initContainer + curam.db2.ssl.truststore.location=/mnt/keystores/db2TrustStore.jks + curam.db2.ssl.truststore.password=changeit + {{- end }} + {{- end }} + db2.is.remote=true + {{- end }} + + curam.db.override.bindings= + curam.environment.default.dateformat=dd MM yyyy + curam.environment.default.dateseparator=/ + curam.database.shortnames= + curam.test.override.date= + + curam.disable.dynamic.properties= + curam.db.disable.bindings.generation= + curam.environment.tnameserv.port=1221 + curam.custom.workflow.webservicebpo= + curam.searchserver.server.index.persistence.enable=true + + # Oracle Database + curam.db.oracle.cachesize= + curam.db.oracle.connectioncache.enabled= + curam.db.oracle.connectioncache.minlimit= + curam.db.oracle.connectioncache.maxlimit= + curam.db.oracle.connectioncache.initiallimit= + curam.db.oracle.connectioncache.name= + + # DB2 on z/OS + curam.db.zos.32ktablespace= + curam.db.zos.encoding=EBCDIC + curam.db.zos.dbname= + curam.db.zos.asciidatabase= + curam.db.zos.enableforeignkeys= +{{- end }} diff --git a/helm-charts/apps/templates/configmap-customsql.yaml b/helm-charts/apps/templates/configmaps/configmap-customsql.yaml similarity index 91% rename from helm-charts/apps/templates/configmap-customsql.yaml rename to helm-charts/apps/templates/configmaps/configmap-customsql.yaml index f6d97ef4..fcf2d471 100644 --- a/helm-charts/apps/templates/configmap-customsql.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-customsql.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -18,15 +20,17 @@ # # Note: Custom SQL files are only loaded if apps curam is enabled # + apiVersion: v1 kind: ConfigMap metadata: name: {{ .Release.Name }}-customsql-cm namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: xmlserver.sql: | UPDATE PROPERTIES SET VALUE='{{ $.Release.Name }}-xmlserver' WHERE NAME='curam.xmlserver.host'; - UPDATE PROPERTIES SET VALUE='{{ $.Values.global.xmlserver.port }}' WHERE NAME='curam.xmlserver.port'; {{- if $.Values.global.apps.common.persistence.enabled }} {{- if $.Values.global.apps.common.persistence.jmxstats.enabled }} jmxstats.sql: | diff --git a/helm-charts/configmaps/templates/configmap-dbconn.yaml b/helm-charts/apps/templates/configmaps/configmap-dbconn.yaml similarity index 83% rename from helm-charts/configmaps/templates/configmap-dbconn.yaml rename to helm-charts/apps/templates/configmaps/configmap-dbconn.yaml index 437f9c70..388cad30 100644 --- a/helm-charts/configmaps/templates/configmap-dbconn.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-dbconn.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -18,6 +20,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-dbconn-cm namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: server_resources_jdbc.xml: | @@ -26,7 +30,7 @@ data: - + @@ -37,14 +41,14 @@ data: isolationLevel="TRANSACTION_READ_COMMITTED" jdbcDriverRef="CuramJdbcDriver" type="javax.sql.XADataSource" > - {{- include "configmaps.dsprops.fragment" . | nindent 8 }} + {{- include "apps.dsprops.fragment" . | nindent 8 }} - {{- include "configmaps.dsprops.fragment" . | nindent 8 }} + {{- include "apps.dsprops.fragment" . | nindent 8 }} - {{- include "configmaps.dsprops.fragment" . | nindent 8 }} + {{- include "apps.dsprops.fragment" . | nindent 8 }} diff --git a/helm-charts/configmaps/templates/configmap-endpoints.yaml b/helm-charts/apps/templates/configmaps/configmap-endpoints.yaml similarity index 84% rename from helm-charts/configmaps/templates/configmap-endpoints.yaml rename to helm-charts/apps/templates/configmaps/configmap-endpoints.yaml index ee311f33..629e22f2 100644 --- a/helm-charts/configmaps/templates/configmap-endpoints.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-endpoints.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -18,10 +20,12 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-endpoints-cm namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: server_endpoints.xml: | - + diff --git a/helm-charts/apps/templates/configmap-isam.yaml b/helm-charts/apps/templates/configmaps/configmap-isam.yaml similarity index 92% rename from helm-charts/apps/templates/configmap-isam.yaml rename to helm-charts/apps/templates/configmaps/configmap-isam.yaml index 97158492..feafa278 100644 --- a/helm-charts/apps/templates/configmap-isam.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-isam.yaml @@ -1,3 +1,4 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} {{- if $.Values.global.isam.enabled }} --- ############################################################################### @@ -21,6 +22,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-isam-cm namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: server_isam.xml: | @@ -53,4 +56,4 @@ data: -{{- end }} \ No newline at end of file +{{- end }} diff --git a/helm-charts/configmaps/templates/configmap-jms-consumer-bind.yaml b/helm-charts/apps/templates/configmaps/configmap-jms-consumer-bind.yaml similarity index 94% rename from helm-charts/configmaps/templates/configmap-jms-consumer-bind.yaml rename to helm-charts/apps/templates/configmaps/configmap-jms-consumer-bind.yaml index b7499f8a..d488737f 100644 --- a/helm-charts/configmaps/templates/configmap-jms-consumer-bind.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-jms-consumer-bind.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -18,6 +20,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-jms-consumer-bind namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: application_CuramServerCode.xml: | diff --git a/helm-charts/configmaps/templates/configmap-jms-consumer-security.yaml b/helm-charts/apps/templates/configmaps/configmap-jms-consumer-security.yaml similarity index 88% rename from helm-charts/configmaps/templates/configmap-jms-consumer-security.yaml rename to helm-charts/apps/templates/configmaps/configmap-jms-consumer-security.yaml index f5eed5fb..521e2d77 100644 --- a/helm-charts/configmaps/templates/configmap-jms-consumer-security.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-jms-consumer-security.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -18,6 +20,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-jms-consumer-security namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: server_security.xml: | @@ -27,6 +31,7 @@ data: + @@ -49,7 +54,7 @@ data: @@ -57,7 +62,7 @@ data: diff --git a/helm-charts/configmaps/templates/configmap-jms-producer-bind.yaml b/helm-charts/apps/templates/configmaps/configmap-jms-producer-bind.yaml similarity index 95% rename from helm-charts/configmaps/templates/configmap-jms-producer-bind.yaml rename to helm-charts/apps/templates/configmaps/configmap-jms-producer-bind.yaml index 9ee47e6f..3073d92b 100644 --- a/helm-charts/configmaps/templates/configmap-jms-producer-bind.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-jms-producer-bind.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -18,6 +20,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-jms-producer-bind namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: application_CuramServerCode.xml: | diff --git a/helm-charts/configmaps/templates/configmap-jms-producer-security.yaml b/helm-charts/apps/templates/configmaps/configmap-jms-producer-security.yaml similarity index 85% rename from helm-charts/configmaps/templates/configmap-jms-producer-security.yaml rename to helm-charts/apps/templates/configmaps/configmap-jms-producer-security.yaml index 0078b03e..61514510 100644 --- a/helm-charts/configmaps/templates/configmap-jms-producer-security.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-jms-producer-security.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -18,6 +20,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-jms-producer-security namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: server_security.xml: | @@ -27,6 +31,7 @@ data: + @@ -51,9 +56,9 @@ data: @@ -62,9 +67,9 @@ data: diff --git a/helm-charts/apps/templates/configmap-jvm-options-override.yaml b/helm-charts/apps/templates/configmaps/configmap-jvm-options-override.yaml similarity index 88% rename from helm-charts/apps/templates/configmap-jvm-options-override.yaml rename to helm-charts/apps/templates/configmaps/configmap-jvm-options-override.yaml index 3cbf6438..383fec2c 100644 --- a/helm-charts/apps/templates/configmap-jvm-options-override.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-jvm-options-override.yaml @@ -1,3 +1,4 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} {{- range $name, $app := .Values.global.apps.config }} {{- if $app.enabled }} --- @@ -22,6 +23,8 @@ kind: ConfigMap metadata: name: {{ $.Release.Name }}-jvm-override-{{ $name }} namespace: {{ $.Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list $ $name) | nindent 4 }} data: jvm.options: | # Placed by Kubernetes Configmap @@ -32,4 +35,4 @@ data: {{- include "persistence.jmxStats" | nindent 4 -}} {{- end -}} {{- end }} -{{- end }} \ No newline at end of file +{{- end }} diff --git a/helm-charts/configmaps/templates/configmap-jvm-options.yaml b/helm-charts/apps/templates/configmaps/configmap-jvm-options.yaml similarity index 88% rename from helm-charts/configmaps/templates/configmap-jvm-options.yaml rename to helm-charts/apps/templates/configmaps/configmap-jvm-options.yaml index 3e3612a8..8037b6a8 100644 --- a/helm-charts/configmaps/templates/configmap-jvm-options.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-jvm-options.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -18,6 +20,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-jvm-options-cm namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: jvm.options: | # Placed by Kubernetes Configmap @@ -32,5 +36,3 @@ data: -verbose:gc -Xverbosegclog:verbosegc.log {{- end }} - # Enable Beta features in Liberty 20.0.0.5 - -Dcom.ibm.ws.beta.edition=true \ No newline at end of file diff --git a/helm-charts/configmaps/templates/configmap-log4j.yaml b/helm-charts/apps/templates/configmaps/configmap-log4j.yaml similarity index 90% rename from helm-charts/configmaps/templates/configmap-log4j.yaml rename to helm-charts/apps/templates/configmaps/configmap-log4j.yaml index 6967cbd0..c6dcef61 100644 --- a/helm-charts/configmaps/templates/configmap-log4j.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-log4j.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -18,6 +20,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-log4j-cm namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: log4j-config.xml: | diff --git a/helm-charts/configmaps/templates/configmap-logging.yaml b/helm-charts/apps/templates/configmaps/configmap-logging.yaml similarity index 90% rename from helm-charts/configmaps/templates/configmap-logging.yaml rename to helm-charts/apps/templates/configmaps/configmap-logging.yaml index e0c356a6..d391cd0d 100644 --- a/helm-charts/configmaps/templates/configmap-logging.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-logging.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -18,6 +20,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-logging-cm namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: server_logging.xml: | diff --git a/helm-charts/mqserver/templates/configmap-messaging.yaml b/helm-charts/apps/templates/configmaps/configmap-messaging.yaml similarity index 51% rename from helm-charts/mqserver/templates/configmap-messaging.yaml rename to helm-charts/apps/templates/configmaps/configmap-messaging.yaml index 6ab4f7dc..e0e01303 100644 --- a/helm-charts/mqserver/templates/configmap-messaging.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-messaging.yaml @@ -1,3 +1,4 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} --- ############################################################################### # Copyright 2019,2020 IBM Corporation @@ -20,6 +21,8 @@ kind: ConfigMap metadata: name: {{ $.Release.Name }}-messaging-config namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: server_resources_messaging.xml: | @@ -44,6 +47,8 @@ data: + + {{- if .Values.global.mq.useConnectionNameList }} {{- else }} @@ -52,18 +57,7 @@ data: {{- end }} - + {{- include "jms.activationSpec" (list . "Queue" "DPEnactment") | nindent 8 }} @@ -71,18 +65,7 @@ data: - + {{- include "jms.activationSpec" (list . "Queue" "DPError") | nindent 8 }} @@ -90,18 +73,7 @@ data: - + {{- include "jms.activationSpec" (list . "Queue" "WorkflowEnactment") | nindent 8 }} @@ -109,18 +81,7 @@ data: - + {{- include "jms.activationSpec" (list . "Queue" "WorkflowActivity") | nindent 8 }} @@ -128,18 +89,7 @@ data: - + {{- include "jms.activationSpec" (list . "Queue" "WorkflowError") | nindent 8 }} @@ -147,18 +97,7 @@ data: - + {{- include "jms.activationSpec" (list . "Queue" "CuramDeadMessageQueue") | nindent 8 }} @@ -167,67 +106,32 @@ data: - + {{- include "jms.activationSpec" (list . "Topic" "CuramCacheInvalidationTopic") | nindent 8 }} - + {{- include "jms.activationSpec" (list . "Topic" "CuramCacheInvalidationTopic") | nindent 8 }} - - + + + {{- include "jms.connectionFactory" . | nindent 8 }} - - + + + {{- include "jms.connectionFactory" . | nindent 8 }} diff --git a/helm-charts/configmaps/templates/configmap-openldap.yaml b/helm-charts/apps/templates/configmaps/configmap-openldap.yaml similarity index 91% rename from helm-charts/configmaps/templates/configmap-openldap.yaml rename to helm-charts/apps/templates/configmaps/configmap-openldap.yaml index 2745990e..05612e4c 100644 --- a/helm-charts/configmaps/templates/configmap-openldap.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-openldap.yaml @@ -1,3 +1,4 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} {{- if $.Values.global.openldap.enabled }} --- ############################################################################### @@ -21,6 +22,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-openldap-cm namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: server_openldap.xml: | diff --git a/helm-charts/configmaps/templates/configmap-server.yaml b/helm-charts/apps/templates/configmaps/configmap-server.yaml similarity index 93% rename from helm-charts/configmaps/templates/configmap-server.yaml rename to helm-charts/apps/templates/configmaps/configmap-server.yaml index e0cd1e63..7cc39275 100644 --- a/helm-charts/configmaps/templates/configmap-server.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-server.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -18,6 +20,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-server-cm namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: server.xml: | diff --git a/helm-charts/configmaps/templates/configmap-sessions.yaml b/helm-charts/apps/templates/configmaps/configmap-sessions.yaml similarity index 84% rename from helm-charts/configmaps/templates/configmap-sessions.yaml rename to helm-charts/apps/templates/configmaps/configmap-sessions.yaml index d1f878f4..5f1fa022 100644 --- a/helm-charts/configmaps/templates/configmap-sessions.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-sessions.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -18,6 +20,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-sessions-cm namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: sessions_management.xml: | @@ -31,7 +35,7 @@ data: jdbcDriverRef="CuramJdbcDriver" type="javax.sql.XADataSource"> isolationLevel="TRANSACTION_READ_COMMITTED" > - {{- include "configmaps.dsprops.fragment" . | nindent 8 }} + {{- include "apps.dsprops.fragment" . | nindent 8 }} diff --git a/helm-charts/configmaps/templates/configmap-transactions.yaml b/helm-charts/apps/templates/configmaps/configmap-transactions.yaml similarity index 72% rename from helm-charts/configmaps/templates/configmap-transactions.yaml rename to helm-charts/apps/templates/configmaps/configmap-transactions.yaml index 033cc07a..c1e01041 100644 --- a/helm-charts/configmaps/templates/configmap-transactions.yaml +++ b/helm-charts/apps/templates/configmaps/configmap-transactions.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -18,6 +20,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-transactions-cm namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: server_resources_tx.xml: | @@ -25,9 +29,9 @@ data: diff --git a/helm-charts/apps/templates/deployment-consumer.yaml b/helm-charts/apps/templates/deployment-consumer.yaml index 51fc4a6a..00320412 100644 --- a/helm-charts/apps/templates/deployment-consumer.yaml +++ b/helm-charts/apps/templates/deployment-consumer.yaml @@ -1,6 +1,8 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +{{- $dbHostname := .Values.global.database.hostname -}} {{- range $name, $app := .Values.global.apps.config }} {{- if and $app.enabled (not $app.producerOnly) }} -{{- $imageData := dict "ImageConfig" $.Values.global.images "ImageName" $name }} +{{- $imageData := dict "ImageConfig" $.Values.global.images "ImageName" "servercode" }} --- ############################################################################### # Copyright 2019,2020 IBM Corporation @@ -21,31 +23,31 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: {{ include "apps.fullname" $ }}-{{ $name }}-consumer + name: {{ include "sch.names.fullCompName" (list $ (printf "%s-consumer" $name)) }} namespace: {{ $.Release.Namespace }} labels: -{{ include "apps.labels" $ | indent 4 }} + {{- include "sch.metadata.labels.standard" (list $ (printf "%s-consumer" $name)) | nindent 4 }} spec: - replicas: {{ $app.replicaCount | default 1 }} + replicas: {{ default $.Values.replicaCount $app.replicaCount }} selector: matchLabels: - app.kubernetes.io/name: {{ include "apps.fullname" $ }}-{{ $name }}-consumer - app.kubernetes.io/instance: {{ $.Release.Name }} + {{- include "sch.metadata.labels.standard" (list $ (printf "%s-consumer" $name)) | nindent 6 }} template: metadata: labels: - app.kubernetes.io/name: {{ include "apps.fullname" $ }}-{{ $name }}-consumer - app.kubernetes.io/instance: {{ $.Release.Name }} + {{- include "sch.metadata.labels.standard" (list $ (printf "%s-consumer" $name)) | nindent 8 }} + annotations: + {{- include "sch.metadata.annotations.metering" (list $ $.sch.chart.metering) | indent 8 }} spec: - {{- with $.Values.global.apps.common.runAs }} - securityContext: - runAsUser: {{ . }} - {{- end }} + {{- include "sch.security.securityContext" (list $ $.sch.chart.podSecurityContext) | indent 6 }} + affinity: + {{- include "sch.affinity.nodeAffinity" (list $ $.sch.chart.nodeAffinity) | indent 8 }} {{- if $.Values.global.imagePullSecret.username }} imagePullSecrets: - name: {{ $.Release.Name }}-pull-secret {{- end }} restartPolicy: {{ $app.restartPolicy | default "Always" }} + serviceAccountName: {{ default (include "sch.names.fullName" (list $)) $.Values.serviceAccountName }} volumes: - name: server-cm configMap: @@ -86,23 +88,15 @@ spec: - name: security-cm configMap: name: {{ $.Release.Name }}-jms-consumer-security - - name: ltpa-keys-cm - configMap: - name: {{ $.Release.Name }}-ltpa-keys-cm - {{- if eq $name "curam" }} - - name: customsql-files - configMap: - name: {{ $.Release.Name }}-customsql-cm - - name: bootstrap-file - configMap: - name: {{ $.Release.Name }}-bootstrap-cm - {{- end }} + - name: ltpa-secret + secret: + secretName: {{ default (printf "%s-ltpa-keys" $.Release.Name) $.Values.ltpaKeys.secretName }} - name: keystore-volume emptyDir: {} - name: service-certs secret: {{- if $.Capabilities.APIVersions.Has "route.openshift.io/v1" }} - secretName: {{ include "apps.fullname" $ }}-{{ $name }} + secretName: {{ include "sch.names.fullCompName" (list $ $name) }} {{- else }} secretName: {{ $.Release.Name }}-apps-tls {{- end }} @@ -127,39 +121,35 @@ spec: {{- end }} initContainers: - name: wait-for-database - image: busybox:1.28 + {{- include "utilities.definition" $ | indent 10 }} command: - /bin/sh - -c - > - until nslookup {{ include "apps.dbhostname" $ }}; do - echo waiting for {{ include "apps.dbhostname" $ }} to be available...; - sleep 2; - done; - until nc -z -w3 {{ include "apps.dbhostname" $ }} {{ $.Values.global.database.port | default 50000 }}; do - echo waiting for {{ include "apps.dbhostname" $ }}:{{ $.Values.global.database.port | default 50000 }} to be reachable; + until nc -z -w3 {{ $dbHostname }} {{ $.Values.global.database.port }}; do + echo waiting for {{ $dbHostname }}:{{ $.Values.global.database.port }} to be reachable; sleep 2; done; - echo waiting {{ $.Values.global.database.initTime | default 120 }} additional seconds...; - sleep {{ $.Values.global.database.initTime | default 120 }}; + echo waiting {{ $.Values.global.database.initTime }} additional seconds...; + sleep {{ $.Values.global.database.initTime }}; {{- if not (hasKey $app "mqConnectionNameList") }} - name: wait-for-mq - image: busybox:1.28 + {{- include "utilities.definition" $ | indent 10 }} command: - /bin/sh - -c - > - until nslookup {{ $.Release.Name }}-mqserver-{{ $name }}; do - echo waiting for {{ $.Release.Name }}-mqserver-{{ $name }} to be available...; + until nc -z -w3 {{ $.Release.Name }}-mqserver-{{ $name }} 1414; do + echo waiting for {{ $.Release.Name }}-mqserver-{{ $name }}:1414 to be reachable; sleep 2; - done + done; {{- end }} {{- if and (eq ($.Values.global.database.type | upper) "DB2") $.Values.global.database.ssl.enabled $.Values.global.database.ssl.secretName }} - name: import-db2-cert - image: ibmjava:8-sdk + {{- include "utilities.definition" $ | indent 10 }} env: - name: certfile - value: /mnt/certificates/{{ $.Values.global.database.ssl.certFile | default "db2admin.arm" }} + value: /mnt/certificates/{{ $.Values.global.database.ssl.secretKey }} - name: keystore_jks value: /mnt/keystores/db2TrustStore.jks command: @@ -173,7 +163,7 @@ spec: mountPath: /mnt/certificates {{- end }} - name: import-tls-certs - image: ibmjava:8-sdk + {{- include "utilities.definition" $ | indent 10 }} env: - name: svcKeyFile value: /mnt/svcCertificates/tls.key @@ -196,7 +186,7 @@ spec: mountPath: /mnt/svcCertificates {{- if $.Values.global.mq.tlsSecretName }} - name: import-certs-for-mq - image: ibmjava:8-sdk + {{- include "utilities.definition" $ | indent 10 }} env: - name: mqCrtFile value: /mnt/mqCertificates/tls.crt @@ -221,26 +211,28 @@ spec: mountPath: /mnt/mqCertificates {{- end }} - name: wait-for-curam - image: busybox:1.28 + {{- include "utilities.definition" $ | indent 10 }} command: - /bin/sh - -c - > - until nslookup {{ include "apps.fullname" $ }}-curam; do - echo waiting for {{ include "apps.fullname" $ }}-curam to be available...; - sleep 2; - done; - until nc -z -w3 {{ include "apps.fullname" $ }}-curam {{ $.Values.global.apps.common.port | default 8443 }}; do - echo waiting for {{ include "apps.fullname" $ }}-curam:{{ $.Values.global.apps.common.port | default 8443 }} to be reachable; + until nc -z -w3 {{ include "sch.names.fullCompName" (list $ "curam") }} {{ $.Values.httpsPort }}; do + echo waiting for {{ include "sch.names.fullCompName" (list $ "curam") }}:{{ $.Values.httpsPort }} to be reachable; sleep 2; done; containers: - name: {{ $.Chart.Name }}-consumer-{{ $name }} image: {{ include "apps.imageFullName" $imageData }} - imagePullPolicy: {{ $.Values.global.pullPolicy }} + imagePullPolicy: {{ $.Values.global.images.pullPolicy }} + {{- include "sch.security.securityContext" (list . $.sch.chart.containerSecurityContext) | indent 10 }} ports: - name: client - containerPort: {{ $.Values.global.apps.common.port | default 8443 }} + containerPort: {{ $.Values.httpsPort }} + envFrom: + - secretRef: + name: {{ default (printf "%s-db-credentials" $.Release.Name) $.Values.global.database.credsSecretName }} + - secretRef: + name: {{ default (printf "%s-system-credentials" $.Release.Name) $.Values.systemUser.credsSecretName }} env: - name: LICENSE value: {{ $.Values.global.license }} @@ -256,10 +248,11 @@ spec: {{- end }} - name: LOG_DIR value: {{ include "apps.logsDir" $ }} - - name: SYSTEM_USER - value: {{ $.Values.global.apps.common.security.username | default "SYSTEM" }} - - name: SYSTEM_PASSWORD - value: {{ $.Values.global.apps.common.security.password | default "{xor}LCYsLz4sLA==" | quote }} + - name: LTPA_KEYS_PASS + valueFrom: + secretKeyRef: + name: {{ default (printf "%s-ltpa-keys" $.Release.Name) $.Values.ltpaKeys.secretName }} + key: {{ $.Values.ltpaKeys.passwordKey }} {{- if $.Values.global.mq.useConnectionNameList }} - name: MQ_CONN_NAME_LIST value: {{ $app.mqConnectionNameList }} @@ -270,8 +263,15 @@ spec: {{- else }} - name: MQ_HOST_NAME value: {{ $.Release.Name }}-mqserver-{{ $name }} + - name: MQ_CONN_USER + value: app + - name: MQ_CONN_PASS + valueFrom: + secretKeyRef: + name: {{ default (printf "%s-mq-credentials" $.Release.Name) $.Values.global.mq.queueManager.secret.name }} + key: enc_{{ $.Values.global.mq.queueManager.secret.appPasswordKey }} - name: MQ_QMGR_NAME - value: QM1 + value: {{ $.Values.global.mq.queueManager.name }} - name: MQ_CHANNEL_NAME value: MQ_CHN {{- end }} @@ -287,17 +287,14 @@ spec: - {{ include "apps.logsDir" $ }}/messages.log initialDelaySeconds: 90 periodSeconds: 10 - {{- if .resources }} - {{- with .resources }} - resources: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- else }} - {{- with $.Values.global.resources }} + livenessProbe: + exec: + command: + - /bin/sh + - -c + - /opt/ibm/helpers/runtime/liveness-probe.sh {{ include "apps.logsDir" $ }}/messages.log resources: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- end }} + {{- toYaml (default $.Values.defaultResources $app.resources) | nindent 12 }} volumeMounts: - name: server-cm mountPath: /config/server.xml @@ -337,9 +334,9 @@ spec: - name: security-cm mountPath: /config/adc_conf/server_security.xml subPath: server_security.xml - - name: ltpa-keys-cm - mountPath: /opt/ibm/wlp/output/defaultServer/resources/security/ltpa.keys - subPath: ltpa.keys + - name: ltpa-secret + mountPath: /opt/ibm/wlp/output/defaultServer/resources/security/{{ $.Values.ltpaKeys.secretKey }} + subPath: {{ $.Values.ltpaKeys.secretKey }} - name: keystore-volume mountPath: /output/resources/security {{- if $.Values.global.apps.common.persistence.enabled }} diff --git a/helm-charts/apps/templates/deployment-producer.yaml b/helm-charts/apps/templates/deployment-producer.yaml index f9a598df..b6b22a2d 100644 --- a/helm-charts/apps/templates/deployment-producer.yaml +++ b/helm-charts/apps/templates/deployment-producer.yaml @@ -1,7 +1,8 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +{{- $dbHostname := .Values.global.database.hostname -}} {{- range $name, $app := .Values.global.apps.config }} {{- if $app.enabled }} {{- $imageData := dict "ImageConfig" $.Values.global.images "ImageName" $name }} -{{- $batchImageData := dict "ImageConfig" $.Values.global.images "ImageName" "batch" }} --- ############################################################################### # Copyright 2019,2020 IBM Corporation @@ -22,31 +23,31 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: {{ include "apps.fullname" $ }}-{{ $name }}-producer + name: {{ include "sch.names.fullCompName" (list $ (printf "%s-producer" $name)) }} namespace: {{ $.Release.Namespace }} labels: -{{ include "apps.labels" $ | indent 4 }} + {{- include "sch.metadata.labels.standard" (list $ (printf "%s-producer" $name)) | nindent 4 }} spec: - replicas: {{ $app.replicaCount | default 1 }} + replicas: {{ default $.Values.replicaCount $app.replicaCount }} selector: matchLabels: - app.kubernetes.io/name: {{ include "apps.fullname" $ }}-{{ $name }}-producer - app.kubernetes.io/instance: {{ $.Release.Name }} + {{- include "sch.metadata.labels.standard" (list $ (printf "%s-producer" $name) ) | nindent 6 }} template: metadata: labels: - app.kubernetes.io/name: {{ include "apps.fullname" $ }}-{{ $name }}-producer - app.kubernetes.io/instance: {{ $.Release.Name }} + {{- include "sch.metadata.labels.standard" (list $ (printf "%s-producer" $name) ) | nindent 8 }} + annotations: + {{- include "sch.metadata.annotations.metering" (list $ $.sch.chart.metering) | nindent 8 }} spec: - {{- with $.Values.global.apps.common.runAs }} - securityContext: - runAsUser: {{ . }} - {{- end }} + {{- include "sch.security.securityContext" (list $ $.sch.chart.podSecurityContext) | nindent 6 }} + affinity: + {{- include "sch.affinity.nodeAffinity" (list $ $.sch.chart.nodeAffinity) | nindent 8 }} {{- if $.Values.global.imagePullSecret.username }} imagePullSecrets: - name: {{ $.Release.Name }}-pull-secret {{- end }} restartPolicy: {{ $app.restartPolicy | default "Always" }} + serviceAccountName: {{ default (include "sch.names.fullName" (list $)) $.Values.serviceAccountName }} volumes: - name: server-cm configMap: @@ -87,9 +88,9 @@ spec: - name: security-cm configMap: name: {{ $.Release.Name }}-jms-producer-security - - name: ltpa-keys-cm - configMap: - name: {{ $.Release.Name }}-ltpa-keys-cm + - name: ltpa-secret + secret: + secretName: {{ default (printf "%s-ltpa-keys" $.Release.Name) $.Values.ltpaKeys.secretName }} {{- if eq $name "curam" }} - name: customsql-files configMap: @@ -121,7 +122,7 @@ spec: - name: service-certs secret: {{- if $.Capabilities.APIVersions.Has "route.openshift.io/v1" }} - secretName: {{ include "apps.fullname" $ }}-{{ $name }} + secretName: {{ include "sch.names.fullCompName" (list $ $name) }} {{- else }} secretName: {{ $.Release.Name }}-apps-tls {{- end }} @@ -146,39 +147,35 @@ spec: {{- end }} initContainers: - name: wait-for-database - image: busybox:1.28 + {{- include "utilities.definition" $ | indent 10 }} command: - /bin/sh - -c - > - until nslookup {{ include "apps.dbhostname" $ }}; do - echo waiting for {{ include "apps.dbhostname" $ }} to be available...; - sleep 2; - done; - until nc -z -w3 {{ include "apps.dbhostname" $ }} {{ $.Values.global.database.port | default 50000 }}; do - echo waiting for {{ include "apps.dbhostname" $ }}:{{ $.Values.global.database.port | default 50000 }} to be reachable; + until nc -z -w3 {{ $dbHostname }} {{ $.Values.global.database.port }}; do + echo waiting for {{ $dbHostname }}:{{ $.Values.global.database.port }} to be reachable; sleep 2; done; - echo waiting {{ $.Values.global.database.initTime | default 120 }} additional seconds...; - sleep {{ $.Values.global.database.initTime | default 120 }}; + echo waiting {{ $.Values.global.database.initTime }} additional seconds...; + sleep {{ $.Values.global.database.initTime }}; {{- if not (hasKey $app "mqConnectionNameList") }} - name: wait-for-mq - image: busybox:1.28 + {{- include "utilities.definition" $ | indent 10 }} command: - /bin/sh - -c - > - until nslookup {{ $.Release.Name }}-mqserver-{{ $name }}; do - echo waiting for {{ $.Release.Name }}-mqserver-{{ $name }} to be available...; + until nc -z -w3 {{ $.Release.Name }}-mqserver-{{ $name }} 1414; do + echo waiting for {{ $.Release.Name }}-mqserver-{{ $name }}:1414 to be reachable; sleep 2; - done + done; {{- end }} {{- if and (eq ($.Values.global.database.type | upper) "DB2") $.Values.global.database.ssl.enabled $.Values.global.database.ssl.secretName }} - name: import-db2-cert - image: ibmjava:8-sdk + {{- include "utilities.definition" $ | indent 10 }} env: - name: certfile - value: /mnt/certificates/{{ $.Values.global.database.ssl.certFile | default "db2admin.arm" }} + value: /mnt/certificates/{{ $.Values.global.database.ssl.secretKey }} - name: keystore_jks value: /mnt/keystores/db2TrustStore.jks command: @@ -192,7 +189,7 @@ spec: mountPath: /mnt/certificates {{- end }} - name: import-tls-certs - image: ibmjava:8-sdk + {{- include "utilities.definition" $ | indent 10 }} env: - name: svcKeyFile value: /mnt/svcCertificates/tls.key @@ -215,7 +212,7 @@ spec: mountPath: /mnt/svcCertificates {{- if $.Values.global.mq.tlsSecretName }} - name: import-certs-for-mq - image: ibmjava:8-sdk + {{- include "utilities.definition" $ | indent 10 }} env: - name: mqCrtFile value: /mnt/mqCertificates/tls.crt @@ -241,8 +238,14 @@ spec: {{- end }} {{- if eq $name "curam" }} - name: apply-customsql - image: {{ include "apps.imageFullName" $batchImageData }} - imagePullPolicy: {{ $.Values.global.pullPolicy }} + {{- include "customSQL.definition" $ | indent 10 }} + imagePullPolicy: {{ $.Values.global.images.pullPolicy }} + envFrom: + - secretRef: + name: {{ default (printf "%s-db-credentials" $.Release.Name) $.Values.global.database.credsSecretName }} + env: + - name: ANT_OPTS + value: "-Djava.extra.jvmargs=\"-Dcuram.db.username=$SPM_DB_USR -Dcuram.db.password=$SPM_DB_PSW\"" args: - -f - /opt/ibm/Curam/release/CuramSDEJ/util/loadsql.xml @@ -260,27 +263,29 @@ spec: {{- end }} {{- if ne $name "curam" }} - name: wait-for-curam - image: busybox:1.28 + {{- include "utilities.definition" $ | indent 10 }} command: - /bin/sh - -c - > - until nslookup {{ include "apps.fullname" $ }}-curam; do - echo waiting for {{ include "apps.fullname" $ }}-curam to be available...; - sleep 2; - done; - until nc -z -w3 {{ include "apps.fullname" $ }}-curam {{ $.Values.global.apps.common.port | default 8443 }}; do - echo waiting for {{ include "apps.fullname" $ }}-curam:{{ $.Values.global.apps.common.port | default 8443 }} to be reachable; + until nc -z -w3 {{ include "sch.names.fullCompName" (list $ "curam") }} {{ $.Values.httpsPort }}; do + echo waiting for {{ include "sch.names.fullCompName" (list $ "curam") }}:{{ $.Values.httpsPort }} to be reachable; sleep 2; done; {{- end }} containers: - name: {{ $.Chart.Name }}-producer-{{ $name }} image: {{ include "apps.imageFullName" $imageData }} - imagePullPolicy: {{ $.Values.global.pullPolicy }} + imagePullPolicy: {{ $.Values.global.images.pullPolicy }} + {{- include "sch.security.securityContext" (list . $.sch.chart.containerSecurityContext) | indent 10 }} ports: - name: client - containerPort: {{ $.Values.global.apps.common.port | default 8443 }} + containerPort: {{ $.Values.httpsPort }} + envFrom: + - secretRef: + name: {{ default (printf "%s-db-credentials" $.Release.Name) $.Values.global.database.credsSecretName }} + - secretRef: + name: {{ default (printf "%s-system-credentials" $.Release.Name) $.Values.systemUser.credsSecretName }} env: - name: LICENSE value: {{ $.Values.global.license }} @@ -296,10 +301,11 @@ spec: {{- end }} - name: LOG_DIR value: {{ include "apps.logsDir" $ }} - - name: SYSTEM_USER - value: {{ $.Values.global.apps.common.security.username | default "SYSTEM" }} - - name: SYSTEM_PASSWORD - value: {{ $.Values.global.apps.common.security.password | default "{xor}LCYsLz4sLA==" | quote }} + - name: LTPA_KEYS_PASS + valueFrom: + secretKeyRef: + name: {{ default (printf "%s-ltpa-keys" $.Release.Name) $.Values.ltpaKeys.secretName }} + key: {{ $.Values.ltpaKeys.passwordKey }} {{- if $.Values.global.mq.useConnectionNameList }} - name: MQ_CONN_NAME_LIST value: {{ $app.mqConnectionNameList }} @@ -310,22 +316,29 @@ spec: {{- else }} - name: MQ_HOST_NAME value: {{ $.Release.Name }}-mqserver-{{ $name }} + - name: MQ_CONN_USER + value: app + - name: MQ_CONN_PASS + valueFrom: + secretKeyRef: + name: {{ default (printf "%s-mq-credentials" $.Release.Name) $.Values.global.mq.queueManager.secret.name }} + key: enc_{{ $.Values.global.mq.queueManager.secret.appPasswordKey }} - name: MQ_QMGR_NAME - value: QM1 + value: {{ $.Values.global.mq.queueManager.name }} - name: MQ_CHANNEL_NAME value: MQ_CHN {{- end }} {{- if $.Values.global.apps.common.persistence.enabled }} - name: MOUNT_POINT value: {{ include "persistence.mountPoint" $ }} - {{- end }} + {{- end }} {{- with .readinessPath }} readinessProbe: httpGet: path: {{ . }} port: client scheme: HTTPS - initialDelaySeconds: {{ $.Values.global.apps.common.initialDelaySeconds | default 300 }} + initialDelaySeconds: {{ $.Values.initialDelaySeconds }} periodSeconds: 10 {{- end }} {{- if .readinessTCPProbe }} @@ -345,17 +358,16 @@ spec: initialDelaySeconds: 90 periodSeconds: 10 {{- end }} - {{- if .resources }} - {{- with .resources }} - resources: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- else }} - {{- with $.Values.global.resources }} + livenessProbe: + exec: + command: + - /bin/sh + - -c + - /opt/ibm/helpers/runtime/liveness-probe.sh {{ include "apps.logsDir" $ }}/messages.log + initialDelaySeconds: {{ $.Values.initialDelaySeconds }} + periodSeconds: 10 resources: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- end }} + {{- toYaml (default $.Values.defaultResources $app.resources) | nindent 12 }} volumeMounts: - name: server-cm mountPath: /config/server.xml @@ -404,7 +416,7 @@ spec: - name: security-cm mountPath: /config/adc_conf/server_security.xml subPath: server_security.xml - - name: ltpa-keys-cm + - name: ltpa-secret mountPath: /opt/ibm/wlp/output/defaultServer/resources/security/ltpa.keys subPath: ltpa.keys {{- if $.Values.global.openldap.enabled }} diff --git a/helm-charts/apps/templates/hooks/hook-create-ltpa-keys.yaml b/helm-charts/apps/templates/hooks/hook-create-ltpa-keys.yaml new file mode 100644 index 00000000..7afb9beb --- /dev/null +++ b/helm-charts/apps/templates/hooks/hook-create-ltpa-keys.yaml @@ -0,0 +1,78 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +{{- if not .Values.ltpaKeys.secretName }} +--- +############################################################################### +# Copyright 2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "sch.names.fullCompName" (list . "create-ltpa-keys") }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "create-hook") | nindent 4 }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-weight": "4" + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation +spec: + backoffLimit: 1 + template: + metadata: + labels: + {{- include "sch.metadata.labels.standard" (list . "create-hook") | nindent 8 }} + spec: + restartPolicy: Never + {{- include "sch.security.securityContext" (list . .sch.chart.podSecurityContext) | nindent 6 }} + affinity: + {{- include "sch.affinity.nodeAffinity" (list . .sch.chart.nodeAffinity) | nindent 8 }} + serviceAccountName: {{ default (include "sch.names.fullCompName" (list . "secret-manager")) .Values.hookServiceAccountName }} + volumes: + - name: ltpa-keys + emptyDir: {} + initContainers: + - name: create-ltpa-keys + image: ibmcom/websphere-liberty:kernel-java8-ibmjava-ubi + command: + - /bin/sh + - -c + args: + - | + openssl rand -hex 15 > /ltpa/password; + securityUtility encode $(cat /ltpa/password) > /ltpa/xor_pass; + securityUtility createLTPAKeys --password=$(cat /ltpa/password) --file=/ltpa/ltpa.keys + {{- include "sch.security.securityContext" (list . .sch.chart.containerSecurityContext) | nindent 10 }} + {{- include "initContainer.resources" . | nindent 10 }} + volumeMounts: + - name: ltpa-keys + mountPath: /ltpa + containers: + - name: patch-secret + image: bitnami/kubectl:{{ .Capabilities.KubeVersion.Major }}.{{ trunc 2 .Capabilities.KubeVersion.Minor }} + command: + - /bin/sh + - -c + args: + - | + export PATH=$PATH:/opt/bitnami/kubectl/bin; + kubectl patch secret {{ .Release.Name }}-ltpa-keys --type=merge -p "{\"data\": {\"{{ .Values.ltpaKeys.secretKey }}\": \"$(cat /ltpa/ltpa.keys | base64 -w0)\"}}"; + kubectl patch secret {{ .Release.Name }}-ltpa-keys --type=merge -p "{\"data\": {\"{{ .Values.ltpaKeys.passwordKey }}\": \"$(cat /ltpa/xor_pass | base64 -w0)\"}}"; + {{- include "sch.security.securityContext" (list . .sch.chart.containerSecurityContext) | nindent 10 }} + {{- include "initContainer.resources" . | nindent 10 }} + volumeMounts: + - name: ltpa-keys + mountPath: /ltpa +{{- end }} diff --git a/helm-charts/apps/templates/hooks/hook-delete-ltpa-keys.yaml b/helm-charts/apps/templates/hooks/hook-delete-ltpa-keys.yaml new file mode 100644 index 00000000..5eee18a5 --- /dev/null +++ b/helm-charts/apps/templates/hooks/hook-delete-ltpa-keys.yaml @@ -0,0 +1,54 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +{{- if not .Values.ltpaKeys.secretName }} +--- +############################################################################### +# Copyright 2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "sch.names.fullCompName" (list . "delete-ltpa-keys") }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "delete-hook") | nindent 4 }} + annotations: + "helm.sh/hook": post-delete + "helm.sh/hook-weight": "5" + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation +spec: + backoffLimit: 1 + template: + metadata: + labels: + {{- include "sch.metadata.labels.standard" (list . "delete-hook") | nindent 8 }} + spec: + restartPolicy: Never + {{- include "sch.security.securityContext" (list . .sch.chart.podSecurityContext) | nindent 6 }} + affinity: + {{- include "sch.affinity.nodeAffinity" (list . .sch.chart.nodeAffinity) | nindent 8 }} + serviceAccountName: {{ default (include "sch.names.fullCompName" (list . "secret-manager")) .Values.hookServiceAccountName }} + containers: + - name: delete-secret + image: bitnami/kubectl:{{ .Capabilities.KubeVersion.Major }}.{{ trunc 2 .Capabilities.KubeVersion.Minor }} + command: + - /bin/sh + - -c + args: + - | + /opt/bitnami/kubectl/bin/kubectl delete secret {{ .Release.Name }}-ltpa-keys + {{- include "sch.security.securityContext" (list . .sch.chart.containerSecurityContext) | nindent 10 }} + {{- include "initContainer.resources" . | nindent 10 }} +{{- end }} diff --git a/helm-charts/apps/templates/hooks/hook-role-secret-mgr.yaml b/helm-charts/apps/templates/hooks/hook-role-secret-mgr.yaml new file mode 100644 index 00000000..43a70182 --- /dev/null +++ b/helm-charts/apps/templates/hooks/hook-role-secret-mgr.yaml @@ -0,0 +1,42 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +{{- if not .Values.ltpaKeys.secretName }} +--- +############################################################################### +# Copyright 2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: {{ include "sch.names.fullCompName" (list . "secret-manager") }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "hook") | nindent 4 }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade,post-delete + "helm.sh/hook-weight": "2" + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation +rules: + - apiGroups: + - "" + resourceNames: + - {{ .Release.Name }}-ltpa-keys + resources: + - secrets + verbs: + - get + - patch + - delete +{{- end }} diff --git a/helm-charts/apps/templates/hooks/hook-rolebinding.yaml b/helm-charts/apps/templates/hooks/hook-rolebinding.yaml new file mode 100644 index 00000000..5518b963 --- /dev/null +++ b/helm-charts/apps/templates/hooks/hook-rolebinding.yaml @@ -0,0 +1,39 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +{{- if not .Values.ltpaKeys.secretName }} +--- +############################################################################### +# Copyright 2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: {{ include "sch.names.fullCompName" (list . "secret-manager") }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "hook") | nindent 4 }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade,post-delete + "helm.sh/hook-weight": "3" + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ include "sch.names.fullCompName" (list . "secret-manager") }} +subjects: + - kind: ServiceAccount + name: {{ include "sch.names.fullCompName" (list . "secret-manager") }} + namespace: {{ .Release.Namespace }} +{{- end }} diff --git a/helm-charts/apps/templates/hooks/hook-secret-ltpa.yaml b/helm-charts/apps/templates/hooks/hook-secret-ltpa.yaml new file mode 100644 index 00000000..6c8a1bba --- /dev/null +++ b/helm-charts/apps/templates/hooks/hook-secret-ltpa.yaml @@ -0,0 +1,34 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +{{- if not .Values.ltpaKeys.secretName }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ .Release.Name }}-ltpa-keys + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "hook") | nindent 4 }} + annotations: + "helm.sh/hook": pre-install + "helm.sh/hook-weight": "0" + "helm.sh/hook-delete-policy": before-hook-creation +data: + +{{- end }} diff --git a/helm-charts/apps/templates/hooks/hook-serviceaccount.yaml b/helm-charts/apps/templates/hooks/hook-serviceaccount.yaml new file mode 100644 index 00000000..c39459e9 --- /dev/null +++ b/helm-charts/apps/templates/hooks/hook-serviceaccount.yaml @@ -0,0 +1,34 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +{{- if not (and .Values.hookServiceAccountName .Values.ltpaKeys.secretName) }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "sch.names.fullCompName" (list . "secret-manager") }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "hook") | nindent 4 }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade,post-delete + "helm.sh/hook-weight": "1" + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation +imagePullSecrets: + - name: sa-{{ .Release.Namespace }} + +{{- end }} diff --git a/helm-charts/apps/templates/secret-db.yaml b/helm-charts/apps/templates/secret-db.yaml new file mode 100644 index 00000000..9a9e3785 --- /dev/null +++ b/helm-charts/apps/templates/secret-db.yaml @@ -0,0 +1,32 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +{{- if and .Values.global.sch.enabled (not .Values.global.database.credsSecretName ) }} +--- +############################################################################### +# Copyright 2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ .Release.Name }}-db-credentials + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} +data: + SPM_DB_USR: {{ required "Database username is required (global.database.username)." .Values.global.database.username | b64enc }} + SPM_DB_PSW: {{ required "SPM-encrypted password is required (global.database.spm_psw)." .Values.global.database.spm_psw | b64enc }} + XOR_DB_PSW: {{ required "XOR-encrypted password is required (global.database.wlp_psw)." .Values.global.database.wlp_psw | b64enc }} +{{- end }} diff --git a/helm-charts/ce-app/templates/tls-secret.yaml b/helm-charts/apps/templates/secret-pull.yaml similarity index 72% rename from helm-charts/ce-app/templates/tls-secret.yaml rename to helm-charts/apps/templates/secret-pull.yaml index a4a1a706..c41623f1 100644 --- a/helm-charts/ce-app/templates/tls-secret.yaml +++ b/helm-charts/apps/templates/secret-pull.yaml @@ -1,4 +1,4 @@ -{{- if and .Values.global.ceApp.imageName (not (.Capabilities.APIVersions.Has "route.openshift.io/v1")) }} +{{- if and .Values.global.sch.enabled .Values.global.imagePullSecret.username }} --- ############################################################################### # Copyright 2019,2020 IBM Corporation @@ -16,14 +16,12 @@ # limitations under the License. ############################################################################### -{{- $cert := genSelfSignedCert .Release.Name nil nil 365 }} apiVersion: v1 kind: Secret metadata: - name: {{ include "ce-app.fullname" . }} + name: {{ .Release.Name }}-pull-secret namespace: {{ .Release.Namespace }} -type: kubernetes.io/tls +type: kubernetes.io/dockerconfigjson data: - tls.crt: {{ $cert.Cert | b64enc }} - tls.key: {{ $cert.Key | b64enc }} -{{- end }} \ No newline at end of file + .dockerconfigjson: {{ template "apps.imagePullSecret" .Values.global.imagePullSecret }} +{{- end }} diff --git a/helm-charts/apps/templates/secret-sysuser.yaml b/helm-charts/apps/templates/secret-sysuser.yaml new file mode 100644 index 00000000..518aafa8 --- /dev/null +++ b/helm-charts/apps/templates/secret-sysuser.yaml @@ -0,0 +1,31 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +{{- if not .Values.systemUser.credsSecretName }} +--- +############################################################################### +# Copyright 2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ .Release.Name }}-system-credentials + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} +data: + SYSTEM_USER: {{ required "System username is required (systemUser.username)." .Values.systemUser.username | b64enc}} + SYSTEM_PASSWORD: {{ required "XOR-encrypted password for system user is required (systemUser.password)." .Values.systemUser.password | b64enc }} +{{- end }} diff --git a/helm-charts/apps/templates/tls-secret.yaml b/helm-charts/apps/templates/secret-tls.yaml similarity index 86% rename from helm-charts/apps/templates/tls-secret.yaml rename to helm-charts/apps/templates/secret-tls.yaml index a47a37aa..68594ef0 100644 --- a/helm-charts/apps/templates/tls-secret.yaml +++ b/helm-charts/apps/templates/secret-tls.yaml @@ -1,3 +1,4 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} {{- if not (.Capabilities.APIVersions.Has "route.openshift.io/v1") }} --- ############################################################################### @@ -22,8 +23,10 @@ kind: Secret metadata: name: {{ .Release.Name }}-apps-tls namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} type: kubernetes.io/tls data: tls.crt: {{ $cert.Cert | b64enc }} tls.key: {{ $cert.Key | b64enc }} -{{- end }} \ No newline at end of file +{{- end }} diff --git a/helm-charts/apps/templates/service.yaml b/helm-charts/apps/templates/service.yaml index dea014df..04410144 100644 --- a/helm-charts/apps/templates/service.yaml +++ b/helm-charts/apps/templates/service.yaml @@ -1,3 +1,4 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} {{- range $name, $app := .Values.global.apps.config }} {{- if $app.enabled }} --- @@ -20,22 +21,21 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "apps.fullname" $ }}-{{ $name }} + name: {{ include "sch.names.fullCompName" (list $ $name) }} namespace: {{ $.Release.Namespace }} labels: -{{ include "apps.labels" $ | indent 4 }} + {{- include "sch.metadata.labels.standard" (list $ (printf "%s-producer" $name)) | nindent 4 }} {{- if $.Capabilities.APIVersions.Has "route.openshift.io/v1" }} annotations: - service.beta.openshift.io/serving-cert-secret-name: {{ include "apps.fullname" $ }}-{{ $name }} + service.beta.openshift.io/serving-cert-secret-name: {{ include "sch.names.fullCompName" (list $ $name) }} {{- end }} spec: - type: {{ $.Values.global.apps.common.serviceType | default "ClusterIP" }} + type: ClusterIP ports: - - port: {{ $.Values.global.apps.common.port | default 8443 }} + - port: {{ $.Values.httpsPort }} targetPort: client name: https selector: - app.kubernetes.io/name: {{ include "apps.fullname" $ }}-{{ $name }}-producer - app.kubernetes.io/instance: {{ $.Release.Name }} + {{- include "sch.metadata.labels.standard" (list $ (printf "%s-producer" $name)) | nindent 4 }} {{- end }} {{- end }} diff --git a/helm-charts/apps/templates/serviceaccount.yaml b/helm-charts/apps/templates/serviceaccount.yaml new file mode 100644 index 00000000..93797e76 --- /dev/null +++ b/helm-charts/apps/templates/serviceaccount.yaml @@ -0,0 +1,33 @@ +{{- include "sch.config.init" (list . "apps.sch.chart.config.values") -}} +{{- if not .Values.serviceAccountName }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "sch.names.fullName" (list .) }} + namespace: {{ .Release.Namespace }} + labels: +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} +imagePullSecrets: + - name: sa-{{ .Release.Namespace }} + {{- if .Values.global.imagePullSecret.username }} + - name: {{ .Release.Name | lower }}-pull-secret + {{- end }} + +{{- end }} diff --git a/helm-charts/apps/values.yaml b/helm-charts/apps/values.yaml index afe844d9..74a4617e 100644 --- a/helm-charts/apps/values.yaml +++ b/helm-charts/apps/values.yaml @@ -18,51 +18,53 @@ global: # Set to 'accept' to accept the license terms of WebSphere Liberty and WebSphere MQ license: '' images: - registry: &imageRegistry us.icr.io + registry: &imageRegistry minikube.local:5000 imageLibrary: '' imagePrefix: '' imageTag: latest pullPolicy: Always imagePullSecret: - registry: *imageRegistry + username: '' + sch: + enabled: true database: - ## Database connection configuration - # The property wlp_psw: contains the XOR password injected in the Liberty configuration - # The property spm_psw: contains the encrypted password injected in Bootstrap.properties - type: db2 - port: 50000 + ## Database connection properties + type: DB2 dbName: DATABASE + hostname: '' + port: 50000 username: db2admin + # Name of pre-created secret containing database credentals + credsSecretName: '' + # The XOR-encrypted password injected into Liberty configuration + wlp_psw: "{xor}Oz1tPjsyNjE=" + # The SPM-encrypted password injected into Bootstrap.properties + spm_psw: "5itAmT5UzH7wR6kvkYqkTw==" + # Oracle Service name, where applicable + serviceName: '' initTime: 120 - ssl: {} - resources: - limits: - cpu: 2 - memory: 6Gi - requests: - cpu: 2 - memory: 6Gi - xmlserver: - port: 1800 + ssl: + enabled: false + # Name of the secret containing the database TLS certificate + secretName: '' + # Key in the above secret with the certificate + secretKey: db2admin.arm apps: common: - runAs: 1001 - port: 8443 - initialDelaySeconds: 300 - security: {} persistence: ## Persistence volume to store data (such as non-log files) enabled: false ## If enabled, creates a PVC to connect to IBM Cloud Object Storage - ## Properties secretKey, accessKey, instanceId, and bucketName are required + ## Properties storageClassName, secretKey, accessKey, instanceId, and bucketName are required ## Values available in the WebUI where the bucket was pre-created + # storageClassName: "" # secretKey: "" # accessKey: "" # instanceId: "" # bucketName: "" # bucketEndpoint: "https://s3.private.us-south.cloud-object-storage.appdomain.cloud" - # mountPoint: "/tmp/persistence" - # subDir: "/folder/name" + mountPoint: '' + subDir: '' jmxstats: ## Parameters of the JMX Stats to be persisted on the PVC # The property timerPeriod sets the value curam.jmx.output_statistics_timer_period in milliseconds @@ -75,7 +77,7 @@ global: readinessPath: /Curam/ ingressPath: /Curam earName: Curam - jvm: + jvm: - "-Xms2048m" - "-Xmx2048m" resources: @@ -86,12 +88,12 @@ global: cpu: 1.5 memory: 3Gi rest: - enabled: true + enabled: false replicaCount: 1 ingressPath: /Rest earName: Rest warName: RestModule - jvm: + jvm: - "-Xms1536m" - "-Xmx1536m" resources: @@ -108,7 +110,7 @@ global: readinessPath: /CitizenPortal/ ingressPath: /CitizenPortal earName: CitizenPortal - jvm: + jvm: - "-Xms2048m" - "-Xmx2048m" resources: @@ -126,16 +128,9 @@ global: earName: CuramWebServices warName: webservices2 excludeJmxStats: true - jvm: + jvm: - "-Xms512m" - "-Xmx512m" - resources: - requests: - cpu: 0.5 - memory: 768Mi - limits: - cpu: 0.75 - memory: 1Gi curambirtviewer: enabled: false replicaCount: 1 @@ -144,7 +139,7 @@ global: earName: CuramBIRTViewer producerOnly: true excludeJmxStats: true - jvm: + jvm: - "-Xms768m" - "-Xmx768m" resources: @@ -160,106 +155,122 @@ global: readinessPath: /CPMExternalNS/ ingressPath: /CPMExternalNS earName: CPMExternalNS - jvm: + jvm: - "-Xms512m" - "-Xmx512m" - resources: - requests: - cpu: 0.5 - memory: 768Mi - limits: - cpu: 0.75 - memory: 1Gi cpmexternals: enabled: false replicaCount: 1 readinessPath: /CPMExternalS/ ingressPath: /CPMExternalS earName: CPMExternalS - jvm: + jvm: - "-Xms512m" - "-Xmx512m" - resources: - requests: - cpu: 0.5 - memory: 768Mi - limits: - cpu: 0.75 - memory: 1Gi navigatorns: enabled: false replicaCount: 1 readinessPath: /NavigatorNS/ ingressPath: /NavigatorNS earName: NavigatorNS - jvm: + jvm: - "-Xms512m" - "-Xmx512m" - resources: - requests: - cpu: 0.5 - memory: 768Mi - limits: - cpu: 0.75 - memory: 1Gi navigators: enabled: false replicaCount: 1 readinessPath: /NavigatorS/ ingressPath: /NavigatorS earName: NavigatorS - jvm: + jvm: - "-Xms512m" - "-Xmx512m" - resources: - requests: - cpu: 0.5 - memory: 768Mi - limits: - cpu: 0.75 - memory: 1Gi mdtworkspace: enabled: false replicaCount: 1 readinessPath: /MDTWorkspace/ ingressPath: /MDTWorkspace earName: MDTWorkspace - jvm: + jvm: - "-Xms512m" - "-Xmx512m" - resources: - requests: - cpu: 0.5 - memory: 768Mi - limits: - cpu: 0.75 - memory: 1Gi samplepublicaccess: enabled: false replicaCount: 1 readinessPath: /SamplePublicAccess/ ingressPath: /SamplePublicAccess earName: SamplePublicAccess - jvm: + jvm: - "-Xms512m" - "-Xmx512m" - resources: - requests: - cpu: 0.5 - memory: 768Mi - limits: - cpu: 0.75 - memory: 1Gi openldap: enabled: false isam: enabled: false mq: + # Set to True if running MQ in HA mode useConnectionNameList: false objectSuffix: minikube tlsSecretName: mq-secret + queueManager: + name: "QM1" + secret: + # name is the secret that contains the 'admin' user password and the 'app' user password to use for messaging + name: '' + # adminPasswordKey is the secret key that contains the 'admin' user password (used in the 'mqserver' Chart) + # adminPasswordKey: 'adminPasswordKey' + # appPasswordKey is the secret key that contains the 'admin' user password + appPasswordKey: 'appPasswordKey' ingress: hostname: minikube.local -nameOverride: "" -fullnameOverride: "" +# Require Intel-based workers +arch: "amd64" + +# Name of an existing ServiceAccount for the application runtime +serviceAccountName: "" +# Name of an existing ServiceAccount for use by the hooks +hookServiceAccountName: "" + +# User for performing system operations like deferred processing and login lookup. +systemUser: + credsSecretName: '' + username: SYSTEM + password: "{xor}LCYsLz4sLA==" + +# How long to wait before commencing readiness probes +initialDelaySeconds: 150 + +# LTPA keys created externally +ltpaKeys: + secretName: '' + secretKey: 'ltpa.keys' + passwordKey: 'passwordKey' + +# Configure Login Module +loginConfig: + trace: true + identityOnly: false + +# Configure Session and Transactions +sessionConfig: + sessionTimeout: 30m + transactionTimeout: 3m + maxInMemorySessionCount: 1000 + cookie: + httpOnly: true + secure: true + +# Number of replicas to deploy +replicaCount: 1 + +# HTTPS port for running the application(s) +httpsPort: 8443 + +defaultResources: + requests: + cpu: 0.5 + memory: 768Mi + limits: + cpu: 0.75 + memory: 1Gi diff --git a/helm-charts/batch/.helmignore b/helm-charts/batch/.helmignore index 50af0317..2d151b70 100644 --- a/helm-charts/batch/.helmignore +++ b/helm-charts/batch/.helmignore @@ -20,3 +20,6 @@ .idea/ *.tmproj .vscode/ + +# IBM Dev +cv-tests/ diff --git a/helm-charts/batch/Chart.yaml b/helm-charts/batch/Chart.yaml index 7dfd9712..21af71ea 100644 --- a/helm-charts/batch/Chart.yaml +++ b/helm-charts/batch/Chart.yaml @@ -13,10 +13,12 @@ # See the License for the specific language governing permissions and # limitations under the License. ############################################################################### -apiVersion: v1 +apiVersion: v2 +kubeVersion: ">=1.16" +appVersion: "7.0.10.0" name: batch description: Batch Chart for SPM Batch within a Kubernetes Cluster -version: 1.3.0 +version: 2.0.0 maintainers: - name: Cúram SPM Dev Team url: https://github.com/IBM/spm-kubernetes @@ -27,8 +29,19 @@ keywords: - Minikube - IKS - OpenShift - - RHOS + - RHOCP - Curam - SPM + - amd64 + - deploy + - DevOps + - Commercial + - Limited home: https://www.ibm.com/watson-health/solutions/social-program-management icon: https://avatars2.githubusercontent.com/u/1459110 +dependencies: + - name: ibm-sch + repository: "@sch" + version: "^1.2.17" + alias: sch + condition: global.sch.enabled diff --git a/helm-charts/batch/README.md b/helm-charts/batch/README.md new file mode 100644 index 00000000..51c50d67 --- /dev/null +++ b/helm-charts/batch/README.md @@ -0,0 +1,35 @@ +# batch + +## Introduction + +* The Batch chart is a component of IBM Curam Social Program Management (SPM) Platform responsible for running various batch (deferred) processes. + +## Chart Details + +* Creates cron jobs for executing various batch programs + +## Prerequisites + +* Kubernetes 1.16 or later +* Helm 3.0.0 or later +* [`PodDisruptionBudgets`](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) are recommended for high resiliency in an application during risky operations, such as draining a node for maintenance or scaling down a cluster. + +### PodSecurityPolicy Requirements + +Custom PodSecurityPolicy definition: + +``` +Not required as the underlying IHS server runs with the default restricted policy +``` + +### SecurityContextConstraints Requirements + +Custom SecurityContextConstraints definition: + +``` +Not required as the underlying IHS server runs with the default restricted policy +``` + +## Configuration + +See [README.md](../spm) in the `spm` umbrella chart. diff --git a/helm-charts/batch/RELEASENOTES.md b/helm-charts/batch/RELEASENOTES.md new file mode 100644 index 00000000..27c99765 --- /dev/null +++ b/helm-charts/batch/RELEASENOTES.md @@ -0,0 +1,68 @@ +# What's new + +* OpenShift support introduced +* Runs with `restricted` (default) pod security policy +* Add option to specify multiple batch programs + +### Fixes + +# Breaking Changes + +* The structure of values for specifying the Batch programs has changed + + | Old property | New property | Default value | Comment | + | ------------ | ------------ | ------------- | ------- | + | `global.batch.successfulJobsHistoryLimit` | `successfulJobsHistoryLimit` | `3` | Different jobs can maintain different history sizes by providing this key under the respective program specification. | + | `global.batch.backoffLimit` | `backoffLimit` | `5` | Different jobs can maintain a different number of retries by providing this key under the respective program specification. | + | `global.batch.javaMetrics.*` | `javaOptions` | `-Xms1g -Xmx1g` | Java options to be specified via `ANT_OPTS`. Previously specified as 2 separate keys, `antOpts` and `heapSize` | + | `global.batch.schedule` | `programs..schedule` | `*/30 * * * *` | Different schedules can be specified for different batch jobs. The default schedule applies to any jobs queued in the system. | + | `global.batch.programName` | `programs..className` | `''` | Java class for the Batch batch process (`-Dbatch.program=`) | + | `global.batch.programParameters` | `programs..parameters` | `''` | Parameters, if any, to be passed to the batch process (`-Dbatch.parameters=`) | + + +* The new values must be nest under `batch`, when specifying values using the umbrella chart to take effect, for example: + + ```yaml + batch: + programs: + reassessment: + schedule: "0 2 * * 6" + className: curam.healthcare.sl.intf.BulkICReassessment.process + parameters: "evidenceMigrationDetails=CASE|DET0026071;DET0026027|CT26301" + username: system + javaOptions: "-Xms2g -Xmx2g -Xgcpolicy:gencon" + ``` + +## Prerequisites + +* See README.md + +# Version History + +## v2.0.0 + +* Reduce privilege requirements to run with the `restricted` security policy +* Chart values have been reorganised for improved readability +* Add option to specify multiple batch programs with different parameters and schedules +* Add option to specify the username (`-Dbatch.username=`) of the SPM user to execute the batch program(s) + +## v1.3.0 + +* Moved to UBI base images +* Add option to specify the `runAsUser` property +* OpenShift preview release + +## v1.2.0 + +* Add option to specify various Java options via `ANT_OPTS` +* Add option to specify the `-Dbatch.parameters=` argument +* Add options to specify JMX properties +* Made values global to be overridden by the umbrella chart + +## v1.1.0 + +* Initial release + +## v1.0.0 + +* Limited availability preview diff --git a/helm-charts/batch/templates/NOTES.txt b/helm-charts/batch/templates/NOTES.txt new file mode 100644 index 00000000..665a9cf9 --- /dev/null +++ b/helm-charts/batch/templates/NOTES.txt @@ -0,0 +1,25 @@ +{{- include "sch.config.init" (list . "batch.sch.chart.config.values") }} + +The following batch programs have been scheduled: + +{{- range $progID, $prog := .Values.programs }} +Program ID: {{ $progID }} +Program Details: + {{- toYaml $prog | nindent 2 }} +{{ end }} + +To schedule additional programs, add a key under 'programs' with the following structure: + + programID: + schedule: Cron expression when the batch program should run + className: Java class for the Batch batch process (-Dbatch.program=) + parameters: Parameters, if any, to be passed to the batch process (-Dbatch.parameters=) + username: Username to use for the execution of the batch process (-Dbatch.username=) + +Any program may also override the following properties, by specifying a key with the same name and syntax: + + javaOptions: Java options to be specified via ANT_OPTS + successfulJobsHistoryLimit: Number of successful job executions to keep + backoffLimit: Number of attempts to run a batch job, in case of failure + concurrencyPolicy: Specifies how to treat concurrent executions of a Job (Allow|Forbid|Replace) + resources: CPU and Memory requests and limits diff --git a/helm-charts/batch/templates/_helpers.tpl b/helm-charts/batch/templates/_helpers.tpl index 677e59e4..e0643c7c 100644 --- a/helm-charts/batch/templates/_helpers.tpl +++ b/helm-charts/batch/templates/_helpers.tpl @@ -15,37 +15,6 @@ limitations under the License. */}} {{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "batch.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "batch.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "batch.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} {{/* Build up full image path @@ -62,29 +31,19 @@ batch:{{- .imageTag -}} {{- end -}} {{/* -Build up Ant Options for general and JMS Stats configuration +Build up Ant Options for general and JMX Stats configuration */}} -{{- define "antOpts" }} -{{- if ($.Values.global.batch.javaMetrics) ($.Values.global.batch.javaMetrics.antOpts) -}} -{{- $.Values.global.batch.javaMetrics.antOpts -}} -{{- end }} -{{- if ($.Values.global.batch.javaMetrics) ($.Values.global.batch.javaMetrics.heapSize) -}} -{{- $.Values.global.batch.javaMetrics.heapSize -}} -{{- end }} -{{- if ($.Values.global.apps.common.persistence) ($.Values.global.apps.common.persistence.enabled) ($.Values.global.apps.common.persistence.jmxstats.enabled) -}} -{{- printf " -Dcuram.jmx.output_statistics_timer_enabled=true -Dcuram.jmx.output_statistics_timer_folder=/tmp/jmx/ -Dcuram.jmx.output_statistics_timer_period=%d" (default 60000 $.Values.global.apps.common.persistence.jmxstats.timerPeriod | int) -}} +{{- define "batch.antOpts" }} +{{- printf "-Djava.extra.jvmargs=\"-Dcuram.db.username=$SPM_DB_USR -Dcuram.db.password=$SPM_DB_PSW\" " -}} +{{- default .DefaultOptions .ProgramOptions -}} +{{- if and .PersistenceConfig.enabled .PersistenceConfig.jmxstats.enabled -}} +{{- printf " -Dcuram.jmx.output_statistics_timer_enabled=true -Dcuram.jmx.output_statistics_timer_folder=/tmp/jmx/ -Dcuram.jmx.output_statistics_timer_period=%d" (default 60000 .PersistenceConfig.jmxstats.timerPeriod | int) -}} {{- end }} {{- end }} {{/* -Common labels +Create the image pull secret */}} -{{- define "batch.labels" -}} -app.kubernetes.io/name: {{ include "batch.name" . }} -helm.sh/chart: {{ include "batch.chart" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- define "batch.imagePullSecret" }} +{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .registry (printf "%s:%s" .username (required "Credentials password is required" .password) | b64enc) | b64enc }} {{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end -}} diff --git a/helm-charts/batch/templates/_sch-chart-config.tpl b/helm-charts/batch/templates/_sch-chart-config.tpl new file mode 100644 index 00000000..55a0cbf0 --- /dev/null +++ b/helm-charts/batch/templates/_sch-chart-config.tpl @@ -0,0 +1,39 @@ +{{/* +Copyright 2020 IBM Corporation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +{{- /* +".sch.chart.config.values" contains the default configuration values used by +the Shared Configurable Helpers overridden for this chart. +*/ -}} +{{- define "batch.sch.chart.config.values" -}} +sch: + chart: + labelType: "prefixed" + podSecurityContext: + hostIPC: false + hostNetwork: false + hostPID: false + securityContext: + runAsNonRoot: true + containerSecurityContext: + securityContext: + privileged: false + readOnlyRootFilesystem: false + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL +{{- end -}} diff --git a/helm-charts/batch/templates/configmap-bootstrap.yaml b/helm-charts/batch/templates/configmap-bootstrap.yaml new file mode 100644 index 00000000..c1b50bf1 --- /dev/null +++ b/helm-charts/batch/templates/configmap-bootstrap.yaml @@ -0,0 +1,83 @@ +{{- include "sch.config.init" (list . "batch.sch.chart.config.values") -}} +{{- if .Values.global.sch.enabled }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Release.Name }}-bootstrap-cm + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} +data: + Bootstrap.properties: | + # Placed by Kubernetes Configmap. + curam.environment.bindings.location=/tmp + curam.dmx.locale=en_US + + curam.db.type={{ .Values.global.database.type | upper }} + curam.db.servername={{ .Values.global.database.hostname }} + curam.db.serverport={{ required "Database server port is required (global.database.port)." .Values.global.database.port }} + curam.db.username=${sysenv.SPM_DB_USR} + curam.db.password=${sysenv.SPM_DB_PSW} + curam.db.name={{ .Values.global.database.dbName }} + {{- if eq (.Values.global.database.type | upper) "ORA" }} + {{- if .Values.global.database.serviceName }} + curam.db.oracle.servicename={{ .Values.global.database.serviceName }} + {{- end }} + {{- end }} + + {{- if eq (.Values.global.database.type | upper) "DB2" }} + {{ if .Values.global.database.ssl.enabled }} + curam.db2.ssl=true + {{- if .Values.global.database.ssl.secretName }} + # Import must be handled by an initContainer + curam.db2.ssl.truststore.location=/mnt/keystores/db2TrustStore.jks + curam.db2.ssl.truststore.password=changeit + {{- end }} + {{- end }} + db2.is.remote=true + {{- end }} + + curam.db.override.bindings= + curam.environment.default.dateformat=dd MM yyyy + curam.environment.default.dateseparator=/ + curam.database.shortnames= + curam.test.override.date= + + curam.disable.dynamic.properties= + curam.db.disable.bindings.generation= + curam.environment.tnameserv.port=1221 + curam.custom.workflow.webservicebpo= + curam.searchserver.server.index.persistence.enable=true + + # Oracle Database + curam.db.oracle.cachesize= + curam.db.oracle.connectioncache.enabled= + curam.db.oracle.connectioncache.minlimit= + curam.db.oracle.connectioncache.maxlimit= + curam.db.oracle.connectioncache.initiallimit= + curam.db.oracle.connectioncache.name= + + # DB2 on z/OS + curam.db.zos.32ktablespace= + curam.db.zos.encoding=EBCDIC + curam.db.zos.dbname= + curam.db.zos.asciidatabase= + curam.db.zos.enableforeignkeys= +{{- end }} diff --git a/helm-charts/batch/templates/cronjob.yaml b/helm-charts/batch/templates/cronjob.yaml index 57c5b2ba..aab5b152 100644 --- a/helm-charts/batch/templates/cronjob.yaml +++ b/helm-charts/batch/templates/cronjob.yaml @@ -1,3 +1,6 @@ +{{- include "sch.config.init" (list . "batch.sch.chart.config.values") -}} +{{- range $name, $program := .Values.programs }} +{{- $javaOptions := dict "DefaultOptions" $.Values.javaOptions "ProgramOptions" $program.javaOptions "PersistenceConfig" $.Values.global.apps.common.persistence }} --- ############################################################################### # Copyright 2019,2020 IBM Corporation @@ -18,33 +21,34 @@ apiVersion: batch/v1beta1 kind: CronJob metadata: - name: {{ .Release.Name }}-batch - namespace: {{ .Release.Namespace }} + name: {{ include "sch.names.fullCompName" (list $ $name) }} + namespace: {{ $.Release.Namespace }} labels: -{{ include "batch.labels" . | indent 4 }} + {{- include "sch.metadata.labels.standard" (list $ "") | nindent 4 }} spec: - schedule: "{{ .Values.global.batch.schedule }}" - successfulJobsHistoryLimit: {{ .Values.global.batch.successfulJobsHistoryLimit }} + schedule: {{ required (printf "'schedule' key cannot be omitted for Batch program '%s'" $name) ($program.schedule | quote) }} + successfulJobsHistoryLimit: {{ default $.Values.successfulJobsHistoryLimit $program.successfulJobsHistoryLimit }} + concurrencyPolicy: {{ default $.Values.concurrencyPolicy $program.concurrencyPolicy }} jobTemplate: spec: - backoffLimit: {{ .Values.global.batch.backoffLimit }} - # Disabled until TTLAfterFinished feature graduates from 'alpha' status - # ttlSecondsAfterFinished: {{ .Values.global.batch.ttlSecondsAfterFinished }} + backoffLimit: {{ default $.Values.backoffLimit $program.backoffLimit }} template: spec: - {{- if .Values.global.imagePullSecret.username }} + {{- if $.Values.global.imagePullSecret.username }} imagePullSecrets: - - name: {{ .Release.Name }}-pull-secret - {{- end }} - {{- if .Values.global.batch.runAs }} - securityContext: - runAsUser: {{ .Values.global.batch.runAs }} - fsGroup: {{ .Values.global.batch.runAs }} + - name: {{ $.Release.Name }}-pull-secret {{- end }} + {{- include "sch.security.securityContext" (list $ $.sch.chart.podSecurityContext) | nindent 10 }} + affinity: + {{- include "sch.affinity.nodeAffinity" (list $ $.sch.chart.nodeAffinity) | nindent 12 }} + serviceAccountName: {{ default (include "sch.names.fullName" (list $)) $.Values.serviceAccountName }} volumes: - name: bootstrap-file configMap: - name: {{ .Release.Name }}-bootstrap-cm + name: {{ $.Release.Name }}-bootstrap-cm + - name: debug-file + configMap: + name: {{ $.Release.Name }}-debug {{- if and (eq ($.Values.global.database.type | upper) "DB2") $.Values.global.database.ssl.enabled $.Values.global.database.ssl.secretName }} - name: keystore-volume emptyDir: {} @@ -56,7 +60,7 @@ spec: image: ibmjava:8-sdk env: - name: certfile - value: /mnt/certificates/{{ $.Values.global.database.ssl.certFile | default "db2admin.arm" }} + value: /mnt/certificates/{{ $.Values.global.database.ssl.secretKey }} - name: keystore_jks value: /mnt/keystores/db2TrustStore.jks command: @@ -70,24 +74,35 @@ spec: mountPath: /mnt/certificates {{- end }} containers: - - name: running-batch + - name: runbatch-{{ $name | lower }} image: {{ include "batch.imageFullName" $.Values.global.images }} - imagePullPolicy: {{ .Values.global.images.pullPolicy }} + imagePullPolicy: {{ $.Values.global.images.pullPolicy }} + envFrom: + - secretRef: + name: {{ default (printf "%s-db-credentials" $.Release.Name) $.Values.global.database.credsSecretName }} + env: + - name: ANT_OPTS + value: {{ include "batch.antOpts" $javaOptions | quote }} command: - build.sh - runbatch - {{- if or $.Values.global.batch.programName $.Values.global.batch.javaMetrics}} + {{- if or $program.className $program.parameters $program.username }} args: + {{- if $program.className }} + - -Dbatch.program={{ $program.className }} {{- end }} - {{- with $.Values.global.batch.programName }} - - -Dbatch.program={{ . }} - {{- with $.Values.global.batch.programParameters}} - - -Dbatch.parameters={{ . }} + {{- if $program.parameters }} + - -Dbatch.parameters={{ $program.parameters | quote }} {{- end }} + {{- if $program.username }} + - -Dbatch.username={{ $program.username }} {{- end }} - env: - - name: ANT_OPTS - value: {{ include "antOpts" . | quote }} + {{- end }} + {{- if or $.Values.resources $program.resources }} + resources: + {{- toYaml (default $.Values.resources $program.resources) | nindent 14 }} + {{- end }} + {{- include "sch.security.securityContext" (list $ $.sch.chart.containerSecurityContext) | nindent 12 }} volumeMounts: - name: bootstrap-file mountPath: /opt/ibm/Curam/release/project/properties/Bootstrap.properties @@ -97,3 +112,4 @@ spec: mountPath: /mnt/keystores {{- end }} restartPolicy: Never +{{- end }} diff --git a/helm-charts/batch/templates/db-secret.yaml b/helm-charts/batch/templates/db-secret.yaml new file mode 100644 index 00000000..00afbed1 --- /dev/null +++ b/helm-charts/batch/templates/db-secret.yaml @@ -0,0 +1,32 @@ +{{- include "sch.config.init" (list . "batch.sch.chart.config.values") -}} +{{- if and .Values.global.sch.enabled (not .Values.global.database.credsSecretName ) }} +--- +############################################################################### +# Copyright 2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ .Release.Name }}-db-credentials + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} +data: + SPM_DB_USR: {{ required "Database username is required (global.database.username)." .Values.global.database.username | b64enc }} + SPM_DB_PSW: {{ required "SPM-encrypted password is required (global.database.spm_psw)." .Values.global.database.spm_psw | b64enc }} + XOR_DB_PSW: {{ required "XOR-encrypted password is required (global.database.wlp_psw)." .Values.global.database.wlp_psw | b64enc }} +{{- end }} diff --git a/helm-charts/batch/templates/pull-secret.yaml b/helm-charts/batch/templates/pull-secret.yaml new file mode 100644 index 00000000..f3c07b1f --- /dev/null +++ b/helm-charts/batch/templates/pull-secret.yaml @@ -0,0 +1,27 @@ +{{- if and .Values.global.sch.enabled .Values.global.imagePullSecret.username }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Release.Name }}-pull-secret + namespace: {{ .Release.Namespace }} +type: kubernetes.io/dockerconfigjson +data: + .dockerconfigjson: {{ template "batch.imagePullSecret" .Values.global.imagePullSecret }} +{{- end }} diff --git a/helm-charts/batch/templates/serviceaccount.yaml b/helm-charts/batch/templates/serviceaccount.yaml new file mode 100644 index 00000000..91421871 --- /dev/null +++ b/helm-charts/batch/templates/serviceaccount.yaml @@ -0,0 +1,33 @@ +{{- include "sch.config.init" (list . "batch.sch.chart.config.values") -}} +{{- if not .Values.serviceAccountName }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "sch.names.fullName" (list .) }} + namespace: {{ .Release.Namespace }} + labels: +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} +imagePullSecrets: + - name: sa-{{ .Release.Namespace }} + {{- if .Values.global.imagePullSecret.username }} + - name: {{ .Release.Name | lower }}-pull-secret + {{- end }} + +{{- end }} diff --git a/helm-charts/batch/values.yaml b/helm-charts/batch/values.yaml index 391e5d87..adab45fd 100644 --- a/helm-charts/batch/values.yaml +++ b/helm-charts/batch/values.yaml @@ -20,37 +20,90 @@ global: images: - registry: &imageRegistry us.icr.io + registry: &imageRegistry minikube.local:5000 imageLibrary: '' imagePrefix: '' imageTag: latest - pullPolicy: IfNotPresent - database: - type: db2 - ssl: {} + pullPolicy: Always imagePullSecret: - registry: *imageRegistry + username: '' + sch: + enabled: true + database: + ## Database connection properties + type: DB2 + dbName: DATABASE + hostname: '' + port: 50000 + username: db2admin + # Name of pre-created secret containing database credentals + credsSecretName: '' + # The XOR-encrypted password injected into Liberty configuration + wlp_psw: "{xor}Oz1tPjsyNjE=" + # The SPM-encrypted password injected into Bootstrap.properties + spm_psw: "5itAmT5UzH7wR6kvkYqkTw==" + # Oracle Service name, where applicable + serviceName: '' + ssl: + enabled: false + # Name of the secret containing the database TLS certificate + secretName: '' + # Key in the above secret with the certificate + secretKey: db2admin.arm apps: common: persistence: ## Persistence volume to store data (such as non-log files) enabled: false - # JMX Stats + ## If enabled, creates a PVC to connect to IBM Cloud Object Storage + ## Properties secretKey, accessKey, instanceId, and bucketName are required + ## Values available in the WebUI where the bucket was pre-created + # secretKey: "" + # accessKey: "" + # instanceId: "" + # bucketName: "" + mountPoint: '' + subDir: '' jmxstats: enabled: false - timerPeriod: 60000 - batch: + +# Require Intel-based workers +arch: "amd64" + +# Name of an existing ServiceAccount for running the Batch programs +serviceAccountName: "" + +# Default Java Options for batch jobs +javaOptions: '-Xms1g -Xmx1g' + +# Resource limits for Batch jobs (can be overridden per job) +resources: + limits: + cpu: "1" + memory: "2Gi" + requests: + cpu: "0.5" + memory: "1Gi" + +# Number of successful job executions to keep (can be overridden per job) +successfulJobsHistoryLimit: 3 + +# Number of attempts to run a batch job, in case of failure (can be overridden per job) +backoffLimit: 5 + +# Specifies how to treat concurrent executions of a Job (can be overridden per job) +# Valid values are: +# - "Allow": allows CronJobs to run concurrently +# - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet +# - "Replace": cancels currently running job and replaces it with a new one +concurrencyPolicy: Forbid + +programs: + queued: schedule: "*/30 * * * *" - runAs: 1001 - successfulJobsHistoryLimit: 3 - ttlSecondsAfterFinished: 60 - backoffLimit: 5 - # programName could be used to call a specific batch program, example: - # programName: curam.healthcare.sl.intf.BulkICReassessment.process - # programParameters can be used to include additional parameters, example: - # programParameters: '"evidenceMigrationDetails=CASE|DET0026071;DET0026027|CT26301"' - programName: "" - programParameters: "" - # javaMetrics: - # antOpts: "-Xgcpolicy:gencon -Xverbosegclog:/tmp/GCLogs_chunker.log" - # heapSize: "-Xms512m -Xmx512m" + # Call specific batch programs with specific parameters, where relevant + # reassessment: + # schedule: "0 2 * * 6" + # className: curam.healthcare.sl.intf.BulkICReassessment.process + # parameters: "evidenceMigrationDetails=CASE|DET0026071;DET0026027|CT26301" + # username: superuser diff --git a/helm-charts/ce-app/templates/_helpers.tpl b/helm-charts/ce-app/templates/_helpers.tpl deleted file mode 100644 index 0b739dee..00000000 --- a/helm-charts/ce-app/templates/_helpers.tpl +++ /dev/null @@ -1,101 +0,0 @@ -{{/* -Copyright 2019,2020 IBM Corporation - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/}} - -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "ce-app.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "ce-app.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "ce-app.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create the image pull secret -*/}} -{{- define "imagePullSecret" }} -{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .registry (printf "%s:%s" .username (required "Credentials password is required" .password) | b64enc) | b64enc }} -{{- end }} - -{{/* -Build up full image path -*/}} -{{- define "ce-app.imageFullName" -}} -{{- .Values.global.images.registry -}}/ -{{- if .Values.global.ceApp.imageLibrary -}} -{{- .Values.global.ceApp.imageLibrary -}}/ -{{- end -}} -{{- .Values.global.ceApp.imageName -}}:{{- .Values.global.ceApp.imageTag -}} -{{- end -}} - -{{/* -Mountpoint for the persistence storage on the application pods (e.g. /tmp/persistence ) -*/}} -{{- define "persistence.mountPoint" -}} -{{- if .Values.global.apps.common.persistence.mountPoint -}} -{{- .Values.global.apps.common.persistence.mountPoint -}} -{{- else -}} -{{- "/tmp/persistence" -}} -{{- end -}} -{{- end -}} - -{{/* -Folder name to persist release files inside mountpoint (e.g. /tmp/persistence/release_name") -*/}} -{{- define "persistence.subDir" -}} -{{- if .Values.global.apps.common.persistence.subDir -}} -{{- .Values.global.apps.common.persistence.subDir -}} -{{- else -}} -{{- printf "%s" $.Release.Name -}} -{{- end -}} -{{- end -}} - -{{/* -Common labels -*/}} -{{- define "ce-app.labels" -}} -app.kubernetes.io/name: {{ include "ce-app.name" . }} -helm.sh/chart: {{ include "ce-app.chart" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end -}} diff --git a/helm-charts/ce-app/templates/deployment.yaml b/helm-charts/ce-app/templates/deployment.yaml deleted file mode 100644 index 446585b6..00000000 --- a/helm-charts/ce-app/templates/deployment.yaml +++ /dev/null @@ -1,98 +0,0 @@ -{{- with .Values.global.ceApp }} -{{- if .imageName }} ---- -############################################################################### -# Copyright 2019,2020 IBM Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -############################################################################### - -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "ce-app.fullname" $ }} - namespace: {{ $.Release.Namespace }} - labels: -{{ include "ce-app.labels" $ | indent 4 }} -spec: - replicas: {{ .replicaCount }} - selector: - matchLabels: - app.kubernetes.io/name: {{ include "ce-app.name" $ }} - app.kubernetes.io/instance: {{ $.Release.Name }} - template: - metadata: - labels: - app.kubernetes.io/name: {{ include "ce-app.name" $ }} - app.kubernetes.io/instance: {{ $.Release.Name }} - spec: - {{- if .runAs }} - securityContext: - runAsUser: {{ .runAs }} - fsGroup: {{ .runAs }} - {{- end }} - {{- if $.Values.global.imagePullSecret.username }} - imagePullSecrets: - - name: {{ $.Release.Name }}-pull-secret - {{- end }} - volumes: - - name: service-certs - secret: - secretName: {{ include "ce-app.fullname" $ }} - {{- if $.Values.global.apps.common.persistence.enabled }} - - name: {{ $.Release.Name }}-persistence-volume - persistentVolumeClaim: - claimName: {{ $.Release.Name }}-persistence-pvc - {{- end }} - containers: - - name: {{ $.Chart.Name }} - image: {{ include "ce-app.imageFullName" $ }} - imagePullPolicy: {{ $.Values.global.images.pullPolicy }} - env: - - name: SSL_CERT_PATH - value: /mnt/service-certs - {{- if $.Values.global.apps.common.persistence.enabled }} - - name: MOUNT_POINT - value: {{ include "persistence.mountPoint" $ }} - {{- end }} - ports: - - name: client - containerPort: 443 - protocol: TCP - volumeMounts: - - name: service-certs - mountPath: /mnt/service-certs - {{- if $.Values.global.apps.common.persistence.enabled }} - - name: {{ $.Release.Name }}-persistence-volume - mountPath: {{ include "persistence.mountPoint" $ }} - subPath: {{ include "persistence.subDir" $ }} - {{- end }} - livenessProbe: - httpGet: - path: / - port: client - scheme: HTTPS - {{- with .readinessPath }} - readinessProbe: - httpGet: - path: {{ . }} - port: client - scheme: HTTPS - periodSeconds: 10 - {{- end }} - {{- with .resources }} - resources: - {{- toYaml . | nindent 12 }} - {{- end }} -{{- end }} -{{- end }} \ No newline at end of file diff --git a/helm-charts/ce-app/values.yaml b/helm-charts/ce-app/values.yaml deleted file mode 100644 index 6dffe1c1..00000000 --- a/helm-charts/ce-app/values.yaml +++ /dev/null @@ -1,42 +0,0 @@ -############################################################################### -# Copyright 2019,2020 IBM Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -############################################################################### - -global: - ceApp: - replicaCount: 1 - ingressPath: /universal - readinessPath: /universal/ - resources: {} - images: - registry: &imageRegistry us.icr.io - pullPolicy: Always - imagePullSecret: - registry: *imageRegistry - apps: - common: - port: 8443 - persistence: - ## Persistence volume to store data (such as non-log files) - enabled: false - ## If enabled, creates a PVC to connect to IBM Cloud Object Storage - ## Properties secretKey, accessKey, instanceId, and bucketName are required - ## Values available in the WebUI where the bucket was pre-created - # secretKey: "" - # accessKey: "" - # instanceId: "" - # bucketName: "" - # mountPoint: "/tmp/persistence" - # subDir: "/folder/name" diff --git a/helm-charts/configmaps/templates/_helpers.tpl b/helm-charts/configmaps/templates/_helpers.tpl deleted file mode 100644 index 6390061b..00000000 --- a/helm-charts/configmaps/templates/_helpers.tpl +++ /dev/null @@ -1,157 +0,0 @@ -{{/* -Copyright 2019,2020 IBM Corporation - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/}} - -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "configmaps.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "configmaps.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "configmaps.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Define Database hostname -*/}} -{{- define "configmaps.dbhostname" -}} -{{- if .Values.global.database.hostname -}} -{{- .Values.global.database.hostname -}} -{{- else -}} -{{- .Release.Name -}}-db2 -{{- end -}} -{{- end -}} - -{{/* -SSL properties for JDBC connection in Liberty. If global.db2.ssl.secretName is provided, assume it has been imported into a Trust Store -*/}} -{{- define "configmaps.ssljdbc" -}} -{{- if .enabled }} - sslConnection="true" - {{- if .secretName }} - sslTrustStoreLocation="/output/resources/security/db2TrustStore.jks" - sslTrustStorePassword="{xor}PDc+MTg6Nis=" - {{- end }} -{{- end }} -{{- end }} - -{{/* -Liberty Datastore properties fragment -*/}} -{{- define "configmaps.dsprops.fragment" -}} -{{- $dbConfig := .Values.global.database -}} -{{- if eq ($dbConfig.type | upper) "DB2" -}} - -{{- else if eq ($dbConfig.type | upper) "ORA" -}} - -{{- else -}} -{{ fail ("Unsupported database type provided: " $dbConfig.type) }} -{{- end -}} -{{- end -}} - -{{/* -Oracle JDBC URL -*/}} -{{- define "configmaps.oracleurl" -}} -{{- $dbConfig := .Values.global.database -}} -{{- if $dbConfig.serviceName -}} -jdbc:oracle:thin:/@//{{ include "configmaps.dbhostname" . }}:{{ $dbConfig.port }}/{{ $dbConfig.serviceName }} -{{- else -}} -jdbc:oracle:thin:@{{ include "configmaps.dbhostname" . }}:{{ $dbConfig.port }}:{{ $dbConfig.dbName }} -{{- end }} -{{- end }} - -{{/* -JDBC Connection driver JAR list -*/}} -{{- define "configmaps.dbdriver.jars" -}} -{{- if eq (.type | upper) "DB2" -}} -db2jcc4.jar db2jcc_license_cu.jar -{{- else if eq (.type | upper) "ORA" -}} -ojdbc.jar -{{- else -}} -{{ fail ("Unsupported database type provided: " .type) }} -{{- end -}} -{{- end -}} - -{{/* -Mountpoint for the persistence storage on the application pods (e.g. /tmp/persistence ) -*/}} -{{- define "persistence.mountPoint" -}} -{{- if .Values.global.apps.common.persistence.mountPoint -}} -{{- .Values.global.apps.common.persistence.mountPoint -}} -{{- else -}} -{{- "/tmp/persistence" -}} -{{- end -}} -{{- end -}} - -{{/* -Folder name to persist release files inside mountpoint (e.g. /tmp/persistence/release_name/") -*/}} -{{- define "persistence.subDir" -}} -{{- if .Values.global.apps.common.persistence.subDir -}} -{{- .Values.global.apps.common.persistence.subDir -}} -{{- else -}} -{{- printf "%s" $.Release.Name -}} -{{- end -}} -{{- end -}} - -{{/* -Common labels -*/}} -{{- define "configmaps.labels" -}} -app.kubernetes.io/name: {{ include "configmaps.name" . }} -helm.sh/chart: {{ include "configmaps.chart" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end -}} diff --git a/helm-charts/configmaps/templates/configmap-ltpa-keys.yaml b/helm-charts/configmaps/templates/configmap-ltpa-keys.yaml deleted file mode 100644 index dc1442fc..00000000 --- a/helm-charts/configmaps/templates/configmap-ltpa-keys.yaml +++ /dev/null @@ -1,30 +0,0 @@ -############################################################################### -# Copyright 2019,2020 IBM Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -############################################################################### -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ .Release.Name }}-ltpa-keys-cm - namespace: {{ .Release.Namespace }} -data: - ltpa.keys: | - # Placed by Kubernetes Configmap - com.ibm.websphere.CreationDate=Mon Oct 8 08\:08\:08 UTC 2019 - com.ibm.websphere.CreationHost=localhost - com.ibm.websphere.ltpa.version=1.0 - com.ibm.websphere.ltpa.Realm=defaultRealm - com.ibm.websphere.ltpa.3DESKey={{ .Values.global.commonAppConfig.ltpa.encryptKey }} - com.ibm.websphere.ltpa.PrivateKey={{ .Values.global.commonAppConfig.ltpa.privateKey }} - com.ibm.websphere.ltpa.PublicKey={{ .Values.global.commonAppConfig.ltpa.publicKey }} diff --git a/helm-charts/configmaps/values.yaml b/helm-charts/configmaps/values.yaml deleted file mode 100644 index b93630a7..00000000 --- a/helm-charts/configmaps/values.yaml +++ /dev/null @@ -1,56 +0,0 @@ -############################################################################### -# Copyright 2019,2020 IBM Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -############################################################################### - -# Default values for appserver. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -global: - commonAppConfig: - port: 8443 - maxInMemorySessionCount: 1000 - ltpa: - encryptKey: oG+Be8gmh9oxFDV0JCQiWxlqIJltme1h3/cGjIn+mR4\= - privateKey: p6IkWX/f1ZI/CMmuzEsJW5d/ukCQLHe2iBRNAnSzavz2IyfHdJ9l5ybeYDAYST+HMrRwPh5R2mRu09m6Sb7a5YXpFwN9M1vSXJVcId9UqhG9e5TDO5d77K9BuPTELE6H5kOBzkazs3y9gFEDZ4fDTAhxZLNI7XTK3oQqjzadu2eX+UF4AAmHp37MmtqKhdtV/pe79rcMIC4EEmx9U3wEMKvIdyekAaBpM7wquLUyEZIpa8F82j07BnvRRrYsnE6NDPGBSPxsfr81T/6Ohkye+Zy29jJ5IiXGzO+2S5lfz9D8+TUxKWETtmR3I4d38ZrjnfcCJSiS2hqTGIoMCVJCUwGSQAJYzDdcK2/yzZflYvM\= - publicKey: ALe026+tabwYGSinI8MDIGlRznv7WMIs5b9zDgES3pYe8xtnSl42jaETRje322S46ql9YmMNZLTtkUSwZMNYR1XTUR8QPQx1HgR75wKs+oSHFvDGsi6sejbwSfLW+X8OSCSq4YMQGGUlGIV6iEFTVlyOkSeSjZQIvaiKaQHeHs7NAQAB - apps: - common: - persistence: - enabled: false - sessionTimeout: 30m - transactionTimeout: 3m - cookieHttpOnly: true - loginTrace: true - security: {} - openldap: - enabled: false - identityOnly: false - isam: - enabled: false - database: - ## Database connection configuration - # The property wlp_psw: contains the XOR password injected in the Liberty configuration - # The property spm_psw: contains the encrypted password (by SPM) injected in Bootstrap.properties - type: db2 - port: 50000 - dbName: DATABASE - username: db2admin - wlp_psw: "{xor}Oz1tPjsyNjE=" - spm_psw: "5itAmT5UzH7wR6kvkYqkTw==" - ssl: {} - ingress: - hostname: minikube.local - diff --git a/helm-charts/ihs/.helmignore b/helm-charts/ihs/.helmignore deleted file mode 100644 index 50af0317..00000000 --- a/helm-charts/ihs/.helmignore +++ /dev/null @@ -1,22 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/helm-charts/ihs/Chart.yaml b/helm-charts/ihs/Chart.yaml deleted file mode 100644 index 878c37b1..00000000 --- a/helm-charts/ihs/Chart.yaml +++ /dev/null @@ -1,34 +0,0 @@ -############################################################################### -# Copyright 2019,2020 IBM Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -############################################################################### -apiVersion: v1 -name: ihs -description: IBM IHS Chart for SPM webserver within a Kubernetes Cluster -version: 2.1.0 -maintainers: - - name: Cúram SPM Dev Team - url: https://github.com/IBM/spm-kubernetes -sources: - - https://github.com/IBM/spm-kubernetes -keywords: - - Liberty - - Minikube - - IKS - - OpenShift - - RHOS - - Curam - - SPM -home: https://www.ibm.com/watson-health/solutions/social-program-management -icon: https://avatars2.githubusercontent.com/u/1459110 \ No newline at end of file diff --git a/helm-charts/ihs/LICENSE b/helm-charts/ihs/LICENSE deleted file mode 100644 index cd482d89..00000000 --- a/helm-charts/ihs/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, -and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by -the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all -other entities that control, are controlled by, or are under common -control with that entity. For the purposes of this definition, -"control" means (i) the power, direct or indirect, to cause the -direction or management of such entity, whether by contract or -otherwise, or (ii) ownership of fifty percent (50%) or more of the -outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity -exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation -source, and configuration files. - -"Object" form shall mean any form resulting from mechanical -transformation or translation of a Source form, including but -not limited to compiled object code, generated documentation, -and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or -Object form, made available under the License, as indicated by a -copyright notice that is included in or attached to the work -(an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object -form, that is based on (or derived from) the Work and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. For the purposes -of this License, Derivative Works shall not include works that remain -separable from, or merely link (or bind by name) to the interfaces of, -the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including -the original version of the Work and any modifications or additions -to that Work or Derivative Works thereof, that is intentionally -submitted to Licensor for inclusion in the Work by the copyright owner -or by an individual or Legal Entity authorized to submit on behalf of -the copyright owner. For the purposes of this definition, "submitted" -means any form of electronic, verbal, or written communication sent -to the Licensor or its representatives, including but not limited to -communication on electronic mailing lists, source code control systems, -and issue tracking systems that are managed by, or on behalf of, the -Licensor for the purpose of discussing and improving the Work, but -excluding communication that is conspicuously marked or otherwise -designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity -on behalf of whom a Contribution has been received by Licensor and -subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -copyright license to reproduce, prepare Derivative Works of, -publicly display, publicly perform, sublicense, and distribute the -Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -(except as stated in this section) patent license to make, have made, -use, offer to sell, sell, import, and otherwise transfer the Work, -where such license applies only to those patent claims licensable -by such Contributor that are necessarily infringed by their -Contribution(s) alone or by combination of their Contribution(s) -with the Work to which such Contribution(s) was submitted. If You -institute patent litigation against any entity (including a -cross-claim or counterclaim in a lawsuit) alleging that the Work -or a Contribution incorporated within the Work constitutes direct -or contributory patent infringement, then any patent licenses -granted to You under this License for that Work shall terminate -as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the -Work or Derivative Works thereof in any medium, with or without -modifications, and in Source or Object form, provided that You -meet the following conditions: - -(a) You must give any other recipients of the Work or -Derivative Works a copy of this License; and - -(b) You must cause any modified files to carry prominent notices -stating that You changed the files; and - -(c) You must retain, in the Source form of any Derivative Works -that You distribute, all copyright, patent, trademark, and -attribution notices from the Source form of the Work, -excluding those notices that do not pertain to any part of -the Derivative Works; and - -(d) If the Work includes a "NOTICE" text file as part of its -distribution, then any Derivative Works that You distribute must -include a readable copy of the attribution notices contained -within such NOTICE file, excluding those notices that do not -pertain to any part of the Derivative Works, in at least one -of the following places: within a NOTICE text file distributed -as part of the Derivative Works; within the Source form or -documentation, if provided along with the Derivative Works; or, -within a display generated by the Derivative Works, if and -wherever such third-party notices normally appear. The contents -of the NOTICE file are for informational purposes only and -do not modify the License. You may add Your own attribution -notices within Derivative Works that You distribute, alongside -or as an addendum to the NOTICE text from the Work, provided -that such additional attribution notices cannot be construed -as modifying the License. - -You may add Your own copyright statement to Your modifications and -may provide additional or different license terms and conditions -for use, reproduction, or distribution of Your modifications, or -for any such Derivative Works as a whole, provided Your use, -reproduction, and distribution of the Work otherwise complies with -the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, -any Contribution intentionally submitted for inclusion in the Work -by You to the Licensor shall be under the terms and conditions of -this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify -the terms of any separate license agreement you may have executed -with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade -names, trademarks, service marks, or product names of the Licensor, -except as required for reasonable and customary use in describing the -origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or -agreed to in writing, Licensor provides the Work (and each -Contributor provides its Contributions) on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -implied, including, without limitation, any warranties or conditions -of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -PARTICULAR PURPOSE. You are solely responsible for determining the -appropriateness of using or redistributing the Work and assume any -risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, -whether in tort (including negligence), contract, or otherwise, -unless required by applicable law (such as deliberate and grossly -negligent acts) or agreed to in writing, shall any Contributor be -liable to You for damages, including any direct, indirect, special, -incidental, or consequential damages of any character arising as a -result of this License or out of the use or inability to use the -Work (including but not limited to damages for loss of goodwill, -work stoppage, computer failure or malfunction, or any and all -other commercial damages or losses), even if such Contributor -has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing -the Work or Derivative Works thereof, You may choose to offer, -and charge a fee for, acceptance of support, warranty, indemnity, -or other liability obligations and/or rights consistent with this -License. However, in accepting such obligations, You may act only -on Your own behalf and on Your sole responsibility, not on behalf -of any other Contributor, and only if You agree to indemnify, -defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason -of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - -To apply the Apache License to your work, attach the following -boilerplate notice, with the fields enclosed by brackets "[]" -replaced with your own identifying information. (Don't include -the brackets!) The text should be enclosed in the appropriate -comment syntax for the file format. We also recommend that a -file or class name and description of purpose be included on the -same "printed page" as the copyright notice for easier -identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/helm-charts/ihs/templates/_helpers.tpl b/helm-charts/ihs/templates/_helpers.tpl deleted file mode 100644 index 58b8444d..00000000 --- a/helm-charts/ihs/templates/_helpers.tpl +++ /dev/null @@ -1,104 +0,0 @@ -{{/* -Copyright 2019,2020 IBM Corporation - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/}} - -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "ihs.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "ihs.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "ihs.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create the image pull secret -*/}} -{{- define "imagePullSecret" }} -{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .registry (printf "%s:%s" .username (required "Credentials password is required" .password) | b64enc) | b64enc }} -{{- end }} - -{{/* -Build up full image path -*/}} -{{- define "ihs.imageFullName" -}} -{{- .registry -}}/ -{{- if .imageLibrary -}} -{{- .imageLibrary -}}/ -{{- end -}} -{{- if .imagePrefix -}} -{{- .imagePrefix -}} -{{- end -}} -ihs:{{- .imageTag -}} -{{- end -}} - -{{/* -Mountpoint for the persistence storage on the application pods (e.g. /tmp/persistence ) -*/}} -{{- define "persistence.mountPoint" -}} -{{- if .Values.global.apps.common.persistence.mountPoint -}} -{{- .Values.global.apps.common.persistence.mountPoint -}} -{{- else -}} -{{- "/tmp/persistence" -}} -{{- end -}} -{{- end -}} - -{{/* -Folder name to persist release files inside mountpoint (e.g. /tmp/persistence/release_name") -*/}} -{{- define "persistence.subDir" -}} -{{- if .Values.global.apps.common.persistence.subDir -}} -{{- .Values.global.apps.common.persistence.subDir -}} -{{- else -}} -{{- printf "%s" $.Release.Name -}} -{{- end -}} -{{- end -}} - -{{/* -Common labels -*/}} -{{- define "ihs.labels" -}} -app.kubernetes.io/name: {{ include "ihs.name" . }} -helm.sh/chart: {{ include "ihs.chart" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end -}} diff --git a/helm-charts/ihs/templates/deployment.yaml b/helm-charts/ihs/templates/deployment.yaml deleted file mode 100644 index cdf93b52..00000000 --- a/helm-charts/ihs/templates/deployment.yaml +++ /dev/null @@ -1,93 +0,0 @@ -{{- with .Values.global.ihs }} ---- -############################################################################### -# Copyright 2019,2020 IBM Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -############################################################################### - -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "ihs.fullname" $ }} - namespace: {{ $.Release.Namespace }} - labels: -{{ include "ihs.labels" $ | indent 4 }} -spec: - replicas: {{ .replicaCount }} - selector: - matchLabels: - app.kubernetes.io/name: {{ include "ihs.fullname" $ }} - app.kubernetes.io/instance: {{ $.Release.Name }} - template: - metadata: - labels: - app.kubernetes.io/name: {{ include "ihs.fullname" $ }} - app.kubernetes.io/instance: {{ $.Release.Name }} - spec: - {{- if .runAs }} - securityContext: - runAsUser: {{ .runAs }} - fsGroup: {{ .runAs }} - {{- end }} - {{- if $.Values.global.imagePullSecret.username }} - imagePullSecrets: - - name: {{ $.Release.Name }}-pull-secret - {{- end }} - restartPolicy: {{ .restartPolicy | default "Always" }} - volumes: - - name: service-certs - secret: - secretName: {{ include "ihs.fullname" $ }} - {{- if $.Values.global.apps.common.persistence.enabled }} - - name: {{ $.Release.Name }}-persistence-volume - persistentVolumeClaim: - claimName: {{ $.Release.Name }}-persistence-pvc - {{- end }} - containers: - - name: {{ $.Chart.Name }} - image: {{ include "ihs.imageFullName" $.Values.global.images }} - imagePullPolicy: {{ $.Values.global.images.pullPolicy }} - env: - - name: SSL_CERT_PATH - value: /mnt/service-certs - {{- if $.Values.global.apps.common.persistence.enabled }} - - name: MOUNT_POINT - value: {{ include "persistence.mountPoint" $ }} - {{- end }} - ports: - - name: client - containerPort: 443 - protocol: TCP - {{- with .readinessPath }} - readinessProbe: - httpGet: - path: {{ . }} - port: client - scheme: HTTPS - periodSeconds: 10 - {{- end }} - {{- with .resources }} - resources: - {{- toYaml . | nindent 12 }} - {{- end }} - volumeMounts: - - name: service-certs - mountPath: /mnt/service-certs - {{- if $.Values.global.apps.common.persistence.enabled }} - - name: {{ $.Release.Name }}-persistence-volume - mountPath: {{ include "persistence.mountPoint" $ }} - subPath: {{ include "persistence.subDir" $ }} - {{- end }} - -{{ end }} diff --git a/helm-charts/ihs/values.yaml b/helm-charts/ihs/values.yaml deleted file mode 100644 index bcba9f24..00000000 --- a/helm-charts/ihs/values.yaml +++ /dev/null @@ -1,45 +0,0 @@ -############################################################################### -# Copyright 2019,2020 IBM Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -############################################################################### -global: - images: - registry: &imageRegistry us.icr.io - imageLibrary: '' - imagePrefix: '' - imageTag: latest - pullPolicy: Always - ihs: - runAs: 1000 - replicaCount: 1 - readinessPath: /CuramStatic/ - ingressPath: /CuramStatic - resources: {} - imagePullSecret: - registry: *imageRegistry - apps: - common: - port: 8443 - persistence: - ## Persistence volume to store data (such as non-log files) - enabled: false - ## If enabled, creates a PVC to connect to IBM Cloud Object Storage - ## Properties secretKey, accessKey, instanceId, and bucketName are required - ## Values available in the WebUI where the bucket was pre-created - # secretKey: "" - # accessKey: "" - # instanceId: "" - # bucketName: "" - # mountPoint: "/tmp/persistence" - # subDir: "/folder/name" diff --git a/helm-charts/mqserver/Chart.yaml b/helm-charts/mqserver/Chart.yaml index f9e6cb0d..2ce1c8f0 100644 --- a/helm-charts/mqserver/Chart.yaml +++ b/helm-charts/mqserver/Chart.yaml @@ -13,10 +13,10 @@ # See the License for the specific language governing permissions and # limitations under the License. ############################################################################### -apiVersion: v1 +apiVersion: v2 name: mqserver description: Helm Chart for Deployment of MQ server for SPM within a Kubernetes Cluster -version: 1.3.0 +version: 1.5.0 maintainers: - name: Cúram SPM Dev Team url: https://github.com/IBM/spm-kubernetes @@ -31,4 +31,10 @@ keywords: - Curam - SPM home: https://www.ibm.com/watson-health/solutions/social-program-management -icon: https://avatars2.githubusercontent.com/u/1459110 \ No newline at end of file +icon: https://avatars2.githubusercontent.com/u/1459110 +dependencies: + - name: ibm-sch + repository: "@sch" + version: "^1.2.17" + alias: sch + condition: global.sch.enabled diff --git a/helm-charts/mqserver/RELEASENOTES.md b/helm-charts/mqserver/RELEASENOTES.md new file mode 100644 index 00000000..781272eb --- /dev/null +++ b/helm-charts/mqserver/RELEASENOTES.md @@ -0,0 +1,39 @@ +# What's new + +* Chart realignment. + +### Fixes + +## Prerequisites + +* See README.md + +# Version History + +## v1.5.0 +* Added a check before creating deployment to see if multi-instance MQ is desired. +* Added values for use in multi-instance MQ, with both static and dynamic storage. +* Added a stateful set YAML file for use in multi-instance MQ. +* Added PV and PVC YAML files for use in multi-instance MQ. + +## v1.4.0 + +* Moved Liberty configuration fragment to `apps` Chart. +* Added pre-install hook to encrypt the password for use in Liberty +* Added support for a multi-instance topology + +## v1.3.0 + +* Revert to pre-created certificates + +## v1.2.0 + +* Add support for running with multi-instance IBM MQ hosted outside Kubernetes + +## v1.1.0 + +* Initial release + +## v1.0.0 + +* Limited availability preview diff --git a/helm-charts/mqserver/templates/_helpers.tpl b/helm-charts/mqserver/templates/_helpers.tpl index 20214496..53ead9bf 100644 --- a/helm-charts/mqserver/templates/_helpers.tpl +++ b/helm-charts/mqserver/templates/_helpers.tpl @@ -80,3 +80,16 @@ app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} {{- end }} app.kubernetes.io/managed-by: {{ .Release.Service }} {{- end -}} + +{{/* +InitContainer resources +*/}} +{{- define "initContainer.resources" }} +resources: + limits: + memory: 256Mi + cpu: 250m + requests: + memory: 128Mi + cpu: 250m +{{- end }} diff --git a/helm-charts/mqserver/templates/_sch-chart-config.tpl b/helm-charts/mqserver/templates/_sch-chart-config.tpl new file mode 100644 index 00000000..4b89b4d7 --- /dev/null +++ b/helm-charts/mqserver/templates/_sch-chart-config.tpl @@ -0,0 +1,23 @@ +{{- /* +".sch.chart.config.values" contains the default configuration values used by +the Shared Configurable Helpers overridden for this chart. +*/ -}} +{{- define "mqserver.sch.chart.config.values" -}} +sch: + chart: + labelType: "prefixed" + podSecurityContext: + hostIPC: false + hostNetwork: false + hostPID: false + securityContext: + runAsNonRoot: true + containerSecurityContext: + securityContext: + privileged: false + readOnlyRootFilesystem: false + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL +{{- end -}} diff --git a/helm-charts/mqserver/templates/configmap-mqsc.yaml b/helm-charts/mqserver/templates/configmap-mqsc.yaml index ce52eb95..a1ac8901 100644 --- a/helm-charts/mqserver/templates/configmap-mqsc.yaml +++ b/helm-charts/mqserver/templates/configmap-mqsc.yaml @@ -31,23 +31,30 @@ data: DEFINE QLOCAL(QN.WORKFLOWACTIVITY) BOTHRESH(5) BOQNAME(QN.WORKFLOWERROR) CLWLUSEQ (ANY) DEFBIND (NOTFIXED) REPLACE DEFINE QLOCAL(QN.DPERROR) BOTHRESH(5) BOQNAME(QN.CURAMDEADMESSAGEQUEUE) CLWLUSEQ (ANY) DEFBIND (NOTFIXED) REPLACE DEFINE QLOCAL(QN.DPENACTMENT) BOTHRESH(5) BOQNAME(QN.DPERROR) CLWLUSEQ (ANY) DEFBIND (NOTFIXED) REPLACE - ALTER QMGR CHLAUTH(DISABLED) - ALTER QMGR DEADQ(QN.CURAMDEADMESSAGEQUEUE) + ALTER QMGR CHLAUTH(DISABLED) DEADQ(QN.CURAMDEADMESSAGEQUEUE) DEFINE LISTENER (MQ_LSN) TRPTYPE (TCP) CONTROL (QMGR) PORT (1414) REPLACE START LISTENER (MQ_LSN) IGNSTATE(YES) - DEFINE CHANNEL(MQ_CHN) CHLTYPE(SVRCONN) TRPTYPE(TCP) SSLCIPH (TLS_RSA_WITH_AES_128_CBC_SHA256) CERTLABL ('ibmwebspheremqqm1') SSLCAUTH (OPTIONAL) REPLACE - DEFINE CHANNEL(MQ_CHN) CHLTYPE(CLNTCONN) TRPTYPE(TCP) CONNAME('') QMNAME({{ $.Values.global.mq.queueManager.name | default "QM1" }}) SSLCIPH (TLS_RSA_WITH_AES_128_CBC_SHA256) CERTLABL ('ibmwebspheremqqm1') REPLACE + DEFINE CHANNEL(MQ_CHN) CHLTYPE(SVRCONN) TRPTYPE(TCP) SSLCIPH (TLS_RSA_WITH_AES_128_CBC_SHA256) CERTLABL ('ibmwebspheremq{{ .Values.global.mq.queueManager.name | lower }}') SSLCAUTH (OPTIONAL) REPLACE DEFINE TOPIC (CURAMCACHEINVALIDATIONTOPIC) TOPICSTR (CURAMCACHEINVALIDATIONTOPIC) REPLACE - SET AUTHREC OBJTYPE(QMGR) PRINCIPAL('default') AUTHADD(ALL) - SET AUTHREC OBJTYPE(QUEUE) PROFILE('QN.DPENACTMENT') PRINCIPAL('default') AUTHADD(ALL) - SET AUTHREC OBJTYPE(QUEUE) PROFILE('QN.DPERROR') PRINCIPAL('default') AUTHADD(ALL) - SET AUTHREC OBJTYPE(QUEUE) PROFILE('QN.WORKFLOWACTIVITY') PRINCIPAL('default') AUTHADD(ALL) - SET AUTHREC OBJTYPE(QUEUE) PROFILE('QN.WORKFLOWENACTMENT') PRINCIPAL('default') AUTHADD(ALL) - SET AUTHREC OBJTYPE(QUEUE) PROFILE('QN.WORKFLOWERROR') PRINCIPAL('default') AUTHADD(ALL) - SET AUTHREC OBJTYPE(QUEUE) PROFILE('QN.CURAMDEADMESSAGEQUEUE') PRINCIPAL('default') AUTHADD(ALL) - SET AUTHREC OBJTYPE(LISTENER) PROFILE('MQ_LSN') PRINCIPAL('default') AUTHADD(ALL) - SET AUTHREC OBJTYPE(CHANNEL) PROFILE('MQ_CHN') PRINCIPAL('default') AUTHADD(ALL) - SET AUTHREC OBJTYPE(TOPIC) PROFILE('CURAMCACHEINVALIDATIONTOPIC') PRINCIPAL('default') AUTHADD(ALL) + SET AUTHREC OBJTYPE(QMGR) PRINCIPAL('app') AUTHADD(ALL) + SET AUTHREC OBJTYPE(QUEUE) PROFILE('QN.DPENACTMENT') PRINCIPAL('app') AUTHADD(ALL) + SET AUTHREC OBJTYPE(QUEUE) PROFILE('QN.DPERROR') PRINCIPAL('app') AUTHADD(ALL) + SET AUTHREC OBJTYPE(QUEUE) PROFILE('QN.WORKFLOWACTIVITY') PRINCIPAL('app') AUTHADD(ALL) + SET AUTHREC OBJTYPE(QUEUE) PROFILE('QN.WORKFLOWENACTMENT') PRINCIPAL('app') AUTHADD(ALL) + SET AUTHREC OBJTYPE(QUEUE) PROFILE('QN.WORKFLOWERROR') PRINCIPAL('app') AUTHADD(ALL) + SET AUTHREC OBJTYPE(QUEUE) PROFILE('QN.CURAMDEADMESSAGEQUEUE') PRINCIPAL('app') AUTHADD(ALL) + SET AUTHREC OBJTYPE(LISTENER) PROFILE('MQ_LSN') PRINCIPAL('app') AUTHADD(ALL) + SET AUTHREC OBJTYPE(CHANNEL) PROFILE('MQ_CHN') PRINCIPAL('app') AUTHADD(ALL) + SET AUTHREC OBJTYPE(TOPIC) PROFILE('CURAMCACHEINVALIDATIONTOPIC') PRINCIPAL('app') AUTHADD(ALL) + +{{ $apps := .Values.global.apps.config }} +{{- range $name, $app := $apps }} +{{- if and ($app.enabled) (not (hasKey $app "mqConnectionNameList")) }} + channel_{{$name}}.mqsc: | + DEFINE CHANNEL(MQ_CHN) CHLTYPE(CLNTCONN) TRPTYPE(TCP) CONNAME('{{ $.Release.Name }}-mqserver-{{ $name }}') QMNAME({{ $.Values.global.mq.queueManager.name }}) SSLCIPH (TLS_RSA_WITH_AES_128_CBC_SHA256) CERTLABL ('ibmwebspheremq{{ $.Values.global.mq.queueManager.name | lower }}') REPLACE + +{{- end }} +{{- end }} diff --git a/helm-charts/mqserver/templates/deployment.yaml b/helm-charts/mqserver/templates/deployment.yaml index 7ec7f856..534f0a8d 100644 --- a/helm-charts/mqserver/templates/deployment.yaml +++ b/helm-charts/mqserver/templates/deployment.yaml @@ -1,6 +1,7 @@ {{ $apps := .Values.global.apps.config }} {{- range $name, $app := $apps }} {{- if and ($app.enabled) (not (hasKey $app "mqConnectionNameList")) }} +{{- if and (not ($.Values.global.mq.multiInstance.cephEnabled)) (not ($.Values.global.mq.multiInstance.nfsEnabled)) }} --- ############################################################################### # Copyright 2019,2020 IBM Corporation @@ -46,36 +47,20 @@ spec: - name: mqsc-cmds configMap: name: {{ $.Release.Name }}-mq-config - - name: modified-cmds - emptyDir: {} {{- if $.Values.global.mq.tlsSecretName }} - name: service-certs secret: secretName: {{ $.Release.Name }}-{{ $.Values.global.mq.tlsSecretName }} {{- end}} - initContainers: - - name: set-mq-conname - image: ibmjava:8-sdk - command: - - /bin/sh - - -c - - > - \cp /mnt/mqsc/20-config.mqsc /mnt/mod-mqsc/ ; sed -i "s/CONNAME('')/CONNAME('{{ $.Release.Name }}-mqserver-{{ $name }}')/" /mnt/mod-mqsc/20-config.mqsc - volumeMounts: - - name: mqsc-cmds - mountPath: /mnt/mqsc/20-config.mqsc - subPath: config.mqsc - - name: modified-cmds - mountPath: /mnt/mod-mqsc containers: - name: {{ $.Chart.Name }}-{{ $name }} - image: {{ include "mqserver.imageFullName" $.Values.global.images }} + image: ibmcom/mq:{{ $.Values.global.mq.version }} imagePullPolicy: {{ $.Values.global.pullPolicy }} env: - name: LICENSE value: {{ $.Values.global.license }} - name: MQ_QMGR_NAME - value: {{ $.Values.global.mq.queueManager.name | default "QM1" }} + value: {{ $.Values.global.mq.queueManager.name }} - name: LOG_FORMAT value: {{ $.Values.log.format | default "basic" }} - name: MQ_ENABLE_METRICS @@ -87,11 +72,15 @@ spec: - name: MQ_DEV value: "false" - name: MQ_ADMIN_PASSWORD - value: {{ $.Values.global.mq.queueManager.secret.adminPasswordKey }} - # valueFrom: - # secretKeyRef: - # name: {{ $.Values.global.mq.queueManager.secret.name }} - # key: {{ $.Values.global.mq.queueManager.secret.adminPasswordKey }} + valueFrom: + secretKeyRef: + name: {{ default (printf "%s-mq-credentials" $.Release.Name) $.Values.global.mq.queueManager.secret.name }} + key: {{ $.Values.global.mq.queueManager.secret.adminPasswordKey }} + - name: MQ_APP_PASSWORD + valueFrom: + secretKeyRef: + name: {{ default (printf "%s-mq-credentials" $.Release.Name) $.Values.global.mq.queueManager.secret.name }} + key: {{ $.Values.global.mq.queueManager.secret.appPasswordKey }} ports: - containerPort: 1414 - containerPort: 9443 @@ -136,9 +125,12 @@ spec: {{- toYaml . | nindent 12 }} {{- end }} volumeMounts: - - name: modified-cmds + - name: mqsc-cmds mountPath: /etc/mqm/20-config.mqsc - subPath: 20-config.mqsc + subPath: config.mqsc + - name: mqsc-cmds + mountPath: /etc/mqm/30-channel.mqsc + subPath: channel_{{$name}}.mqsc {{- if $.Values.global.mq.tlsSecretName }} - name: service-certs mountPath: /etc/mqm/pki/keys/ibmwebspheremq{{ $.Values.global.mq.queueManager.name | default "QM1" | lower }} @@ -146,3 +138,4 @@ spec: {{- end }} {{- end }} {{- end }} +{{- end }} diff --git a/helm-charts/mqserver/templates/hooks/hook-create-mq-creds.yaml b/helm-charts/mqserver/templates/hooks/hook-create-mq-creds.yaml new file mode 100644 index 00000000..2b0cb4f3 --- /dev/null +++ b/helm-charts/mqserver/templates/hooks/hook-create-mq-creds.yaml @@ -0,0 +1,81 @@ +{{- include "sch.config.init" (list . "mqserver.sch.chart.config.values") -}} +{{- if not .Values.global.mq.queueManager.secret.name }} +--- +############################################################################### +# Copyright 2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "sch.names.fullCompName" (list . "create-mq-creds") }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "create-hook") | nindent 4 }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-weight": "4" + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation +spec: + backoffLimit: 1 + template: + metadata: + labels: + {{- include "sch.metadata.labels.standard" (list . "create-hook") | nindent 8 }} + spec: + restartPolicy: Never + {{- include "sch.security.securityContext" (list . .sch.chart.podSecurityContext) | nindent 6 }} + affinity: + {{- include "sch.affinity.nodeAffinity" (list . .sch.chart.nodeAffinity) | nindent 8 }} + serviceAccountName: {{ default (include "sch.names.fullCompName" (list . "secret-manager")) .Values.hookServiceAccountName }} + volumes: + - name: secrets + emptyDir: {} + initContainers: + - name: encode-pass + image: ibmcom/websphere-liberty:kernel-java8-ibmjava-ubi + command: + - /bin/sh + - -c + args: + - | + securityUtility encode $MQ_APP_PASSWORD > /secrets/xor_pass; + {{- include "sch.security.securityContext" (list . .sch.chart.containerSecurityContext) | nindent 10 }} + {{- include "initContainer.resources" . | nindent 10 }} + env: + - name: MQ_APP_PASSWORD + valueFrom: + secretKeyRef: + name: {{ default (printf "%s-mq-credentials" .Release.Name) .Values.global.mq.queueManager.secret.name }} + key: {{ .Values.global.mq.queueManager.secret.appPasswordKey }} + volumeMounts: + - name: secrets + mountPath: /secrets + containers: + - name: patch-secret + image: bitnami/kubectl:{{ .Capabilities.KubeVersion.Major }}.{{ trunc 2 .Capabilities.KubeVersion.Minor }} + command: + - /bin/sh + - -c + args: + - | + export PATH=$PATH:/opt/bitnami/kubectl/bin; + kubectl patch secret {{ .Release.Name }}-mq-credentials --type=merge -p "{\"data\": {\"enc_{{ .Values.global.mq.queueManager.secret.appPasswordKey }}\": \"$(cat /secrets/xor_pass | base64 -w0)\"}}"; + {{- include "sch.security.securityContext" (list . .sch.chart.containerSecurityContext) | nindent 10 }} + {{- include "initContainer.resources" . | nindent 10 }} + volumeMounts: + - name: secrets + mountPath: /secrets +{{- end }} diff --git a/helm-charts/mqserver/templates/hooks/hook-delete-mq-creds.yaml b/helm-charts/mqserver/templates/hooks/hook-delete-mq-creds.yaml new file mode 100644 index 00000000..fe40d2c7 --- /dev/null +++ b/helm-charts/mqserver/templates/hooks/hook-delete-mq-creds.yaml @@ -0,0 +1,54 @@ +{{- include "sch.config.init" (list . "mqserver.sch.chart.config.values") -}} +{{- if not .Values.global.mq.queueManager.secret.name }} +--- +############################################################################### +# Copyright 2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "sch.names.fullCompName" (list . "delete-mq-creds") }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "delete-hook") | nindent 4 }} + annotations: + "helm.sh/hook": post-delete + "helm.sh/hook-weight": "5" + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation +spec: + backoffLimit: 1 + template: + metadata: + labels: + {{- include "sch.metadata.labels.standard" (list . "delete-hook") | nindent 8 }} + spec: + restartPolicy: Never + {{- include "sch.security.securityContext" (list . .sch.chart.podSecurityContext) | nindent 6 }} + affinity: + {{- include "sch.affinity.nodeAffinity" (list . .sch.chart.nodeAffinity) | nindent 8 }} + serviceAccountName: {{ default (include "sch.names.fullCompName" (list . "secret-manager")) .Values.hookServiceAccountName }} + containers: + - name: delete-secret + image: bitnami/kubectl:{{ .Capabilities.KubeVersion.Major }}.{{ trunc 2 .Capabilities.KubeVersion.Minor }} + command: + - /bin/sh + - -c + args: + - | + /opt/bitnami/kubectl/bin/kubectl delete secret {{ .Release.Name }}-mq-credentials + {{- include "sch.security.securityContext" (list . .sch.chart.containerSecurityContext) | nindent 10 }} + {{- include "initContainer.resources" . | nindent 10 }} +{{- end }} diff --git a/helm-charts/mqserver/templates/hooks/hook-role-secret-mgr.yaml b/helm-charts/mqserver/templates/hooks/hook-role-secret-mgr.yaml new file mode 100644 index 00000000..ff4029d5 --- /dev/null +++ b/helm-charts/mqserver/templates/hooks/hook-role-secret-mgr.yaml @@ -0,0 +1,42 @@ +{{- include "sch.config.init" (list . "mqserver.sch.chart.config.values") -}} +{{- if not .Values.global.mq.queueManager.secret.name }} +--- +############################################################################### +# Copyright 2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: {{ include "sch.names.fullCompName" (list . "secret-manager") }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "hook") | nindent 4 }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade,post-delete + "helm.sh/hook-weight": "2" + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation +rules: + - apiGroups: + - "" + resourceNames: + - {{ .Release.Name }}-mq-credentials + resources: + - secrets + verbs: + - get + - patch + - delete +{{- end }} diff --git a/helm-charts/mqserver/templates/hooks/hook-rolebinding.yaml b/helm-charts/mqserver/templates/hooks/hook-rolebinding.yaml new file mode 100644 index 00000000..311817fd --- /dev/null +++ b/helm-charts/mqserver/templates/hooks/hook-rolebinding.yaml @@ -0,0 +1,39 @@ +{{- include "sch.config.init" (list . "mqserver.sch.chart.config.values") -}} +{{- if not .Values.global.mq.queueManager.secret.name }} +--- +############################################################################### +# Copyright 2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: {{ include "sch.names.fullCompName" (list . "secret-manager") }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "hook") | nindent 4 }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade,post-delete + "helm.sh/hook-weight": "3" + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ include "sch.names.fullCompName" (list . "secret-manager") }} +subjects: + - kind: ServiceAccount + name: {{ include "sch.names.fullCompName" (list . "secret-manager") }} + namespace: {{ .Release.Namespace }} +{{- end }} diff --git a/helm-charts/mqserver/templates/hooks/hook-secret-credentials.yaml b/helm-charts/mqserver/templates/hooks/hook-secret-credentials.yaml new file mode 100644 index 00000000..958f5766 --- /dev/null +++ b/helm-charts/mqserver/templates/hooks/hook-secret-credentials.yaml @@ -0,0 +1,35 @@ +{{- include "sch.config.init" (list . "mqserver.sch.chart.config.values") -}} +{{- if not .Values.global.mq.queueManager.secret.name }} +--- +############################################################################### +# Copyright 2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ .Release.Name }}-mq-credentials + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "hook") | nindent 4 }} + annotations: + "helm.sh/hook": pre-install + "helm.sh/hook-weight": "0" + "helm.sh/hook-delete-policy": before-hook-creation +data: + {{ .Values.global.mq.queueManager.secret.adminPasswordKey }}: {{ randAlphaNum 15 | b64enc}} + {{ .Values.global.mq.queueManager.secret.appPasswordKey }}: {{ randAlphaNum 15 | b64enc}} +{{- end }} diff --git a/helm-charts/mqserver/templates/hooks/hook-serviceaccount.yaml b/helm-charts/mqserver/templates/hooks/hook-serviceaccount.yaml new file mode 100644 index 00000000..9e1bc04a --- /dev/null +++ b/helm-charts/mqserver/templates/hooks/hook-serviceaccount.yaml @@ -0,0 +1,34 @@ +{{- include "sch.config.init" (list . "mqserver.sch.chart.config.values") -}} +{{- if not (and .Values.hookServiceAccountName .Values.global.mq.queueManager.secret.name) }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "sch.names.fullCompName" (list . "secret-manager") }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "hook") | nindent 4 }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade,post-delete + "helm.sh/hook-weight": "1" + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed,before-hook-creation +imagePullSecrets: + - name: sa-{{ .Release.Namespace }} + +{{- end }} diff --git a/helm-charts/mqserver/templates/pv-data.yaml b/helm-charts/mqserver/templates/pv-data.yaml new file mode 100644 index 00000000..1e7f9889 --- /dev/null +++ b/helm-charts/mqserver/templates/pv-data.yaml @@ -0,0 +1,42 @@ +{{ $apps := .Values.global.apps.config }} +{{- range $name, $app := $apps }} +{{- if and ($app.enabled) (not (hasKey $app "mqConnectionNameList")) }} +{{- if and ($.Values.global.mq.multiInstance.nfsEnabled) (not ($.Values.global.mq.multiInstance.cephEnabled)) }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: PersistentVolume +metadata: + name: {{ $.Release.Namespace }}-{{ $name }}-pv-data + labels: + {{ $.Release.Namespace }}-pv: {{ $.Release.Namespace }}-{{ $name }}-pv-data +spec: + accessModes: + - ReadWriteMany + capacity: + storage: 1Gi + nfs: + path: /{{ $.Values.global.mq.multiInstance.nfsFolder }}/{{ $name }}/data + server: {{ $.Values.global.mq.multiInstance.nfsIP }} + readOnly: false + claimRef: + namespace: {{ $.Release.Namespace }} + name: {{ $.Release.Namespace }}-{{ $name }}-pvc-data +{{- end }} +{{- end }} +{{- end }} diff --git a/helm-charts/mqserver/templates/pv-logs.yaml b/helm-charts/mqserver/templates/pv-logs.yaml new file mode 100644 index 00000000..e211aa80 --- /dev/null +++ b/helm-charts/mqserver/templates/pv-logs.yaml @@ -0,0 +1,42 @@ +{{ $apps := .Values.global.apps.config }} +{{- range $name, $app := $apps }} +{{- if and ($app.enabled) (not (hasKey $app "mqConnectionNameList")) }} +{{- if and ($.Values.global.mq.multiInstance.nfsEnabled) (not ($.Values.global.mq.multiInstance.cephEnabled)) }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: PersistentVolume +metadata: + name: {{ $.Release.Namespace }}-{{ $name }}-pv-logs + labels: + {{ $.Release.Namespace }}-pv: {{ $.Release.Namespace }}-{{ $name }}-pv-logs +spec: + accessModes: + - ReadWriteMany + capacity: + storage: 1Gi + nfs: + path: /{{ $.Values.global.mq.multiInstance.nfsFolder }}/{{ $name }}/logs + server: {{ $.Values.global.mq.multiInstance.nfsIP }} + readOnly: false + claimRef: + namespace: {{ $.Release.Namespace }} + name: {{ $.Release.Namespace }}-{{ $name }}-pvc-logs +{{- end }} +{{- end }} +{{- end }} diff --git a/helm-charts/mqserver/templates/pv-qm.yaml b/helm-charts/mqserver/templates/pv-qm.yaml new file mode 100644 index 00000000..f5bbb4b7 --- /dev/null +++ b/helm-charts/mqserver/templates/pv-qm.yaml @@ -0,0 +1,42 @@ +{{ $apps := .Values.global.apps.config }} +{{- range $name, $app := $apps }} +{{- if and ($app.enabled) (not (hasKey $app "mqConnectionNameList")) }} +{{- if and ($.Values.global.mq.multiInstance.nfsEnabled) (not ($.Values.global.mq.multiInstance.cephEnabled)) }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: PersistentVolume +metadata: + name: {{ $.Release.Namespace }}-{{ $name }}-pv-qm + labels: + {{ $.Release.Namespace }}-pv: {{ $.Release.Namespace }}-{{ $name }}-pv-qm +spec: + accessModes: + - ReadWriteMany + capacity: + storage: 1Gi + nfs: + path: /{{ $.Values.global.mq.multiInstance.nfsFolder }}/{{ $name }} + server: {{ $.Values.global.mq.multiInstance.nfsIP }} + readOnly: false + claimRef: + namespace: {{ $.Release.Namespace }} + name: {{ $.Release.Namespace }}-{{ $name }}-pvc-qm +{{- end }} +{{- end }} +{{- end }} diff --git a/helm-charts/mqserver/templates/pvc-data.yaml b/helm-charts/mqserver/templates/pvc-data.yaml new file mode 100644 index 00000000..bd7c7d21 --- /dev/null +++ b/helm-charts/mqserver/templates/pvc-data.yaml @@ -0,0 +1,41 @@ +{{ $apps := .Values.global.apps.config }} +{{- range $name, $app := $apps }} +{{- if and ($app.enabled) (not (hasKey $app "mqConnectionNameList")) }} +{{- if or ($.Values.global.mq.multiInstance.cephEnabled) ($.Values.global.mq.multiInstance.nfsEnabled) }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ $.Release.Namespace }}-{{ $name }}-pvc-data +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 1Gi + {{ if $.Values.global.mq.multiInstance.cephEnabled }} + storageClassName: {{ $.Values.global.mq.multiInstance.storageClassName }} + {{ else }} + selector: + matchLabels: + {{ $.Release.Namespace }}-pv: {{ $.Release.Namespace }}-{{ $name }}-pv-data + {{ end }} +{{- end }} +{{- end }} +{{- end }} diff --git a/helm-charts/mqserver/templates/pvc-logs.yaml b/helm-charts/mqserver/templates/pvc-logs.yaml new file mode 100644 index 00000000..849a9ae4 --- /dev/null +++ b/helm-charts/mqserver/templates/pvc-logs.yaml @@ -0,0 +1,41 @@ +{{ $apps := .Values.global.apps.config }} +{{- range $name, $app := $apps }} +{{- if and ($app.enabled) (not (hasKey $app "mqConnectionNameList")) }} +{{- if or ($.Values.global.mq.multiInstance.cephEnabled) ($.Values.global.mq.multiInstance.nfsEnabled) }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ $.Release.Namespace }}-{{ $name }}-pvc-logs +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 1Gi + {{ if $.Values.global.mq.multiInstance.cephEnabled }} + storageClassName: {{ $.Values.global.mq.multiInstance.storageClassName }} + {{ else }} + selector: + matchLabels: + {{ $.Release.Namespace }}-pv: {{ $.Release.Namespace }}-{{ $name }}-pv-logs + {{ end }} +{{- end }} +{{- end }} +{{- end }} diff --git a/helm-charts/mqserver/templates/pvc-qm.yaml b/helm-charts/mqserver/templates/pvc-qm.yaml new file mode 100644 index 00000000..69637db3 --- /dev/null +++ b/helm-charts/mqserver/templates/pvc-qm.yaml @@ -0,0 +1,41 @@ +{{ $apps := .Values.global.apps.config }} +{{- range $name, $app := $apps }} +{{- if and ($app.enabled) (not (hasKey $app "mqConnectionNameList")) }} +{{- if or ($.Values.global.mq.multiInstance.cephEnabled) ($.Values.global.mq.multiInstance.nfsEnabled) }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ $.Release.Namespace }}-{{ $name }}-pvc-qm +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 1Gi + {{ if $.Values.global.mq.multiInstance.cephEnabled }} + storageClassName: {{ $.Values.global.mq.multiInstance.storageClassName }} + {{ else }} + selector: + matchLabels: + {{ $.Release.Namespace }}-pv: {{ $.Release.Namespace }}-{{ $name }}-pv-qm + {{ end }} +{{- end }} +{{- end }} +{{- end }} diff --git a/helm-charts/mqserver/templates/statefulset.yaml b/helm-charts/mqserver/templates/statefulset.yaml new file mode 100644 index 00000000..31232194 --- /dev/null +++ b/helm-charts/mqserver/templates/statefulset.yaml @@ -0,0 +1,202 @@ +{{ $apps := .Values.global.apps.config }} +{{- range $name, $app := $apps }} +{{- if and ($app.enabled) (not (hasKey $app "mqConnectionNameList")) }} +{{- if or ($.Values.global.mq.multiInstance.cephEnabled) ($.Values.global.mq.multiInstance.nfsEnabled) }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: {{ include "mqserver.fullname" $ }}-{{ $name }} + labels: +{{ include "mqserver.labels" $ | indent 4 }} +spec: + selector: + matchLabels: + app.kubernetes.io/name: {{ include "mqserver.fullname" $ }}-{{ $name }} + app.kubernetes.io/instance: {{ $.Release.Name }} + serviceName: {{ include "mqserver.fullname" $ }}-{{ $name }} + replicas: 2 + template: + metadata: + labels: + app.kubernetes.io/name: {{ include "mqserver.fullname" $ }}-{{ $name }} + app.kubernetes.io/instance: {{ $.Release.Name }} + spec: + {{- if $.Values.global.imagePullSecret.username }} + imagePullSecrets: + - name: {{ $.Release.Name }}-pull-secret + {{- end }} + volumes: + - name: {{ $.Release.Namespace }}-{{ $name }}-pvc-logs + persistentVolumeClaim: + claimName: {{ $.Release.Namespace }}-{{ $name }}-pvc-logs + - name: {{ $.Release.Namespace }}-{{ $name }}-pvc-data + persistentVolumeClaim: + claimName: {{ $.Release.Namespace }}-{{ $name }}-pvc-data + - name: {{ $.Release.Namespace }}-{{ $name }}-pvc-qm + persistentVolumeClaim: + claimName: {{ $.Release.Namespace }}-{{ $name }}-pvc-qm + - name: mqsc-cmds + configMap: + name: {{ $.Release.Name }}-mq-config + {{- if $.Values.global.mq.tlsSecretName }} + - name: service-certs + secret: + secretName: {{ $.Release.Name }}-{{ $.Values.global.mq.tlsSecretName }} + {{- end}} + containers: + - name: {{ $.Chart.Name }}-{{ $name }} + image: ibmcom/mq:{{ $.Values.global.mq.version }} + imagePullPolicy: {{ $.Values.global.pullPolicy }} + terminationMessagePath: "/run/termination-log" + env: + - name: LICENSE + value: {{ $.Values.global.license }} + - name: MQ_QMGR_NAME + value: {{ $.Values.global.mq.queueManager.name }} + - name: MQ_MULTI_INSTANCE + {{- if ($.Values.global.mq.multiInstance.cephEnabled) }} + value: "{{ $.Values.global.mq.multiInstance.cephEnabled | default false }}" + {{- else if ($.Values.global.mq.multiInstance.nfsEnabled) }} + value: "{{ $.Values.global.mq.multiInstance.nfsEnabled | default false }}" + {{ end }} + - name: LOG_FORMAT + value: {{ $.Values.log.format | default "basic" }} + - name: MQ_ENABLE_METRICS + value: {{ $.Values.global.mq.metrics.enabled | default false | quote }} + - name: DEBUG + value: {{ $.Values.log.debug | default false | quote }} + - name: MQ_EPHEMERAL_PREFIX + value: /run/mqm + - name: MQ_DEV + value: "false" + - name: MQ_ADMIN_PASSWORD + valueFrom: + secretKeyRef: + name: {{ default (printf "%s-mq-credentials" $.Release.Name) $.Values.global.mq.queueManager.secret.name }} + key: {{ $.Values.global.mq.queueManager.secret.adminPasswordKey }} + - name: MQ_APP_PASSWORD + valueFrom: + secretKeyRef: + name: {{ default (printf "%s-mq-credentials" $.Release.Name) $.Values.global.mq.queueManager.secret.name }} + key: {{ $.Values.global.mq.queueManager.secret.appPasswordKey }} + ports: + - containerPort: 1414 + - containerPort: 9443 + - containerPort: 9157 + volumeMounts: + - mountPath: /mnt/mqm-log + name: {{ $.Release.Namespace }}-{{ $name }}-pvc-logs + - mountPath: /mnt/mqm-data + name: {{ $.Release.Namespace }}-{{ $name }}-pvc-data + - mountPath: /mnt/mqm + name: {{ $.Release.Namespace }}-{{ $name }}-pvc-qm + - name: mqsc-cmds + mountPath: /etc/mqm/20-config.mqsc + subPath: config.mqsc + - name: mqsc-cmds + mountPath: /etc/mqm/30-channel.mqsc + subPath: channel_{{$name}}.mqsc + {{- if $.Values.global.mq.tlsSecretName }} + - name: service-certs + mountPath: /etc/mqm/pki/keys/ibmwebspheremq{{ $.Values.global.mq.queueManager.name | default "QM1" | lower }} + readOnly: true + {{- end }} + securityContext: + seLinuxOptions: + type: spc_t + allowPrivilegeEscalation: true + readOnlyRootFilesystem: false + runAsNonRoot: true + runAsUser: 888 + privileged: false + capabilities: + add: + - CHOWN + - SETGID + - SETUID + - AUDIT_WRITE + - DAC_OVERRIDE + - FOWNER + - SYS_ADMIN + drop: + - ALL + # Set liveness probe to determine if the queue manager is running + livenessProbe: + exec: + command: + - chkmqhealthy + initialDelaySeconds: {{ $.Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ $.Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ $.Values.livenessProbe.timeoutSeconds }} + failureThreshold: {{ $.Values.livenessProbe.failureThreshold }} + # Set readiness probe to determine if the MQ listener is running + readinessProbe: + exec: + command: + - chkmqready + initialDelaySeconds: {{ $.Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ $.Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ $.Values.readinessProbe.timeoutSeconds }} + failureThreshold: {{ $.Values.readinessProbe.failureThreshold }} + initContainers: + - name: {{ $.Chart.Name }}-{{ $name }}-init + image: {{ include "mqserver.imageFullName" $.Values.global.images }} + imagePullPolicy: {{ $.Values.global.images.pullPolicy }} + terminationMessagePath: "/run/termination-log" + command: ["runmqserver"] + args: ["-i"] + env: + - name: LICENSE + value: {{ $.Values.global.license }} + - name: MQ_QMGR_NAME + value: {{ $.Values.global.mq.queueManager.name }} + - name: MQ_MULTI_INSTANCE + {{- if ($.Values.global.mq.multiInstance.cephEnabled) }} + value: "{{ $.Values.global.mq.multiInstance.cephEnabled | default false }}" + {{- else if ($.Values.global.mq.multiInstance.nfsEnabled) }} + value: "{{ $.Values.global.mq.multiInstance.nfsEnabled | default false }}" + {{ end }} + - name: LOG_FORMAT + value: {{ $.Values.log.format | default "basic" }} + - name: DEBUG + value: {{ $.Values.log.debug | default false | quote }} + volumeMounts: + - mountPath: /mnt/mqm-log + name: {{ $.Release.Namespace }}-{{ $name }}-pvc-logs + - mountPath: /mnt/mqm-data + name: {{ $.Release.Namespace }}-{{ $name }}-pvc-data + - mountPath: /mnt/mqm + name: {{ $.Release.Namespace }}-{{ $name }}-pvc-qm + securityContext: + allowPrivilegeEscalation: true + readOnlyRootFilesystem: false + runAsNonRoot: false + runAsUser: 0 + privileged: false + capabilities: + add: + - CHOWN + - FOWNER + - DAC_OVERRIDE + drop: + - ALL +{{- end }} +{{- end }} +{{- end }} diff --git a/helm-charts/mqserver/values.yaml b/helm-charts/mqserver/values.yaml index 9ba2851e..f5871871 100644 --- a/helm-charts/mqserver/values.yaml +++ b/helm-charts/mqserver/values.yaml @@ -17,13 +17,15 @@ global: # Set to 'accept' to accept the license terms of WebSphere Liberty and WebSphere MQ license: '' images: - registry: &imageRegistry us.icr.io + registry: &imageRegistry minikube.local:5000 imageLibrary: '' imagePrefix: '' imageTag: latest pullPolicy: Always imagePullSecret: registry: *imageRegistry + sch: + enabled: true apps: common: persistence: @@ -60,14 +62,29 @@ global: queueManager: name: "QM1" secret: - # name is the secret that contains the 'admin' user password and optionally the 'app' user password to use for messaging - name: 'qmsecret' + # name is the secret that contains the 'admin' user password and the 'app' user password to use for messaging + name: '' # adminPasswordKey is the secret key that contains the 'admin' user password adminPasswordKey: 'adminPasswordKey' + # appPasswordKey is the secret key that contains the 'admin' user password + appPasswordKey: 'appPasswordKey' metrics: enabled: false resources: {} + multiInstance: + cephEnabled: false + storageClassName: '' + nfsEnabled: false + nfsIP: '' + nfsFolder: '' +# Require Intel-based workers +arch: "amd64" + +# Name of an existing ServiceAccount for the application runtime +serviceAccountName: "" +# Name of an existing ServiceAccount for use by the hooks +hookServiceAccountName: "" # livenessProbe section specifies setting for the MQ liveness probe, which checks for a running Queue Manager livenessProbe: @@ -79,7 +96,7 @@ livenessProbe: # readinessProbe section specifies setting for the MQ readiness probe, which checks when the MQ listener is running readinessProbe: - initialDelaySeconds: 10 + initialDelaySeconds: 60 periodSeconds: 5 timeoutSeconds: 3 failureThreshold: 1 diff --git a/helm-charts/openldap/Chart.yaml b/helm-charts/openldap/Chart.yaml index 3662e9c5..8627ea7f 100644 --- a/helm-charts/openldap/Chart.yaml +++ b/helm-charts/openldap/Chart.yaml @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. ############################################################################### -apiVersion: v1 +apiVersion: v2 name: openldap description: OpenLDAP Helm Chart based on Community edition (v1.2.3) for Deployment within Cúram SPM Kubernetes Cluster version: 1.2.5 @@ -31,4 +31,4 @@ keywords: - LDAP - OpenLDAP home: https://www.openldap.org -icon: https://www.openldap.org/images/headers/LDAPworm.gif \ No newline at end of file +icon: https://www.openldap.org/images/headers/LDAPworm.gif diff --git a/helm-charts/openldap/templates/tests/openldap-tests.yaml b/helm-charts/openldap/templates/tests/openldap-tests.yaml index 5460ad98..1c7fc71b 100644 --- a/helm-charts/openldap/templates/tests/openldap-tests.yaml +++ b/helm-charts/openldap/templates/tests/openldap-tests.yaml @@ -30,7 +30,7 @@ metadata: {{- end }} data: run.sh: |- - @test "Testing connecting to slapd server" { + @test "Testing connection to openldap server" { # Ideally, this should be in the docker image, but there is not a generic image we can use # with bats and ldap-utils installed. It is not worth for now to push an image for this. apt-get update && apt-get install -y ldap-utils diff --git a/helm-charts/spm/.helmignore b/helm-charts/spm/.helmignore index 50af0317..2d151b70 100644 --- a/helm-charts/spm/.helmignore +++ b/helm-charts/spm/.helmignore @@ -20,3 +20,6 @@ .idea/ *.tmproj .vscode/ + +# IBM Dev +cv-tests/ diff --git a/helm-charts/spm/Chart.yaml b/helm-charts/spm/Chart.yaml index 36c54444..f6fa8e50 100644 --- a/helm-charts/spm/Chart.yaml +++ b/helm-charts/spm/Chart.yaml @@ -13,10 +13,13 @@ # See the License for the specific language governing permissions and # limitations under the License. ############################################################################### -apiVersion: v1 + +apiVersion: v2 +kubeVersion: ">=1.16" +appVersion: "7.0.10.0" name: spm description: Umbrella Helm Chart for Full Curam Deployment of SPM within a Kubernetes Cluster -version: 1.4.0 +version: 2.0.0 maintainers: - name: Cúram SPM Dev Team url: https://github.com/IBM/spm-kubernetes @@ -26,7 +29,42 @@ keywords: - Liberty - Minikube - IKS + - OpenShift + - RHOCP - Curam - SPM + - amd64 + - deploy + - DevOps + - Commercial + - Limited home: https://www.ibm.com/watson-health/solutions/social-program-management icon: https://avatars2.githubusercontent.com/u/1459110 + +dependencies: + - name: apps + version: "~3.0.0" + repository: "@local-development" + - name: batch + version: "~2.0.0" + repository: "@local-development" + - name: uawebapp + version: "~3.0.0" + repository: "@local-development" + - name: web + version: "~3.0.0" + repository: "@local-development" + - name: mqserver + version: "~1.5.0" + repository: "@local-development" + - name: xmlserver + version: "~2.0.0" + repository: "@local-development" + - name: openldap + version: "~1.2.0" + repository: "@local-development" + condition: global.openldap.enabled + - name: ibm-sch + repository: "@sch" + version: "^1.2.17" + alias: sch diff --git a/helm-charts/spm/README.md b/helm-charts/spm/README.md new file mode 100644 index 00000000..bc42013d --- /dev/null +++ b/helm-charts/spm/README.md @@ -0,0 +1,48 @@ +# spm + +## Introduction + +* The SPM chart is the umbrella Helm chart for IBM Curam Social Program Management (SPM) Platform responsible for coordinating the deployment of the application across multiple subcharts. + +## Chart Details + +* Deployment of a single XML server replica +* Deployment of a single IHS replica with static content +* Deployment of a single MQ replica +* Deployment of a single Curam application replica (one producer pod, one consumer pod) + +## Prerequisites + +* Kubernetes 1.16 or later +* Helm 3.0.0 or later +* [`PodDisruptionBudgets`](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) are recommended for high resiliency in an application during risky operations, such as draining a node for maintenance or scaling down a cluster. + +### PodSecurityPolicy Requirements + +Custom PodSecurityPolicy definition: + +``` +TBC +``` + +### SecurityContextConstraints Requirements + +Custom SecurityContextConstraints definition: + +``` +TBC +``` + +## Configuration + +### Global properties + +### Liberty runtime + +### MQ + +### IHS (Static Content) + +### XML Server + +### Universal Access (React App) - optional diff --git a/helm-charts/spm/RELEASENOTES.md b/helm-charts/spm/RELEASENOTES.md new file mode 100644 index 00000000..715c0308 --- /dev/null +++ b/helm-charts/spm/RELEASENOTES.md @@ -0,0 +1,38 @@ +# What's new + +* OpenShift technical preview. +* Runs with `restricted` (default) pod security policy. + +### Fixes + +## Prerequisites + +* See README.md + +# Version History + +## v2.0.0 + +* Reduce privilege requirements to run with the `restricted` security policy + +## v1.4.0 + +* OpenShift Early Adopter availability + +## v1.3.0 + +* Make Universal Access (React App) deployment optional + +## v1.2.0 + +* Change Ingress APIVersion from `extensions/v1beta1` to `networking.k8s.io/v1beta1` for compatibility with Kubernetes 1.16 +* Add Ingress annotations for configuring on IBM Cloud Kubernetes Service +* Add Ingress mapping for Universal Access (React App) + +## v1.1.0 + +* Initial release + +## v1.0.0 + +* Limited availability preview diff --git a/helm-charts/spm/prereqs/createSCC.sh b/helm-charts/spm/prereqs/createSCC.sh index 71803b35..9846f2fe 100755 --- a/helm-charts/spm/prereqs/createSCC.sh +++ b/helm-charts/spm/prereqs/createSCC.sh @@ -15,14 +15,14 @@ # limitations under the License. ############################################################################### -function usage() { - cat <<-USAGE #| fmt - Usage: $0 [OPTIONS] [arg] - OPTIONS: - ======= - --namespace [namespace] - The name of an existing namespace for the SPM deployment. - - USAGE +usage() { + echo "Usage: $0 [OPTIONS] [arg]" + echo "" + echo " OPTIONS:" + echo " ==============" + echo " -n|--namespace [namespace] - The name of an existing namespace for the SPM deployment." + echo " -h|--help - Print this usage information." + echo "" } if [ "$#" -lt 1 ]; then @@ -55,8 +55,14 @@ if [ $? -ne 0 ]; then exit 1 fi -# check to see if the scc already exists +# Check if the user has permission to interact with SCCs +oc auth can-i list scc -A &> /dev/null +if [[ $? != 0 ]]; then + echo "ERROR: The user '$(oc whoami)' does not have permission to assign SecurityContextConstraints! Contact your cluster administrator." + exit 1 +fi +# check to see if the SCC already exists oc get scc spm-dev-scc if [[ $? == 0 ]]; then echo "spm-dev-scc already exists" @@ -68,9 +74,9 @@ if [[ $? == 0 ]]; then else # The serviceAccount: default does not already exist for this namespace, it needs to be added to the spm-dev-scc SCC echo "ServiceAccount: default for namespace ${NAMESPACE} is not already bound to SCC spm-dev-scc, adding it now..." - oc adm policy add-scc-to-user spm-dev-scc -z default + oc adm policy add-scc-to-user spm-dev-scc system:serviceaccount:${NAMESPACE}:default fi else echo "SCC spm-dev-scc does not already exist, creating now...." - sed -e "s/%NAMESPACE%/${NAMESPACE}/g" scc.yaml | oc apply -f - + sed -e "s/%NAMESPACE%/${NAMESPACE}/g" $(dirname $0)/scc.yaml | oc apply -f - fi diff --git a/helm-charts/spm/prereqs/scc.yaml b/helm-charts/spm/prereqs/scc.yaml index d06d475f..f77bde4b 100644 --- a/helm-charts/spm/prereqs/scc.yaml +++ b/helm-charts/spm/prereqs/scc.yaml @@ -33,5 +33,7 @@ allowedCapabilities: - SETUID - SYS_NICE - SYS_RESOURCE + - FOWNER + - SYS_ADMIN users: - system:serviceaccount:%NAMESPACE%:default \ No newline at end of file diff --git a/helm-charts/spm/requirements.yaml b/helm-charts/spm/requirements.yaml deleted file mode 100644 index b455a049..00000000 --- a/helm-charts/spm/requirements.yaml +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################### -# Copyright 2019,2020 IBM Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -############################################################################### -dependencies: -- name: apps - version: "~2.1.0" - repository: "@local-development" -- name: batch - version: "~1.3.0" - repository: "@local-development" -- name: ce-app - version: "~2.0.0" - repository: "@local-development" -- name: configmaps - version: "~1.3.0" - repository: "@local-development" -- name: db2 - version: "~1.3.0" - repository: "@local-development" -- name: ihs - version: "~2.1.0" - repository: "@local-development" -- name: mqserver - version: "~1.3.0" - repository: "@local-development" -- name: xmlserver - version: "~1.2.0" - repository: "@local-development" -- name: openldap - version: "~1.2.0" - repository: "@local-development" - condition: global.openldap.enabled diff --git a/helm-charts/spm/templates/NOTES.txt b/helm-charts/spm/templates/NOTES.txt new file mode 100644 index 00000000..701878e5 --- /dev/null +++ b/helm-charts/spm/templates/NOTES.txt @@ -0,0 +1,25 @@ +{{- include "sch.config.init" (list . "spm.sch.chart.config.values") -}} +Thank you for choosing IBM Curam Social Program Management (SPM) Platform! + +{{- if .Values.global.ingress.enabled }} +Your deployment of SPM will be available shortly at https://{{ .Values.global.ingress.hostname }} + +The following endpoints have been mapped: + + {{- range $name, $app := .Values.global.apps.config }} + {{- if and $app.enabled $app.ingressPath }} + - {{ $app.ingressPath }} + {{- end }} + {{- end }} + {{- if .Values.uawebapp.imageConfig.name }} + - {{ .Values.uawebapp.ingressPath }} + {{- end }} + - {{ .Values.web.ingressPath }} +{{- else }} +Due to the nature of the SPM topology in Kubernetes, the application should not be accessed using NodePort services. + +Please provide a hostname using the "global.ingress.hostname" property, and an appropriate Ingress/Route resource will be generated for you. +{{- end }} + + +> Deployed using SPM chart version {{ .Chart.Version }}. diff --git a/helm-charts/spm/templates/_helpers.tpl b/helm-charts/spm/templates/_helpers.tpl index 94b4b468..242e60a6 100644 --- a/helm-charts/spm/templates/_helpers.tpl +++ b/helm-charts/spm/templates/_helpers.tpl @@ -15,49 +15,17 @@ limitations under the License. */}} {{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "spm.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "spm.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "spm.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - {{/* Create the image pull secret */}} -{{- define "imagePullSecret" }} +{{- define "spm.imagePullSecret" }} {{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .registry (printf "%s:%s" .username (required "Credentials password is required" .password) | b64enc) | b64enc }} {{- end }} {{/* Create the persistence secret */}} -{{- define "persistenceSecret" -}} +{{- define "spm.persistenceSecret" -}} secret-key: {{ required "secretKey is required" .secretKey | b64enc | quote }} access-key: {{ required "accessKey is required" .accessKey | b64enc | quote}} service-instance-id: {{ required "instanceId is required" .instanceId | b64enc | quote }} @@ -66,42 +34,29 @@ service-instance-id: {{ required "instanceId is required" .instanceId | b64enc | {{/* Build up ssl-services value */}} -{{- define "sslServicesChain" }} +{{- define "spm.sslServicesChain" }} {{- range $name, $app := .Values.global.apps.config -}} {{- if $app.enabled -}} ssl-service={{ $.Release.Name }}-apps-{{ $name }}; {{- end -}} {{- end -}} -{{- if .Values.global.ceApp.imageTag -}} -ssl-service={{ $.Release.Name }}-ce-app; +{{- if .Values.uawebapp.imageConfig.name -}} +ssl-service={{ $.Release.Name }}-uawebapp; {{- end -}} -ssl-service={{ $.Release.Name }}-ihs; +ssl-service={{ $.Release.Name }}-web; {{- end }} {{/* Build up sticky-cookie-services value */}} -{{- define "stickyCookieServicesChain" }} +{{- define "spm.stickyCookieServicesChain" }} {{- range $name, $app := .Values.global.apps.config -}} {{- if $app.enabled -}} serviceName={{ $.Release.Name }}-apps-{{ $name }} name={{ $name }}Route hash=sha1 path=/; {{- end -}} {{- end -}} -{{- if .Values.global.ceApp.imageTag -}} -serviceName={{ $.Release.Name }}-ce-app name=ceRoute hash=sha1 path=/; +{{- if .Values.uawebapp.imageConfig.name -}} +serviceName={{ $.Release.Name }}-uawebapp name=uaRoute hash=sha1 path=/; {{- end -}} -serviceName={{ $.Release.Name }}-ihs name=ihsRoute hash=sha1 path=/; +serviceName={{ $.Release.Name }}-web name=webRoute hash=sha1 path=/; {{- end }} - -{{/* -Common labels -*/}} -{{- define "spm.labels" -}} -app.kubernetes.io/name: {{ include "spm.name" . }} -helm.sh/chart: {{ include "spm.chart" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end -}} diff --git a/helm-charts/spm/templates/_sch-chart-config.tpl b/helm-charts/spm/templates/_sch-chart-config.tpl new file mode 100644 index 00000000..8d9fd313 --- /dev/null +++ b/helm-charts/spm/templates/_sch-chart-config.tpl @@ -0,0 +1,25 @@ +{{/* +Copyright 2020 IBM Corporation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +{{- /* +".sch.chart.config.values" contains the default configuration values used by +the Shared Configurable Helpers overridden for this chart. +*/ -}} +{{- define "spm.sch.chart.config.values" -}} +sch: + chart: + labelType: "prefixed" +{{- end -}} diff --git a/helm-charts/configmaps/templates/configmap-bootstrap.yaml b/helm-charts/spm/templates/configmap-bootstrap.yaml similarity index 86% rename from helm-charts/configmaps/templates/configmap-bootstrap.yaml rename to helm-charts/spm/templates/configmap-bootstrap.yaml index a4b0b9a8..72bbcab6 100644 --- a/helm-charts/configmaps/templates/configmap-bootstrap.yaml +++ b/helm-charts/spm/templates/configmap-bootstrap.yaml @@ -1,3 +1,5 @@ +{{- include "sch.config.init" (list . "spm.sch.chart.config.values") -}} +--- ############################################################################### # Copyright 2019,2020 IBM Corporation # @@ -19,6 +21,8 @@ kind: ConfigMap metadata: name: {{ .Release.Name }}-bootstrap-cm namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: Bootstrap.properties: | # Placed by Kubernetes Configmap. @@ -26,10 +30,10 @@ data: curam.dmx.locale=en_US curam.db.type={{ .Values.global.database.type | upper }} - curam.db.servername={{ include "configmaps.dbhostname" . }} - curam.db.serverport={{ required "Database server port is required." .Values.global.database.port }} - curam.db.username={{ required "Database username is required." .Values.global.database.username }} - curam.db.password={{ required "SPM-encrypted password is required." .Values.global.database.spm_psw }} + curam.db.servername={{ .Values.global.database.hostname }} + curam.db.serverport={{ required "Database server port is required (global.database.port)." .Values.global.database.port }} + curam.db.username=${sysenv.SPM_DB_USR} + curam.db.password=${sysenv.SPM_DB_PSW} curam.db.name={{ .Values.global.database.dbName }} {{- if eq (.Values.global.database.type | upper) "ORA" }} {{- if .Values.global.database.serviceName }} @@ -41,7 +45,7 @@ data: {{ if .Values.global.database.ssl.enabled }} curam.db2.ssl=true {{- if .Values.global.database.ssl.secretName }} - # Assume certificate has already been imported into the following location + # Import must be handled by an initContainer curam.db2.ssl.truststore.location=/mnt/keystores/db2TrustStore.jks curam.db2.ssl.truststore.password=changeit {{- end }} diff --git a/helm-charts/spm/templates/ingress.yaml b/helm-charts/spm/templates/ingress.yaml index 25ac249c..fb79a36e 100644 --- a/helm-charts/spm/templates/ingress.yaml +++ b/helm-charts/spm/templates/ingress.yaml @@ -1,3 +1,4 @@ +{{- include "sch.config.init" (list . "spm.sch.chart.config.values") -}} {{- if and .Values.global.ingress.enabled (not (.Capabilities.APIVersions.Has "route.openshift.io/v1")) }} --- ############################################################################### @@ -22,10 +23,10 @@ metadata: name: {{ .Release.Name }} namespace: {{ .Release.Namespace }} labels: -{{ include "spm.labels" . | indent 4 }} + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} annotations: - ingress.bluemix.net/ssl-services: {{ include "sslServicesChain" . }} - ingress.bluemix.net/sticky-cookie-services: {{ include "stickyCookieServicesChain" . }} + ingress.bluemix.net/ssl-services: {{ include "spm.sslServicesChain" . }} + ingress.bluemix.net/sticky-cookie-services: {{ include "spm.stickyCookieServicesChain" . }} nginx.ingress.kubernetes.io/affinity: cookie nginx.ingress.kubernetes.io/backend-protocol: HTTPS nginx.ingress.kubernetes.io/session-cookie-path: / @@ -55,20 +56,20 @@ spec: servicePort: https {{- end }} {{- end }} - {{- if .Values.global.ceApp.imageName }} - - path: {{ .Values.global.ceApp.ingressPath | default "/universal" }} + {{- if .Values.uawebapp.imageConfig.name }} + - path: {{ .Values.uawebapp.ingressPath | default "/universal" }} backend: - serviceName: {{ $.Release.Name }}-ce-app + serviceName: {{ $.Release.Name }}-uawebapp servicePort: https {{- end }} {{- if .Values.global.isam.enabled }} - - path: "/ibm" + - path: "/ibm" backend: serviceName: {{ $.Release.Name }}-apps-curam servicePort: https {{- end }} - - path: {{ .Values.global.ihs.ingressPath | default "/CuramStatic" }} + - path: {{ .Values.web.ingressPath | default "/CuramStatic" }} backend: - serviceName: {{ $.Release.Name }}-ihs + serviceName: {{ $.Release.Name }}-web servicePort: https {{- end }} diff --git a/helm-charts/spm/templates/persistence-pvc.yaml b/helm-charts/spm/templates/persistence-pvc.yaml index 58eda292..e7da9f1e 100644 --- a/helm-charts/spm/templates/persistence-pvc.yaml +++ b/helm-charts/spm/templates/persistence-pvc.yaml @@ -1,3 +1,4 @@ +{{- include "sch.config.init" (list . "spm.sch.chart.config.values") -}} {{- if $.Values.global.apps.common.persistence.enabled }} --- ############################################################################### @@ -27,12 +28,12 @@ metadata: ibm.io/endpoint: {{ required "bucketEndpoint is required" $.Values.global.apps.common.persistence.bucketEndpoint | quote }} ibm.io/secret-name: "{{ $.Release.Namespace }}-persistence-secret" labels: -{{ include "apps.labels" $ | indent 4 }} + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} spec: accessModes: - "ReadWriteMany" resources: requests: storage: 10Gi # Enter a fictitious value - storageClassName: ibmc-s3fs-standard-regional + storageClassName: {{ required "storageClassName is required" $.Values.global.apps.common.persistence.storageClassName | quote }} {{- end }} diff --git a/helm-charts/spm/templates/persistence-secret.yaml b/helm-charts/spm/templates/persistence-secret.yaml index bed248b4..5d8d78a1 100644 --- a/helm-charts/spm/templates/persistence-secret.yaml +++ b/helm-charts/spm/templates/persistence-secret.yaml @@ -1,3 +1,4 @@ +{{- include "sch.config.init" (list . "spm.sch.chart.config.values") -}} {{- if $.Values.global.apps.common.persistence.enabled }} --- ############################################################################### @@ -22,6 +23,8 @@ type: ibm/ibmc-s3fs metadata: name: {{ .Release.Namespace }}-persistence-secret namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} data: -{{ include "persistenceSecret" $.Values.global.apps.common.persistence | indent 2 }} -{{- end }} \ No newline at end of file +{{ include "spm.persistenceSecret" $.Values.global.apps.common.persistence | indent 2 }} +{{- end }} diff --git a/helm-charts/spm/templates/routes-apps.yaml b/helm-charts/spm/templates/routes-apps.yaml index fb24d49c..98f8fd8b 100644 --- a/helm-charts/spm/templates/routes-apps.yaml +++ b/helm-charts/spm/templates/routes-apps.yaml @@ -1,3 +1,4 @@ +{{- include "sch.config.init" (list . "spm.sch.chart.config.values") -}} {{- if and .Values.global.ingress.enabled (.Capabilities.APIVersions.Has "route.openshift.io/v1") }} {{- range $name, $app := .Values.global.apps.config }} {{- if and $app.enabled $app.ingressPath }} @@ -24,7 +25,7 @@ metadata: name: {{ $.Release.Name }}-apps-{{ $name }} namespace: {{ $.Release.Namespace }} labels: -{{ include "spm.labels" $ | indent 4 }} + {{- include "sch.metadata.labels.standard" (list $ $name) | nindent 4 }} annotations: haproxy.router.openshift.io/timeout: 1m spec: diff --git a/helm-charts/spm/templates/routes-ce.yaml b/helm-charts/spm/templates/routes-ua.yaml similarity index 77% rename from helm-charts/spm/templates/routes-ce.yaml rename to helm-charts/spm/templates/routes-ua.yaml index 9c0bdaf9..fd768955 100644 --- a/helm-charts/spm/templates/routes-ce.yaml +++ b/helm-charts/spm/templates/routes-ua.yaml @@ -1,4 +1,5 @@ -{{- if and .Values.global.ingress.enabled (.Capabilities.APIVersions.Has "route.openshift.io/v1") .Values.global.ceApp.imageName }} +{{- include "sch.config.init" (list . "spm.sch.chart.config.values") -}} +{{- if and .Values.global.ingress.enabled (.Capabilities.APIVersions.Has "route.openshift.io/v1") .Values.uawebapp.imageConfig.name }} --- ############################################################################### # Copyright 2020 IBM Corporation @@ -19,16 +20,16 @@ kind: Route apiVersion: route.openshift.io/v1 metadata: - name: {{ .Release.Name }}-ce-app + name: {{ .Release.Name }}-uawebapp namespace: {{ .Release.Namespace }} labels: -{{ include "spm.labels" . | indent 4 }} + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} spec: host: {{ required "When ingress is enabled, you must provide a value for ingress.hostname" .Values.global.ingress.hostname }} - path: {{ .Values.global.ceApp.ingressPath | default "/universal" }} + path: {{ .Values.uawebapp.ingressPath | default "/universal" }} to: kind: Service - name: {{ .Release.Name }}-ce-app + name: {{ .Release.Name }}-uawebapp port: targetPort: https tls: diff --git a/helm-charts/spm/templates/routes-ihs.yaml b/helm-charts/spm/templates/routes-web.yaml similarity index 81% rename from helm-charts/spm/templates/routes-ihs.yaml rename to helm-charts/spm/templates/routes-web.yaml index 2c435d3f..24730f4e 100644 --- a/helm-charts/spm/templates/routes-ihs.yaml +++ b/helm-charts/spm/templates/routes-web.yaml @@ -1,3 +1,4 @@ +{{- include "sch.config.init" (list . "spm.sch.chart.config.values") -}} {{- if and .Values.global.ingress.enabled (.Capabilities.APIVersions.Has "route.openshift.io/v1") }} --- ############################################################################### @@ -19,16 +20,16 @@ kind: Route apiVersion: route.openshift.io/v1 metadata: - name: {{ .Release.Name }}-ihs + name: {{ .Release.Name }}-web namespace: {{ .Release.Namespace }} labels: -{{ include "spm.labels" . | indent 4 }} + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} spec: host: {{ required "When ingress is enabled, you must provide a value for ingress.hostname" .Values.global.ingress.hostname }} - path: {{ .Values.global.ihs.ingressPath | default "/CuramStatic" }} + path: {{ .Values.web.ingressPath | default "/CuramStatic" }} to: kind: Service - name: {{ .Release.Name }}-ihs + name: {{ .Release.Name }}-web port: targetPort: https tls: diff --git a/helm-charts/spm/templates/secret-db.yaml b/helm-charts/spm/templates/secret-db.yaml new file mode 100644 index 00000000..cf334282 --- /dev/null +++ b/helm-charts/spm/templates/secret-db.yaml @@ -0,0 +1,32 @@ +{{- include "sch.config.init" (list . "spm.sch.chart.config.values") -}} +{{- if not .Values.global.database.credsSecretName }} +--- +############################################################################### +# Copyright 2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ .Release.Name }}-db-credentials + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} +data: + SPM_DB_USR: {{ required "Database username is required (global.database.username)." .Values.global.database.username | b64enc }} + SPM_DB_PSW: {{ required "SPM-encrypted password is required (global.database.spm_psw)." .Values.global.database.spm_psw | b64enc }} + XOR_DB_PSW: {{ required "XOR-encrypted password is required (global.database.wlp_psw)." .Values.global.database.wlp_psw | b64enc }} +{{- end }} diff --git a/helm-charts/spm/templates/secret-pull.yaml b/helm-charts/spm/templates/secret-pull.yaml new file mode 100644 index 00000000..48b277cf --- /dev/null +++ b/helm-charts/spm/templates/secret-pull.yaml @@ -0,0 +1,30 @@ +{{- include "sch.config.init" (list . "spm.sch.chart.config.values") -}} +{{- if .Values.global.imagePullSecret.username }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Release.Name }}-pull-secret + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} +type: kubernetes.io/dockerconfigjson +data: + .dockerconfigjson: {{ template "spm.imagePullSecret" .Values.global.imagePullSecret }} +{{- end }} diff --git a/helm-charts/spm/templates/tls-secret.yaml b/helm-charts/spm/templates/secret-tls.yaml similarity index 88% rename from helm-charts/spm/templates/tls-secret.yaml rename to helm-charts/spm/templates/secret-tls.yaml index d36a42b2..87effb88 100644 --- a/helm-charts/spm/templates/tls-secret.yaml +++ b/helm-charts/spm/templates/secret-tls.yaml @@ -1,3 +1,4 @@ +{{- include "sch.config.init" (list . "spm.sch.chart.config.values") -}} {{- if and .Values.global.ingress.enabled .Values.global.ingress.generateCert }} --- ############################################################################### @@ -22,6 +23,8 @@ kind: Secret metadata: name: {{ $.Release.Name }}-tls namespace: {{ $.Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} type: kubernetes.io/tls data: tls.crt: {{ $cert.Cert | b64enc }} diff --git a/helm-charts/spm/values.yaml b/helm-charts/spm/values.yaml index a5686597..b32603a2 100644 --- a/helm-charts/spm/values.yaml +++ b/helm-charts/spm/values.yaml @@ -15,73 +15,69 @@ ############################################################################### global: - batch: - javaMetrics: - heapSize: "-Xms512m -Xmx512m" + # Set to 'accept' to accept the license terms of WebSphere Liberty and WebSphere MQ + license: '' images: - registry: &imageRegistry us.icr.io + registry: &imageRegistry minikube.local:5000 imageLibrary: '' imagePrefix: '' imageTag: latest pullPolicy: Always imagePullSecret: - registry: *imageRegistry - ceApp: - replicaCount: 1 - imageLibrary: '' - imageName: '' - imageTag: latest - ingressPath: /universal - resources: {} - ihs: - serviceType: NodePort - runAs: 1000 - replicaCount: 1 - readinessPath: /CuramStatic/ - ingressPath: /CuramStatic + username: '' + sch: + enabled: false database: - ## Database connection configuration - # The property wlp_psw: contains the XOR password injected in the Liberty configuration - # The property spm_psw: contains the encrypted password injected in Bootstrap.properties - type: db2 - port: 50000 + ## Database connection properties + type: DB2 dbName: DATABASE + hostname: '' + port: 50000 username: db2admin + # Name of pre-created secret containing database credentals + credsSecretName: '' + # The XOR-encrypted password injected into Liberty configuration wlp_psw: "{xor}Oz1tPjsyNjE=" + # The SPM-encrypted password injected into Bootstrap.properties spm_psw: "5itAmT5UzH7wR6kvkYqkTw==" - ssl: {} + # Oracle Service name, where applicable + serviceName: '' + initTime: 120 + ssl: + enabled: false + # Name of the secret containing the database TLS certificate + secretName: '' + # Key in the above secret with the certificate + secretKey: db2admin.arm apps: common: - port: 8443 persistence: ## Persistence volume to store data (such as non-log files) enabled: false ## If enabled, creates a PVC to connect to IBM Cloud Object Storage - ## Properties secretKey, accessKey, instanceId, and bucketName are required + ## Properties storageClassName, secretKey, accessKey, instanceId, and bucketName are required ## Values available in the WebUI where the bucket was pre-created + # storageClassName: "" # secretKey: "" # accessKey: "" # instanceId: "" # bucketName: "" # bucketEndpoint: "https://s3.private.us-south.cloud-object-storage.appdomain.cloud" - # mountPoint: "/tmp/persistence" - # subDir: "/folder/name" + mountPoint: '' + subDir: '' jmxstats: ## Parameters of the JMX Stats to be persisted on the PVC # The property timerPeriod sets the value curam.jmx.output_statistics_timer_period in milliseconds enabled: false timerPeriod: 60000 - sessionTimeout: 30m - transactionTimeout: 3m - cookieHttpOnly: true - security: {} - loginTrace: true config: curam: enabled: true + replicaCount: 1 readinessPath: /Curam/ ingressPath: /Curam - jvm: + earName: Curam + jvm: - "-Xms2048m" - "-Xmx2048m" resources: @@ -92,9 +88,12 @@ global: cpu: 1.5 memory: 3Gi rest: - enabled: true + enabled: false + replicaCount: 1 ingressPath: /Rest - jvm: + earName: Rest + warName: RestModule + jvm: - "-Xms1536m" - "-Xmx1536m" resources: @@ -104,15 +103,14 @@ global: limits: cpu: 1.5 memory: 2Gi - readinessExec: - - /bin/grep - - "application available .*/Rest" - - /logs/messages.log + readinessString: "application available .*/Rest" citizenportal: enabled: false + replicaCount: 1 readinessPath: /CitizenPortal/ ingressPath: /CitizenPortal - jvm: + earName: CitizenPortal + jvm: - "-Xms2048m" - "-Xmx2048m" resources: @@ -124,23 +122,24 @@ global: memory: 3Gi curamwebservices: enabled: false + replicaCount: 1 readinessPath: /CuramWS2/SOAPMonitor ingressPath: /CuramWS2 - jvm: + earName: CuramWebServices + warName: webservices2 + excludeJmxStats: true + jvm: - "-Xms512m" - "-Xmx512m" - resources: - requests: - cpu: 0.5 - memory: 768Mi - limits: - cpu: 0.75 - memory: 1Gi curambirtviewer: enabled: false + replicaCount: 1 readinessTCPProbe: true - ingressPath: /CuramBIRTViewer - jvm: + ingressPath: /CuramBIRTViewer/ + earName: CuramBIRTViewer + producerOnly: true + excludeJmxStats: true + jvm: - "-Xms768m" - "-Xmx768m" resources: @@ -152,101 +151,118 @@ global: memory: 1.5Gi cpmexternalns: enabled: false + replicaCount: 1 readinessPath: /CPMExternalNS/ ingressPath: /CPMExternalNS - jvm: + earName: CPMExternalNS + jvm: - "-Xms512m" - "-Xmx512m" - resources: - requests: - cpu: 0.5 - memory: 768Mi - limits: - cpu: 0.75 - memory: 1Gi cpmexternals: enabled: false + replicaCount: 1 readinessPath: /CPMExternalS/ ingressPath: /CPMExternalS - jvm: + earName: CPMExternalS + jvm: - "-Xms512m" - "-Xmx512m" - resources: - requests: - cpu: 0.5 - memory: 768Mi - limits: - cpu: 0.75 - memory: 1Gi navigatorns: enabled: false + replicaCount: 1 readinessPath: /NavigatorNS/ ingressPath: /NavigatorNS - jvm: + earName: NavigatorNS + jvm: - "-Xms512m" - "-Xmx512m" - resources: - requests: - cpu: 0.5 - memory: 768Mi - limits: - cpu: 0.75 - memory: 1Gi navigators: enabled: false + replicaCount: 1 readinessPath: /NavigatorS/ ingressPath: /NavigatorS - jvm: + earName: NavigatorS + jvm: - "-Xms512m" - "-Xmx512m" - resources: - requests: - cpu: 0.5 - memory: 768Mi - limits: - cpu: 0.75 - memory: 1Gi mdtworkspace: enabled: false + replicaCount: 1 readinessPath: /MDTWorkspace/ ingressPath: /MDTWorkspace - jvm: + earName: MDTWorkspace + jvm: - "-Xms512m" - "-Xmx512m" - resources: - requests: - cpu: 0.5 - memory: 768Mi - limits: - cpu: 0.75 - memory: 1Gi samplepublicaccess: enabled: false + replicaCount: 1 readinessPath: /SamplePublicAccess/ ingressPath: /SamplePublicAccess - jvm: + earName: SamplePublicAccess + jvm: - "-Xms512m" - "-Xmx512m" - resources: - requests: - cpu: 0.5 - memory: 768Mi - limits: - cpu: 0.75 - memory: 1Gi - ihs: - serviceType: NodePort - config: - readinessPath: /CuramStatic/ - ingressPath: /CuramStatic openldap: enabled: false - identityOnly: false ingress: enabled: false - #hostname: minikube.local + hostname: '' isam: enabled: false - -nameOverride: "" -fullnameOverride: "" + +# Override values in 'apps' Chart +apps: + replicaCount: 1 + systemUser: + credsSecretName: '' + username: SYSTEM + password: "{xor}LCYsLz4sLA==" + initialDelaySeconds: 150 + loginConfig: + trace: true + identityOnly: false + sessionConfig: + sessionTimeout: 30m + transactionTimeout: 3m + maxInMemorySessionCount: 1000 + cookie: + httpOnly: true + secure: true + defaultResources: + requests: + cpu: 0.5 + memory: 768Mi + limits: + cpu: 0.75 + memory: 1Gi + +# Override values in 'batch' Chart +batch: + programs: + queued: + schedule: "*/30 * * * *" + +# Override values in 'uawebapp' Chart +uawebapp: + replicaCount: 1 + httpsPort: 8443 + imageConfig: + library: '' + name: '' + tag: latest + readinessProbe: + path: /universal/ + ingressPath: /universal + +# Override values in 'web' Chart +web: + replicaCount: 1 + readinessProbe: + path: /CuramStatic/ + ingressPath: /CuramStatic + +# Override values in 'xmlserver' Chart +xmlserver: + replicaCount: 1 + serverPort: 1800 diff --git a/helm-charts/ce-app/.helmignore b/helm-charts/uawebapp/.helmignore similarity index 94% rename from helm-charts/ce-app/.helmignore rename to helm-charts/uawebapp/.helmignore index 50af0317..2d151b70 100644 --- a/helm-charts/ce-app/.helmignore +++ b/helm-charts/uawebapp/.helmignore @@ -20,3 +20,6 @@ .idea/ *.tmproj .vscode/ + +# IBM Dev +cv-tests/ diff --git a/helm-charts/ce-app/Chart.yaml b/helm-charts/uawebapp/Chart.yaml similarity index 80% rename from helm-charts/ce-app/Chart.yaml rename to helm-charts/uawebapp/Chart.yaml index 9c74cfdd..d60ebcb2 100644 --- a/helm-charts/ce-app/Chart.yaml +++ b/helm-charts/uawebapp/Chart.yaml @@ -14,10 +14,12 @@ # limitations under the License. ############################################################################### -apiVersion: v1 -name: ce-app +apiVersion: v2 +kubeVersion: ">=1.16" +appVersion: "7.0.10.0" +name: uawebapp description: Helm Chart for deploying the Universal Access React application -version: 2.0.0 +version: 3.0.0 maintainers: - name: Cúram SPM Dev Team url: https://github.com/IBM/spm-kubernetes @@ -28,9 +30,19 @@ keywords: - Minikube - IKS - OpenShift - - RHOS + - RHOCP - Curam - SPM - - React + - amd64 + - deploy + - DevOps + - Commercial + - Limited home: https://www.ibm.com/watson-health/solutions/social-program-management icon: https://avatars2.githubusercontent.com/u/1459110 +dependencies: + - name: ibm-sch + repository: "@sch" + version: "^1.2.17" + alias: sch + condition: global.sch.enabled diff --git a/helm-charts/ce-app/LICENSE b/helm-charts/uawebapp/LICENSE similarity index 100% rename from helm-charts/ce-app/LICENSE rename to helm-charts/uawebapp/LICENSE diff --git a/helm-charts/uawebapp/README.md b/helm-charts/uawebapp/README.md new file mode 100644 index 00000000..fb82bffe --- /dev/null +++ b/helm-charts/uawebapp/README.md @@ -0,0 +1,36 @@ +# uawebapp + +## Introduction + +* The UA WebApp chart is a component of IBM Curam Social Program Management (SPM) Platform responsible for hosting the Reactive Universal Access application. + +## Chart Details + +* Deployment of a single pod listening on port 8443 +* Exposed to the cluster using a service for potential load balancing + +## Prerequisites + +* Kubernetes 1.16 or later +* Helm 3.0.0 or later +* [`PodDisruptionBudgets`](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) are recommended for high resiliency in an application during risky operations, such as draining a node for maintenance or scaling down a cluster. + +### PodSecurityPolicy Requirements + +Custom PodSecurityPolicy definition: + +``` +Not required as the underlying IHS server runs with the default restricted policy +``` + +### SecurityContextConstraints Requirements + +Custom SecurityContextConstraints definition: + +``` +Not required as the underlying IHS server runs with the default restricted policy +``` + +## Configuration + +See [README.md](../spm) in the `spm` umbrella chart. diff --git a/helm-charts/uawebapp/RELEASENOTES.md b/helm-charts/uawebapp/RELEASENOTES.md new file mode 100644 index 00000000..0e18ff25 --- /dev/null +++ b/helm-charts/uawebapp/RELEASENOTES.md @@ -0,0 +1,61 @@ +# What's new + +* OpenShift support introduced +* Runs with `restricted` (default) pod security policy + +### Fixes + +# Breaking Changes + +* The structure of values for specifying the Universal Access image has changed + + | Old property | New property | Default value | Comment | + | ------------ | ------------ | ------------- | ------- | + | `global.ceApp.replicaCount` | `replicaCount` | `1` | + | `global.images.registry` | Unchanged | `minikube.local:5000` | All images must be retrieved from the same Container Registry, whether it is embedded in Minikube/CRC, or hosted like IBM Cloud Container Registry (ICR) + | `global.ceApp.imageLibrary` | `imageConfig.library` | `''` | + | `global.ceApp.imageName` | `imageConfig.name` | `''` | + | `global.ceApp.imageTag` | `imageConfig.tag` | `latest` | + | `global.ceApp.readinessPath` | `readinessProbe.path` | `/universal/` | This must match the `PUBLIC_URL` variable used when building the Universal Access application | + | `global.ceApp.resources` | `resources` | See [values.yaml](./values.yaml#L59) | + | `global.apps.common.port` | Removed | `-` | Port configuration has been removed with the change to an Apache HTTP server image | + + +* The new values must be nest under `uawebapp`, when specifying values using the umbrella chart to take effect, for example: + + ```yaml + uawebapp: + imageConfig: + name: 'my-universal-access-app' + readinessProbe: + path: '/public-portal/' + ``` + +## Prerequisites + +* See README.md + +# Version History + +## v3.0.0 + +* Changed web server image from IHS to Apache HTTP +* Chart renamed from `ce-app` to `uawebapp` to avoid aliasing of the chart +* Reduce privilege requirements to run with the `restricted` security policy +* Chart values have been reorganised for improved readability +* Moved web server configuration to ConfigMap + +## v2.0.0 + +* Change to UBI base images +* Add option to inject certificates +* Allow binding to privileged ports +* OpenShift support introduced + +## v1.1.0 + +* Add a guard on image selection to make chart optional + +## v1.0.0 + +* Initial release diff --git a/helm-charts/uawebapp/templates/NOTES.txt b/helm-charts/uawebapp/templates/NOTES.txt new file mode 100644 index 00000000..1ccb1838 --- /dev/null +++ b/helm-charts/uawebapp/templates/NOTES.txt @@ -0,0 +1,11 @@ +{{- include "sch.config.init" (list . "uawebapp.sch.chart.config.values") -}} +{{- if .Values.imageConfig.name }} +The web server is not exposed by default. + +A Route/Ingress resource must be created to expose the web server pod(s). + +Service name: {{ include "sch.names.fullName" (list .) }}.{{ .Release.Namespace }}.svc +Service port: 8443 (https) + +Content path to be mapped: {{ .Values.readinessProbe.path }} +{{- end }} diff --git a/helm-charts/uawebapp/templates/_helpers.tpl b/helm-charts/uawebapp/templates/_helpers.tpl new file mode 100644 index 00000000..bd17053b --- /dev/null +++ b/helm-charts/uawebapp/templates/_helpers.tpl @@ -0,0 +1,57 @@ +{{/* +Copyright 2019,2020 IBM Corporation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +{{/* vim: set filetype=mustache: */}} +{{/* +Create the image pull secret +*/}} +{{- define "uawebapp.imagePullSecret" }} +{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .registry (printf "%s:%s" .username (required "Credentials password is required" .password) | b64enc) | b64enc }} +{{- end }} + +{{/* +Build up full image path +*/}} +{{- define "uawebapp.imageFullName" -}} +{{- $imageConfig := .Values.imageConfig -}} +{{- .Values.global.images.registry -}}/ +{{- if $imageConfig.library -}} +{{- $imageConfig.library -}}/ +{{- end -}} +{{ $imageConfig.name }}:{{- $imageConfig.tag -}} +{{- end -}} + +{{/* +Mountpoint for the persistence storage on the application pods (e.g. /tmp/persistence ) +*/}} +{{- define "persistence.mountPoint" -}} +{{- if .Values.global.apps.common.persistence.mountPoint -}} +{{- .Values.global.apps.common.persistence.mountPoint -}} +{{- else -}} +{{- "/tmp/persistence" -}} +{{- end -}} +{{- end -}} + +{{/* +Folder name to persist release files inside mountpoint (e.g. /tmp/persistence/release_name") +*/}} +{{- define "persistence.subDir" -}} +{{- if .Values.global.apps.common.persistence.subDir -}} +{{- .Values.global.apps.common.persistence.subDir -}} +{{- else -}} +{{- printf "%s" $.Release.Name -}} +{{- end -}} +{{- end -}} diff --git a/helm-charts/uawebapp/templates/_sch-chart-config.tpl b/helm-charts/uawebapp/templates/_sch-chart-config.tpl new file mode 100644 index 00000000..64a0df3b --- /dev/null +++ b/helm-charts/uawebapp/templates/_sch-chart-config.tpl @@ -0,0 +1,43 @@ +{{/* +Copyright 2020 IBM Corporation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +{{- /* +".sch.chart.config.values" contains the default configuration values used by +the Shared Configurable Helpers overridden for this chart. +*/ -}} +{{- define "uawebapp.sch.chart.config.values" -}} +sch: + chart: + labelType: "prefixed" + metering: + productName: "IBM Curam Universal Access" + productVersion: "7.0.10" + productID: "4d7d3640638b478ba11ad1b9db716fd5" + podSecurityContext: + hostIPC: false + hostNetwork: false + hostPID: false + securityContext: + runAsNonRoot: true + containerSecurityContext: + securityContext: + privileged: false + readOnlyRootFilesystem: false + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL +{{- end -}} diff --git a/helm-charts/uawebapp/templates/configmap-confd.yaml b/helm-charts/uawebapp/templates/configmap-confd.yaml new file mode 100644 index 00000000..157aef06 --- /dev/null +++ b/helm-charts/uawebapp/templates/configmap-confd.yaml @@ -0,0 +1,95 @@ +{{- include "sch.config.init" (list . "uawebapp.sch.chart.config.values") -}} +{{- if .Values.imageConfig.name }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "sch.names.fullCompName" (list . "conf") }} + namespace: {{ .Release.Namespace }} + labels: +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} +data: + 70-logging.conf: | + ServerName {{ include "sch.names.fullName" (list .) }}.{{ .Release.Namespace }}.svc + + SetEnvIf User-agent .*kube-probe.* probe + {{- if .Values.global.apps.common.persistence.enabled }} + ErrorLog "|/usr/sbin/rotatelogs -n {{ .Values.logging.maxFiles }} -e -D {{ include "persistence.mountPoint" . }}/${HOSTNAME}/logs/error_log {{ .Values.logging.maxSize }}" + CustomLog "|/usr/sbin/rotatelogs -n {{ .Values.logging.maxFiles }} -e -D {{ include "persistence.mountPoint" . }}/${HOSTNAME}/logs/access_log {{ .Values.logging.maxSize }}" {{ .Values.logging.formatLabel }} env=!probe + CustomLog "|/usr/sbin/rotatelogs -n {{ .Values.logging.maxFiles }} -D {{ include "persistence.mountPoint" . }}/${HOSTNAME}/logs/access_probe.log {{ .Values.logging.maxSize }}" {{ .Values.logging.formatLabel }} env=probe + {{- else }} + ErrorLog "|/usr/sbin/rotatelogs -n {{ .Values.logging.maxFiles }} -e -D /var/log/httpd/error_log {{ .Values.logging.maxSize }}" + CustomLog "|/usr/sbin/rotatelogs -n {{ .Values.logging.maxFiles }} -e -D /var/log/httpd/access_log {{ .Values.logging.maxSize }}" {{ .Values.logging.formatLabel }} env=!probe + CustomLog "|/usr/sbin/rotatelogs -n {{ .Values.logging.maxFiles }} -D /var/log/httpd/access_probe.log {{ .Values.logging.maxSize }}" {{ .Values.logging.formatLabel }} env=probe + {{- end }} + + 80-staticContent.conf: | + + AllowOverride All + + + 90-tuning.conf: | + KeepAlive On + MaxKeepAliveRequests 1000 + KeepAliveTimeOut 2 + ServerTokens Prod + + + LoadModule headers_module modules/mod_headers.so + + + LoadModule expires_module modules/mod_expires.so + + + ExpiresActive On + ExpiresByType text/css "access plus 1 month" + ExpiresByType text/javascript "access plus 1 month" + ExpiresByType text/plain "access plus 1 month" + ExpiresByType image/gif "access plus 1 month" + ExpiresByType image/jpg "access plus 1 month" + ExpiresByType image/png "access plus 1 month" + ExpiresByType application/x-shockwave-flash "access plus 1 month" + ExpiresByType application/x-javascript "access plus 1 month" + Header unset Last-Modified + + + # mod_filter needed for "AddOutputFilterByType" in Apache 2.4 + + LoadModule filter_module modules/mod_filter.so + + + LoadModule deflate_module modules/mod_deflate.so + + + AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript + # Netscape 4.x has some problems... + BrowserMatch ^Mozilla/4 gzip-only-text/html + # Netscape 4.06-4.08 have some more problems + BrowserMatch ^Mozilla/4\.0[678] no-gzip + # MSIE masquerades as Netscape, but it is fine + BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html + # Make sure proxies don't deliver the wrong content + Header append Vary User-Agent env=!dont-vary + + + + LoadModule rewrite_module modules/mod_rewrite.so + + +{{- end }} diff --git a/helm-charts/uawebapp/templates/configmap-scripts.yaml b/helm-charts/uawebapp/templates/configmap-scripts.yaml new file mode 100644 index 00000000..e7d0917d --- /dev/null +++ b/helm-charts/uawebapp/templates/configmap-scripts.yaml @@ -0,0 +1,52 @@ +{{- include "sch.config.init" (list . "uawebapp.sch.chart.config.values") -}} +{{- if .Values.imageConfig.name }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "sch.names.fullCompName" (list . "scripts") }} + namespace: {{ .Release.Namespace }} + labels: +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} +data: + 10-logging.sh: | + #!/bin/sh + + echo "---> Updating LogLevel to '{{ .Values.logging.level }}' ..." + sed -i 's!LogLevel warn!LogLevel {{ .Values.logging.level }}!g' /etc/httpd/conf.d/ssl.conf + sed -i 's!LogLevel warn!LogLevel {{ .Values.logging.level }}!g' /etc/httpd/conf/httpd.conf + + echo "---> Disabling default logging directives in favor of ConfigMap directives ..." + sed -ri 's!^(\s*)CustomLog!\1#CustomLog!g; s!^ErrorLog!#ErrorLog!g; s!^TransferLog!#TransferLog!g;' /etc/httpd/conf/httpd.conf + perl -pi -e 's!^CustomLog\s*(.*)\s+\\\n!#CustomLog \1!g; s!^ErrorLog!#ErrorLog!g; s!^TransferLog!#TransferLog!g;' /etc/httpd/conf.d/ssl.conf + + 20-rewriteRules.sh: | + #!/bin/sh + + echo "---> Fixing port in HTTPS redirects ..." + sed -i $'/<\/VirtualHost>/{e cat /opt/app-root/src/httpd-pre-init/20-rewriteRules.conf\n}' /etc/httpd/conf.d/ssl.conf + + 20-rewriteRules.conf: | + RewriteEngine On + RewriteCond %{REQUEST_URI} !(.+)/$ + RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f + RewriteCond %{HTTP_HOST}:%{SERVER_PORT} ^(.+):8443$ [NC] + RewriteRule ^(.*)$ https://%{HTTP_HOST}$1/ [L,R=301] + +{{- end }} diff --git a/helm-charts/uawebapp/templates/deployment.yaml b/helm-charts/uawebapp/templates/deployment.yaml new file mode 100644 index 00000000..f7dbbd3d --- /dev/null +++ b/helm-charts/uawebapp/templates/deployment.yaml @@ -0,0 +1,116 @@ +{{- include "sch.config.init" (list . "uawebapp.sch.chart.config.values") -}} +{{- if .Values.imageConfig.name }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "sch.names.fullName" (list .) }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 6 }} + template: + metadata: + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 8 }} + annotations: + {{- include "sch.metadata.annotations.metering" (list . .sch.chart.metering) | nindent 8 }} + spec: + {{- include "sch.security.securityContext" (list . .sch.chart.podSecurityContext) | nindent 6 }} + affinity: + {{- include "sch.affinity.nodeAffinity" (list . .sch.chart.nodeAffinity) | nindent 8 }} + {{- if .Values.global.imagePullSecret.username }} + imagePullSecrets: + - name: {{ .Release.Name }}-pull-secret + {{- end }} + restartPolicy: Always + serviceAccountName: {{ default (include "sch.names.fullName" (list .)) .Values.serviceAccountName }} + volumes: + - name: service-certs + secret: + secretName: {{ include "sch.names.fullName" (list .) }} + - name: conf-d + configMap: + name: {{ include "sch.names.fullCompName" (list . "conf") }} + - name: init-scripts + configMap: + name: {{ include "sch.names.fullCompName" (list . "scripts") }} + {{- if .Values.global.apps.common.persistence.enabled }} + - name: {{ .Release.Name }}-persistence-volume + persistentVolumeClaim: + claimName: {{ .Release.Name }}-persistence-pvc + {{- end }} + containers: + - name: {{ .Chart.Name | lower }} + image: {{ include "uawebapp.imageFullName" . }} + imagePullPolicy: {{ .Values.global.images.pullPolicy }} + ports: + - name: client + containerPort: 8443 + protocol: TCP + {{- include "sch.security.securityContext" (list . .sch.chart.containerSecurityContext) | nindent 10 }} + livenessProbe: + tcpSocket: + port: client + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + {{- if .Values.readinessProbe.path }} + readinessProbe: + httpGet: + path: {{ .Values.readinessProbe.path }} + port: client + scheme: HTTPS + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + {{- end }} + {{- with .Values.resources }} + resources: + {{- toYaml . | nindent 12 }} + {{- end }} + volumeMounts: + - name: service-certs + mountPath: /opt/app-root/httpd-ssl/private/tls.pem + subPath: tls.key + - name: service-certs + mountPath: /opt/app-root/httpd-ssl/certs/tls.pem + subPath: tls.crt + {{- range $confFile := (list "70-logging.conf" "80-staticContent.conf" "90-tuning.conf") }} + - name: conf-d + mountPath: /etc/httpd/conf.d/{{ $confFile }} + subPath: {{ $confFile }} + {{- end }} + {{- range $shellFile := (list "10-logging.sh" "20-rewriteRules.sh" "20-rewriteRules.conf") }} + - name: init-scripts + mountPath: /opt/app-root/src/httpd-pre-init/{{ $shellFile }} + subPath: {{ $shellFile }} + {{- end }} + {{- if .Values.global.apps.common.persistence.enabled }} + - name: {{ .Release.Name }}-persistence-volume + mountPath: {{ include "persistence.mountPoint" . }} + subPath: {{ include "persistence.subDir" . }} + {{- end }} +{{- end }} diff --git a/helm-charts/uawebapp/templates/pull-secret.yaml b/helm-charts/uawebapp/templates/pull-secret.yaml new file mode 100644 index 00000000..e5fef143 --- /dev/null +++ b/helm-charts/uawebapp/templates/pull-secret.yaml @@ -0,0 +1,28 @@ +{{- include "sch.config.init" (list . "uawebapp.sch.chart.config.values") -}} +{{- if and .Values.global.sch.enabled .Values.global.imagePullSecret.username .Values.imageConfig.name }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Release.Name }}-pull-secret + namespace: {{ .Release.Namespace }} +type: kubernetes.io/dockerconfigjson +data: + .dockerconfigjson: {{ template "uawebapp.imagePullSecret" .Values.global.imagePullSecret }} +{{- end }} diff --git a/helm-charts/ihs/templates/service.yaml b/helm-charts/uawebapp/templates/service.yaml similarity index 66% rename from helm-charts/ihs/templates/service.yaml rename to helm-charts/uawebapp/templates/service.yaml index 4780a8a4..d8316731 100644 --- a/helm-charts/ihs/templates/service.yaml +++ b/helm-charts/uawebapp/templates/service.yaml @@ -1,4 +1,5 @@ -{{- with .Values.global.ihs }} +{{- include "sch.config.init" (list . "uawebapp.sch.chart.config.values") -}} +{{- if .Values.imageConfig.name }} --- ############################################################################### # Copyright 2019,2020 IBM Corporation @@ -19,22 +20,21 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "ihs.fullname" $ }} - namespace: {{ $.Release.Namespace }} + name: {{ include "sch.names.fullName" (list .) }} + namespace: {{ .Release.Namespace }} labels: -{{ include "ihs.labels" $ | indent 4 }} -{{- if $.Capabilities.APIVersions.Has "route.openshift.io/v1" }} +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} +{{- if .Capabilities.APIVersions.Has "route.openshift.io/v1" }} annotations: - service.beta.openshift.io/serving-cert-secret-name: {{ include "ihs.fullname" $ }} + service.beta.openshift.io/serving-cert-secret-name: {{ include "sch.names.fullName" (list .) }} {{- end }} spec: - type: NodePort + type: ClusterIP ports: - - port: {{ $.Values.global.apps.common.port }} + - port: 8443 targetPort: client protocol: TCP name: https selector: - app.kubernetes.io/name: {{ include "ihs.fullname" $ }} - app.kubernetes.io/instance: {{ $.Release.Name }} -{{ end }} +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} +{{- end }} diff --git a/helm-charts/uawebapp/templates/serviceaccount.yaml b/helm-charts/uawebapp/templates/serviceaccount.yaml new file mode 100644 index 00000000..1f5b5a6d --- /dev/null +++ b/helm-charts/uawebapp/templates/serviceaccount.yaml @@ -0,0 +1,33 @@ +{{- include "sch.config.init" (list . "uawebapp.sch.chart.config.values") -}} +{{- if and .Values.imageConfig.name (not .Values.serviceAccountName) }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "sch.names.fullName" (list .) }} + namespace: {{ .Release.Namespace }} + labels: +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} +imagePullSecrets: + - name: sa-{{ .Release.Namespace }} + {{- if .Values.global.imagePullSecret.username }} + - name: {{ .Release.Name | lower }}-pull-secret + {{- end }} + +{{- end }} diff --git a/helm-charts/uawebapp/templates/tls-secret.yaml b/helm-charts/uawebapp/templates/tls-secret.yaml new file mode 100644 index 00000000..6b359aa8 --- /dev/null +++ b/helm-charts/uawebapp/templates/tls-secret.yaml @@ -0,0 +1,32 @@ +{{- include "sch.config.init" (list . "uawebapp.sch.chart.config.values") -}} +{{- if and .Values.imageConfig.name (not (.Capabilities.APIVersions.Has "route.openshift.io/v1")) }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +{{- $cert := genSelfSignedCert (printf "%s-%s" .Release.Name .Chart.Name) nil nil 365 }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "sch.names.fullName" (list .) }} + namespace: {{ .Release.Namespace }} + labels: +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} +type: kubernetes.io/tls +data: + tls.crt: {{ $cert.Cert | b64enc }} + tls.key: {{ $cert.Key | b64enc }} +{{- end }} diff --git a/helm-charts/uawebapp/values.yaml b/helm-charts/uawebapp/values.yaml new file mode 100644 index 00000000..82e249b0 --- /dev/null +++ b/helm-charts/uawebapp/values.yaml @@ -0,0 +1,84 @@ +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +global: + images: + registry: &imageRegistry minikube.local:5000 + pullPolicy: Always + imagePullSecret: + username: '' + sch: + enabled: true + apps: + common: + persistence: + ## Persistence volume to store data (such as non-log files) + enabled: false + ## If enabled, creates a PVC to connect to IBM Cloud Object Storage + ## Properties storageClassName, secretKey, accessKey, instanceId, and bucketName are required + ## Values available in the WebUI where the bucket was pre-created + # storageClassName: "" + # secretKey: "" + # accessKey: "" + # instanceId: "" + # bucketName: "" + mountPoint: '' + subDir: '' + +imageConfig: + library: '' + name: '' + tag: latest + +# Require Intel-based workers +arch: "amd64" + +logging: + level: warn + formatLabel: common + maxFiles: 10 + maxSize: 5M + +# Number of web server replicas to run +replicaCount: 1 + +# Resource limits for the web server +resources: + limits: + cpu: "0.5" + memory: "1Gi" + requests: + cpu: "0.25" + memory: "0.5Gi" + +# Name of an existing ServiceAccount for running the web server +serviceAccountName: "" + +# livenessProbe section specifies setting for the web server liveness probe, which checks for a running HTTP server +livenessProbe: + initialDelaySeconds: 5 + periodSeconds: 5 + timeoutSeconds: 3 + failureThreshold: 1 + +# readinessProbe section specifies setting for the web server readiness probe, which checks when the Static Content is available +readinessProbe: + # Path to check for readiness + path: /universal/ + initialDelaySeconds: 5 + periodSeconds: 10 + timeoutSeconds: 3 + failureThreshold: 1 diff --git a/helm-charts/configmaps/.helmignore b/helm-charts/web/.helmignore similarity index 94% rename from helm-charts/configmaps/.helmignore rename to helm-charts/web/.helmignore index 50af0317..2d151b70 100644 --- a/helm-charts/configmaps/.helmignore +++ b/helm-charts/web/.helmignore @@ -20,3 +20,6 @@ .idea/ *.tmproj .vscode/ + +# IBM Dev +cv-tests/ diff --git a/helm-charts/configmaps/Chart.yaml b/helm-charts/web/Chart.yaml similarity index 72% rename from helm-charts/configmaps/Chart.yaml rename to helm-charts/web/Chart.yaml index 8acfaccd..9c6bb4ed 100644 --- a/helm-charts/configmaps/Chart.yaml +++ b/helm-charts/web/Chart.yaml @@ -13,10 +13,12 @@ # See the License for the specific language governing permissions and # limitations under the License. ############################################################################### -apiVersion: v1 -name: configmaps -description: Helm Chart for Config Maps preparation in support of Container Deployment of SPM within a Kubernetes Cluster -version: 1.3.0 +apiVersion: v2 +kubeVersion: ">=1.16" +appVersion: "7.0.10.0" +name: web +description: Chart for SPM webserver within a Kubernetes Cluster +version: 3.0.0 maintainers: - name: Cúram SPM Dev Team url: https://github.com/IBM/spm-kubernetes @@ -27,8 +29,19 @@ keywords: - Minikube - IKS - OpenShift - - RHOS + - RHOCP - Curam - SPM + - amd64 + - deploy + - DevOps + - Commercial + - Limited home: https://www.ibm.com/watson-health/solutions/social-program-management -icon: https://avatars2.githubusercontent.com/u/1459110 \ No newline at end of file +icon: https://avatars2.githubusercontent.com/u/1459110 +dependencies: + - name: ibm-sch + repository: "@sch" + version: "^1.2.17" + alias: sch + condition: global.sch.enabled diff --git a/helm-charts/configmaps/LICENSE b/helm-charts/web/LICENSE similarity index 100% rename from helm-charts/configmaps/LICENSE rename to helm-charts/web/LICENSE diff --git a/helm-charts/web/README.md b/helm-charts/web/README.md new file mode 100644 index 00000000..d4389638 --- /dev/null +++ b/helm-charts/web/README.md @@ -0,0 +1,37 @@ +# web + +## Introduction + +* The `web` chart is a component of IBM Curam Social Program Management (SPM) Platform responsible for providing the static content for the SPM application on Apache HTTP Server. +* This component should not be deployed outside of the [`spm`](../spm) chart. + +## Chart Details + +* Deployment of a single pod listening on port 8443 +* Exposed to the cluster using a service for potential load balancing + +## Prerequisites + +* Kubernetes 1.16 or later +* Helm 3.0.0 or later +* [`PodDisruptionBudgets`](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) are recommended for high resiliency in an application during risky operations, such as draining a node for maintenance or scaling down a cluster. + +### PodSecurityPolicy Requirements + +Custom PodSecurityPolicy definition: + +``` +Not required as web server runs with the default restricted policy +``` + +### SecurityContextConstraints Requirements + +Custom SecurityContextConstraints definition: + +``` +Not required as web server runs with the default restricted policy +``` + +## Configuration + +See [README.md](../spm) in the `spm` umbrella chart. diff --git a/helm-charts/web/RELEASENOTES.md b/helm-charts/web/RELEASENOTES.md new file mode 100644 index 00000000..9dfacef7 --- /dev/null +++ b/helm-charts/web/RELEASENOTES.md @@ -0,0 +1,37 @@ +# What's new + +* OpenShift support introduced. +* Runs with `restricted` (default) pod security policy. + +### Fixes + +## Prerequisites + +* See README.md + +# Version History + +## v3.0.0 + +* Changed web server image from IHS to Apache HTTP +* Reduce privilege requirements to run with the `restricted` security policy +* Moved configuration to ConfigMap + +## v2.1.0 + +* Change to UBI base images +* Add option to inject certificates +* Allow binding to privileged ports +* + +## v2.0.0 + +* Enabling log persistence + +## v1.1.0 + +* Applying Apache 2.0 license + +## v1.0.0 + +* Initial release diff --git a/helm-charts/web/templates/NOTES.txt b/helm-charts/web/templates/NOTES.txt new file mode 100644 index 00000000..f06fe460 --- /dev/null +++ b/helm-charts/web/templates/NOTES.txt @@ -0,0 +1,10 @@ +{{- include "sch.config.init" (list . "web.sch.chart.config.values") -}} + +The web server is not exposed by default. + +A Route/Ingress resource must be created to expose the web server pod(s). + +Service name: {{ include "sch.names.fullName" (list .) }}.{{ .Release.Namespace }}.svc +Service port: 8443 (https) + +Content path to be mapped: {{ .Values.readinessProbe.path }} diff --git a/helm-charts/web/templates/_helpers.tpl b/helm-charts/web/templates/_helpers.tpl new file mode 100644 index 00000000..8487cf26 --- /dev/null +++ b/helm-charts/web/templates/_helpers.tpl @@ -0,0 +1,60 @@ +{{/* +Copyright 2019,2020 IBM Corporation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +{{/* vim: set filetype=mustache: */}} +{{/* +Create the image pull secret +*/}} +{{- define "web.imagePullSecret" }} +{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .registry (printf "%s:%s" .username (required "Credentials password is required" .password) | b64enc) | b64enc }} +{{- end }} + +{{/* +Build up full image path +*/}} +{{- define "web.imageFullName" -}} +{{- $imageConfig := .Values.global.images -}} +{{- $imageConfig.registry -}}/ +{{- if $imageConfig.imageLibrary -}} +{{- $imageConfig.imageLibrary -}}/ +{{- end -}} +{{- if $imageConfig.imagePrefix -}} +{{- $imageConfig.imagePrefix -}} +{{- end -}} +httpd:{{- default $imageConfig.imageTag .Values.imageTagOverride -}} +{{- end -}} + +{{/* +Mountpoint for the persistence storage on the application pods (e.g. /tmp/persistence ) +*/}} +{{- define "persistence.mountPoint" -}} +{{- if .Values.global.apps.common.persistence.mountPoint -}} +{{- .Values.global.apps.common.persistence.mountPoint -}} +{{- else -}} +{{- "/tmp/persistence" -}} +{{- end -}} +{{- end -}} + +{{/* +Folder name to persist release files inside mountpoint (e.g. /tmp/persistence/release_name") +*/}} +{{- define "persistence.subDir" -}} +{{- if .Values.global.apps.common.persistence.subDir -}} +{{- .Values.global.apps.common.persistence.subDir -}} +{{- else -}} +{{- printf "%s" $.Release.Name -}} +{{- end -}} +{{- end -}} diff --git a/helm-charts/web/templates/_sch-chart-config.tpl b/helm-charts/web/templates/_sch-chart-config.tpl new file mode 100644 index 00000000..0c077104 --- /dev/null +++ b/helm-charts/web/templates/_sch-chart-config.tpl @@ -0,0 +1,39 @@ +{{/* +Copyright 2020 IBM Corporation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +{{- /* +".sch.chart.config.values" contains the default configuration values used by +the Shared Configurable Helpers overridden for this chart. +*/ -}} +{{- define "web.sch.chart.config.values" -}} +sch: + chart: + labelType: "prefixed" + podSecurityContext: + hostIPC: false + hostNetwork: false + hostPID: false + securityContext: + runAsNonRoot: true + containerSecurityContext: + securityContext: + privileged: false + readOnlyRootFilesystem: false + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL +{{- end -}} diff --git a/helm-charts/web/templates/configmap-confd.yaml b/helm-charts/web/templates/configmap-confd.yaml new file mode 100644 index 00000000..844771b6 --- /dev/null +++ b/helm-charts/web/templates/configmap-confd.yaml @@ -0,0 +1,94 @@ +{{- include "sch.config.init" (list . "web.sch.chart.config.values") -}} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "sch.names.fullCompName" (list . "conf") }} + namespace: {{ .Release.Namespace }} + labels: +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} +data: + 70-logging.conf: | + ServerName {{ include "sch.names.fullName" (list .) }}.{{ .Release.Namespace }}.svc + + SetEnvIf User-agent .*kube-probe.* probe + {{- if .Values.global.apps.common.persistence.enabled }} + ErrorLog "|/usr/sbin/rotatelogs -n {{ .Values.logging.maxFiles }} -e -D {{ include "persistence.mountPoint" . }}/${HOSTNAME}/logs/error_log {{ .Values.logging.maxSize }}" + CustomLog "|/usr/sbin/rotatelogs -n {{ .Values.logging.maxFiles }} -e -D {{ include "persistence.mountPoint" . }}/${HOSTNAME}/logs/access_log {{ .Values.logging.maxSize }}" {{ .Values.logging.formatLabel }} env=!probe + CustomLog "|/usr/sbin/rotatelogs -n {{ .Values.logging.maxFiles }} -D {{ include "persistence.mountPoint" . }}/${HOSTNAME}/logs/access_probe.log {{ .Values.logging.maxSize }}" {{ .Values.logging.formatLabel }} env=probe + {{- else }} + ErrorLog "|/usr/sbin/rotatelogs -n {{ .Values.logging.maxFiles }} -e -D /var/log/httpd/error_log {{ .Values.logging.maxSize }}" + CustomLog "|/usr/sbin/rotatelogs -n {{ .Values.logging.maxFiles }} -e -D /var/log/httpd/access_log {{ .Values.logging.maxSize }}" {{ .Values.logging.formatLabel }} env=!probe + CustomLog "|/usr/sbin/rotatelogs -n {{ .Values.logging.maxFiles }} -D /var/log/httpd/access_probe.log {{ .Values.logging.maxSize }}" {{ .Values.logging.formatLabel }} env=probe + {{- end }} + + 80-staticContent.conf: | + + Options MultiViews + AllowOverride None + Require all granted + + + 90-tuning.conf: | + KeepAlive On + MaxKeepAliveRequests 1000 + KeepAliveTimeOut 2 + ServerTokens Prod + + + LoadModule headers_module modules/mod_headers.so + + + LoadModule expires_module modules/mod_expires.so + + + ExpiresActive On + ExpiresByType text/css "access plus 1 month" + ExpiresByType text/javascript "access plus 1 month" + ExpiresByType text/plain "access plus 1 month" + ExpiresByType image/gif "access plus 1 month" + ExpiresByType image/jpg "access plus 1 month" + ExpiresByType image/png "access plus 1 month" + ExpiresByType application/x-shockwave-flash "access plus 1 month" + ExpiresByType application/x-javascript "access plus 1 month" + Header unset Last-Modified + + + # mod_filter needed for "AddOutputFilterByType" in Apache 2.4 + + LoadModule filter_module modules/mod_filter.so + + + LoadModule deflate_module modules/mod_deflate.so + + + AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript + # Netscape 4.x has some problems... + BrowserMatch ^Mozilla/4 gzip-only-text/html + # Netscape 4.06-4.08 have some more problems + BrowserMatch ^Mozilla/4\.0[678] no-gzip + # MSIE masquerades as Netscape, but it is fine + BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html + # Make sure proxies don't deliver the wrong content + Header append Vary User-Agent env=!dont-vary + + + + LoadModule rewrite_module modules/mod_rewrite.so + diff --git a/helm-charts/web/templates/configmap-scripts.yaml b/helm-charts/web/templates/configmap-scripts.yaml new file mode 100644 index 00000000..e7287c22 --- /dev/null +++ b/helm-charts/web/templates/configmap-scripts.yaml @@ -0,0 +1,49 @@ +{{- include "sch.config.init" (list . "web.sch.chart.config.values") -}} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "sch.names.fullCompName" (list . "scripts") }} + namespace: {{ .Release.Namespace }} + labels: +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} +data: + 10-logging.sh: | + #!/bin/sh + + echo "---> Updating LogLevel to '{{ .Values.logging.level }}' ..." + sed -i 's!LogLevel warn!LogLevel {{ .Values.logging.level }}!g' /etc/httpd/conf.d/ssl.conf + sed -i 's!LogLevel warn!LogLevel {{ .Values.logging.level }}!g' /etc/httpd/conf/httpd.conf + + echo "---> Disabling default logging directives in favor of ConfigMap directives ..." + sed -ri 's!^(\s*)CustomLog!\1#CustomLog!g; s!^ErrorLog!#ErrorLog!g; s!^TransferLog!#TransferLog!g;' /etc/httpd/conf/httpd.conf + perl -pi -e 's!^CustomLog\s*(.*)\s+\\\n!#CustomLog \1!g; s!^ErrorLog!#ErrorLog!g; s!^TransferLog!#TransferLog!g;' /etc/httpd/conf.d/ssl.conf + + 20-rewriteRules.sh: | + #!/bin/sh + + echo "---> Fixing port in HTTPS redirects ..." + sed -i $'/<\/VirtualHost>/{e cat /opt/app-root/src/httpd-pre-init/20-rewriteRules.conf\n}' /etc/httpd/conf.d/ssl.conf + + 20-rewriteRules.conf: | + RewriteEngine On + RewriteCond %{REQUEST_URI} !(.+)/$ + RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f + RewriteCond %{HTTP_HOST}:%{SERVER_PORT} ^(.+):8443$ [NC] + RewriteRule ^(.*)$ https://%{HTTP_HOST}$1/ [L,R=301] diff --git a/helm-charts/web/templates/deployment.yaml b/helm-charts/web/templates/deployment.yaml new file mode 100644 index 00000000..382fd4d8 --- /dev/null +++ b/helm-charts/web/templates/deployment.yaml @@ -0,0 +1,113 @@ +{{- include "sch.config.init" (list . "web.sch.chart.config.values") -}} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "sch.names.fullName" (list .) }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 6 }} + template: + metadata: + labels: + {{- include "sch.metadata.labels.standard" (list . "") | nindent 8 }} + annotations: + spec: + {{- include "sch.security.securityContext" (list . .sch.chart.podSecurityContext) | nindent 6 }} + affinity: + {{- include "sch.affinity.nodeAffinity" (list . .sch.chart.nodeAffinity) | nindent 8 }} + {{- if .Values.global.imagePullSecret.username }} + imagePullSecrets: + - name: {{ .Release.Name }}-pull-secret + {{- end }} + restartPolicy: Always + serviceAccountName: {{ default (include "sch.names.fullName" (list .)) .Values.serviceAccountName }} + volumes: + - name: service-certs + secret: + secretName: {{ include "sch.names.fullName" (list .) }} + - name: conf-d + configMap: + name: {{ include "sch.names.fullCompName" (list . "conf") }} + - name: init-scripts + configMap: + name: {{ include "sch.names.fullCompName" (list . "scripts") }} + {{- if .Values.global.apps.common.persistence.enabled }} + - name: {{ .Release.Name }}-persistence-volume + persistentVolumeClaim: + claimName: {{ .Release.Name }}-persistence-pvc + {{- end }} + containers: + - name: {{ .Chart.Name }} + image: {{ include "web.imageFullName" . }} + imagePullPolicy: {{ .Values.global.images.pullPolicy }} + ports: + - name: client + containerPort: 8443 + protocol: TCP + {{- include "sch.security.securityContext" (list . .sch.chart.containerSecurityContext) | nindent 10 }} + livenessProbe: + tcpSocket: + port: client + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + {{- if .Values.readinessProbe.path }} + readinessProbe: + httpGet: + path: {{ .Values.readinessProbe.path }} + port: client + scheme: HTTPS + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + {{- end }} + {{- with .Values.resources }} + resources: + {{- toYaml . | nindent 12 }} + {{- end }} + volumeMounts: + - name: service-certs + mountPath: /opt/app-root/httpd-ssl/private/tls.pem + subPath: tls.key + - name: service-certs + mountPath: /opt/app-root/httpd-ssl/certs/tls.pem + subPath: tls.crt + {{- range $confFile := (list "70-logging.conf" "80-staticContent.conf" "90-tuning.conf") }} + - name: conf-d + mountPath: /etc/httpd/conf.d/{{ $confFile }} + subPath: {{ $confFile }} + {{- end }} + {{- range $shellFile := (list "10-logging.sh" "20-rewriteRules.sh" "20-rewriteRules.conf") }} + - name: init-scripts + mountPath: /opt/app-root/src/httpd-pre-init/{{ $shellFile }} + subPath: {{ $shellFile }} + {{- end }} + {{- if .Values.global.apps.common.persistence.enabled }} + - name: {{ .Release.Name }}-persistence-volume + mountPath: {{ include "persistence.mountPoint" . }} + subPath: {{ include "persistence.subDir" . }} + {{- end }} diff --git a/helm-charts/spm/templates/pull-secret.yaml b/helm-charts/web/templates/pull-secret.yaml similarity index 84% rename from helm-charts/spm/templates/pull-secret.yaml rename to helm-charts/web/templates/pull-secret.yaml index 17d95050..480f4dfa 100644 --- a/helm-charts/spm/templates/pull-secret.yaml +++ b/helm-charts/web/templates/pull-secret.yaml @@ -1,4 +1,4 @@ -{{- if .Values.global.imagePullSecret.username }} +{{- if and .Values.global.sch.enabled .Values.global.imagePullSecret.username }} --- ############################################################################### # Copyright 2019,2020 IBM Corporation @@ -23,5 +23,5 @@ metadata: namespace: {{ .Release.Namespace }} type: kubernetes.io/dockerconfigjson data: - .dockerconfigjson: {{ template "imagePullSecret" .Values.global.imagePullSecret }} + .dockerconfigjson: {{ template "web.imagePullSecret" .Values.global.imagePullSecret }} {{- end }} diff --git a/helm-charts/ce-app/templates/service.yaml b/helm-charts/web/templates/service.yaml similarity index 75% rename from helm-charts/ce-app/templates/service.yaml rename to helm-charts/web/templates/service.yaml index b862a660..daae88b0 100644 --- a/helm-charts/ce-app/templates/service.yaml +++ b/helm-charts/web/templates/service.yaml @@ -1,4 +1,4 @@ -{{- if .Values.global.ceApp.imageName }} +{{- include "sch.config.init" (list . "web.sch.chart.config.values") -}} --- ############################################################################### # Copyright 2019,2020 IBM Corporation @@ -19,22 +19,20 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "ce-app.fullname" . }} + name: {{ include "sch.names.fullName" (list .) }} namespace: {{ .Release.Namespace }} labels: -{{ include "ce-app.labels" . | indent 4 }} +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} {{- if .Capabilities.APIVersions.Has "route.openshift.io/v1" }} annotations: - service.beta.openshift.io/serving-cert-secret-name: {{ include "ce-app.fullname" . }} + service.beta.openshift.io/serving-cert-secret-name: {{ include "sch.names.fullName" (list .) }} {{- end }} spec: - type: NodePort + type: ClusterIP ports: - - port: {{ .Values.global.apps.common.port }} + - port: 8443 targetPort: client protocol: TCP name: https selector: - app.kubernetes.io/name: {{ include "ce-app.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} diff --git a/helm-charts/web/templates/serviceaccount.yaml b/helm-charts/web/templates/serviceaccount.yaml new file mode 100644 index 00000000..d697ae4e --- /dev/null +++ b/helm-charts/web/templates/serviceaccount.yaml @@ -0,0 +1,33 @@ +{{- include "sch.config.init" (list . "web.sch.chart.config.values") -}} +{{- if not .Values.serviceAccountName }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "sch.names.fullName" (list .) }} + namespace: {{ .Release.Namespace }} + labels: +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} +imagePullSecrets: + - name: sa-{{ .Release.Namespace }} + {{- if .Values.global.imagePullSecret.username }} + - name: {{ .Release.Name | lower }}-pull-secret + {{- end }} + +{{- end }} diff --git a/helm-charts/ihs/templates/tls-secret.yaml b/helm-charts/web/templates/tls-secret.yaml similarity index 76% rename from helm-charts/ihs/templates/tls-secret.yaml rename to helm-charts/web/templates/tls-secret.yaml index 27794374..d98387f6 100644 --- a/helm-charts/ihs/templates/tls-secret.yaml +++ b/helm-charts/web/templates/tls-secret.yaml @@ -1,4 +1,5 @@ {{- if not (.Capabilities.APIVersions.Has "route.openshift.io/v1") }} +{{- include "sch.config.init" (list . "web.sch.chart.config.values") -}} --- ############################################################################### # Copyright 2019,2020 IBM Corporation @@ -16,14 +17,16 @@ # limitations under the License. ############################################################################### -{{- $cert := genSelfSignedCert .Release.Name nil nil 365 }} +{{- $cert := genSelfSignedCert (printf "%s-%s" .Release.Name .Chart.Name) nil nil 365 }} apiVersion: v1 kind: Secret metadata: - name: {{ include "ihs.fullname" . }} + name: {{ include "sch.names.fullName" (list .) }} namespace: {{ .Release.Namespace }} + labels: +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} type: kubernetes.io/tls data: tls.crt: {{ $cert.Cert | b64enc }} tls.key: {{ $cert.Key | b64enc }} -{{- end }} \ No newline at end of file +{{- end }} diff --git a/helm-charts/web/values.yaml b/helm-charts/web/values.yaml new file mode 100644 index 00000000..d5ce9717 --- /dev/null +++ b/helm-charts/web/values.yaml @@ -0,0 +1,85 @@ +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +global: + images: + registry: &imageRegistry minikube.local:5000 + imageLibrary: '' + imagePrefix: '' + imageTag: latest + pullPolicy: Always + imagePullSecret: + username: '' + sch: + enabled: true + apps: + common: + persistence: + ## Persistence volume to store data (such as non-log files) + enabled: false + ## If enabled, creates a PVC to connect to IBM Cloud Object Storage + ## Properties storageClassName, secretKey, accessKey, instanceId, and bucketName are required + ## Values available in the WebUI where the bucket was pre-created + # storageClassName: "" + # secretKey: "" + # accessKey: "" + # instanceId: "" + # bucketName: "" + mountPoint: '' + subDir: '' + +# Override the global image tag for the web server only +imageTagOverride: '' + +# Require Intel-based workers +arch: "amd64" + +logging: + level: warn + formatLabel: common + maxFiles: 10 + maxSize: 5M + +# Number of web server replicas to run +replicaCount: 1 + +# Resource limits for the web server +resources: + limits: + cpu: "0.5" + memory: "1Gi" + requests: + cpu: "0.25" + memory: "0.5Gi" + +# Name of an existing ServiceAccount for running the web server +serviceAccountName: "" + +# livenessProbe section specifies setting for the web server liveness probe, which checks for a running HTTP server +livenessProbe: + initialDelaySeconds: 5 + periodSeconds: 5 + timeoutSeconds: 3 + failureThreshold: 1 + +# readinessProbe section specifies setting for the web server readiness probe, which checks when the Static Content is available +readinessProbe: + # Path to check for readiness + path: /CuramStatic/ + initialDelaySeconds: 5 + periodSeconds: 10 + timeoutSeconds: 3 + failureThreshold: 1 diff --git a/helm-charts/xmlserver/.helmignore b/helm-charts/xmlserver/.helmignore index 50af0317..2d151b70 100644 --- a/helm-charts/xmlserver/.helmignore +++ b/helm-charts/xmlserver/.helmignore @@ -20,3 +20,6 @@ .idea/ *.tmproj .vscode/ + +# IBM Dev +cv-tests/ diff --git a/helm-charts/xmlserver/Chart.yaml b/helm-charts/xmlserver/Chart.yaml index 50b83361..99291302 100644 --- a/helm-charts/xmlserver/Chart.yaml +++ b/helm-charts/xmlserver/Chart.yaml @@ -13,10 +13,12 @@ # See the License for the specific language governing permissions and # limitations under the License. ############################################################################### -apiVersion: v1 +apiVersion: v2 +kubeVersion: ">=1.16" +appVersion: "7.0.10.0" name: xmlserver description: Helm Chart for XMLServer Container Deployment of SPM within a Kubernetes Cluster -version: 1.2.0 +version: 2.0.0 maintainers: - name: Cúram SPM Dev Team url: https://github.com/IBM/spm-kubernetes @@ -27,8 +29,19 @@ keywords: - Minikube - IKS - OpenShift - - RHOS + - RHOCP - Curam - SPM + - amd64 + - deploy + - DevOps + - Commercial + - Limited home: https://www.ibm.com/watson-health/solutions/social-program-management -icon: https://avatars2.githubusercontent.com/u/1459110 \ No newline at end of file +icon: https://avatars2.githubusercontent.com/u/1459110 +dependencies: + - name: ibm-sch + repository: "@sch" + version: "^1.2.17" + alias: sch + condition: global.sch.enabled diff --git a/helm-charts/xmlserver/README.md b/helm-charts/xmlserver/README.md new file mode 100644 index 00000000..b5a12b6b --- /dev/null +++ b/helm-charts/xmlserver/README.md @@ -0,0 +1,37 @@ +# xmlserver + +## Introduction + +* XMLServer is a component of IBM Curam Social Program Management (SPM) Platform responsible for producing PDF files for the SPM application. +* This component should not be deployed outside of the [`spm`](../spm) chart. + +## Chart Details + +* Deployment of a single pod listening on port 1800 +* Exposed to SPM using a service for potential load balancing + +## Prerequisites + +* Kubernetes 1.16 or later +* Helm 3.0.0 or later +* [`PodDisruptionBudgets`](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) are recommended for high resiliency in an application during risky operations, such as draining a node for maintenance or scaling down a cluster. + +### PodSecurityPolicy Requirements + +Custom PodSecurityPolicy definition: + +``` +Not required as XML server runs with the default restricted policy +``` + +### SecurityContextConstraints Requirements + +Custom SecurityContextConstraints definition: + +``` +Not required as XML server runs with the default restricted policy +``` + +## Configuration + +See [README.md](../spm) in the `spm` umbrella chart. diff --git a/helm-charts/xmlserver/RELEASENOTES.md b/helm-charts/xmlserver/RELEASENOTES.md new file mode 100644 index 00000000..e690c842 --- /dev/null +++ b/helm-charts/xmlserver/RELEASENOTES.md @@ -0,0 +1,30 @@ +# What's new + +* OpenShift support introduced. + +### Fixes + +## Prerequisites + +* See README.md + +# Version History + +## v2.0.0 + +* Graceful shutdown enabled +* Support for running under restricted (default) policy added + * XML server image must be rebuilt + +## v1.2.0 + +* Log persistence enabled +* Security context defined for compatibility with OpenShift + +## v1.1.0 + +* Post-install hook removed + +## v1.0.0 + +* Initial release diff --git a/helm-charts/xmlserver/templates/NOTES.txt b/helm-charts/xmlserver/templates/NOTES.txt new file mode 100644 index 00000000..49fcb833 --- /dev/null +++ b/helm-charts/xmlserver/templates/NOTES.txt @@ -0,0 +1,10 @@ +{{- include "sch.config.init" (list . "xmlserver.sch.chart.config.values") -}} + +The XML Server is not intended to be accessed from outside the cluster. + +The following properties must be set in the SPM database to point at the ClusterIP service in front of the XML Server pods: + +- curam.xmlserver.host: {{ include "sch.names.fullName" (list .) }} +- curam.xmlserver.port: {{ .Values.serverPort }} + +The service will balance SPM print requests across any replicas of the XML server automatically. diff --git a/helm-charts/xmlserver/templates/_helpers.tpl b/helm-charts/xmlserver/templates/_helpers.tpl index 1ebda3d9..56b3807a 100644 --- a/helm-charts/xmlserver/templates/_helpers.tpl +++ b/helm-charts/xmlserver/templates/_helpers.tpl @@ -22,24 +22,6 @@ Expand the name of the chart. {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} {{- end -}} -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "xmlserver.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - {{/* Create chart name and version as used by the chart label. */}} @@ -47,13 +29,6 @@ Create chart name and version as used by the chart label. {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} {{- end -}} -{{/* -Create the image pull secret -*/}} -{{- define "imagePullSecret" }} -{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .registry (printf "%s:%s" .username (required "Credentials password is required" .password) | b64enc) | b64enc }} -{{- end }} - {{/* Build up full image path */}} @@ -69,37 +44,11 @@ xmlserver:{{- .imageTag -}} {{- end -}} {{/* -Define Database hostname -*/}} -{{- define "xmlserver.dbhostname" -}} -{{- if .Values.global.database.hostname -}} -{{- .Values.global.database.hostname -}} -{{- else -}} -{{- .Release.Name -}}-db2 -{{- end -}} -{{- end -}} - -{{/* -Define Database username (or use default) -*/}} -{{- define "xmlserver.db2username" -}} -{{- if .Values.global.database.username -}} -{{- .Values.global.database.username -}} -{{- else -}} -{{- printf "db2admin" -}} -{{- end -}} -{{- end -}} - -{{/* -Define Database password (or use default) +Create the image pull secret */}} -{{- define "xmlserver.db2password" -}} -{{- if .Values.global.database.password -}} -{{- .Values.global.database.password -}} -{{- else -}} -{{- printf "%s" "ZGIyYWRtaW4=" | b64dec -}} -{{- end -}} -{{- end -}} +{{- define "xmlserver.imagePullSecret" }} +{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .registry (printf "%s:%s" .username (required "Credentials password is required" .password) | b64enc) | b64enc }} +{{- end }} {{/* Mountpoint for the persistence storage on the application pods (e.g. /tmp/persistence ) @@ -122,16 +71,3 @@ Folder name to persist release files inside mountpoint (e.g. /tmp/persistence/re {{- printf "%s" $.Release.Name -}} {{- end -}} {{- end -}} - -{{/* -Common labels -*/}} -{{- define "xmlserver.labels" -}} -app.kubernetes.io/name: {{ include "xmlserver.name" . }} -helm.sh/chart: {{ include "xmlserver.chart" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end -}} diff --git a/helm-charts/xmlserver/templates/_sch-chart-config.tpl b/helm-charts/xmlserver/templates/_sch-chart-config.tpl new file mode 100644 index 00000000..321082f6 --- /dev/null +++ b/helm-charts/xmlserver/templates/_sch-chart-config.tpl @@ -0,0 +1,39 @@ +{{/* +Copyright 2020 IBM Corporation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/}} + +{{- /* +".sch.chart.config.values" contains the default configuration values used by +the Shared Configurable Helpers overridden for this chart. +*/ -}} +{{- define "xmlserver.sch.chart.config.values" -}} +sch: + chart: + labelType: "prefixed" + podSecurityContext: + hostIPC: false + hostNetwork: false + hostPID: false + securityContext: + runAsNonRoot: true + containerSecurityContext: + securityContext: + privileged: false + readOnlyRootFilesystem: false + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL +{{- end -}} diff --git a/helm-charts/xmlserver/templates/deployment.yaml b/helm-charts/xmlserver/templates/deployment.yaml index fb92f9b7..3ea89ce8 100644 --- a/helm-charts/xmlserver/templates/deployment.yaml +++ b/helm-charts/xmlserver/templates/deployment.yaml @@ -1,4 +1,4 @@ -{{- with .Values.global.xmlserver }} +{{- include "sch.config.init" (list . "xmlserver.sch.chart.config.values") -}} --- ############################################################################### # Copyright 2019,2020 IBM Corporation @@ -19,66 +19,53 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: {{ include "xmlserver.fullname" $ }} - namespace: {{ $.Release.Namespace }} + name: {{ include "sch.names.fullName" (list .) }} + namespace: {{ .Release.Namespace }} labels: -{{ include "xmlserver.labels" $ | indent 4 }} +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} spec: - replicas: {{ .replicaCount | default 1 }} + replicas: {{ .Values.replicaCount | default 1 }} selector: matchLabels: - app.kubernetes.io/name: {{ include "xmlserver.fullname" $ }} - app.kubernetes.io/instance: {{ $.Release.Name }} + app.kubernetes.io/name: {{ include "sch.names.appName" (list .) | quote }} + app.kubernetes.io/instance: {{ .Release.Name | quote }} template: metadata: labels: - app.kubernetes.io/name: {{ include "xmlserver.fullname" $ }} - app.kubernetes.io/instance: {{ $.Release.Name }} +{{ include "sch.metadata.labels.standard" (list . "") | indent 8 }} spec: +{{- include "sch.security.securityContext" (list . .sch.chart.podSecurityContext) | indent 6 }} + affinity: +{{- include "sch.affinity.nodeAffinity" (list . .sch.chart.nodeAffinity) | indent 8 }} restartPolicy: {{ .restartPolicy | default "Always" }} - {{- if .runAs }} - securityContext: - runAsUser: {{ .runAs }} - fsGroup: {{ .runAs }} - {{- end }} - {{- if $.Values.global.imagePullSecret.username }} + {{- if .Values.global.imagePullSecret.username }} imagePullSecrets: - - name: {{ $.Release.Name }}-pull-secret + - name: {{ .Release.Name }}-pull-secret {{- end }} - {{- if $.Values.global.apps.common.persistence.enabled }} + serviceAccountName: {{ default (include "sch.names.fullName" (list .)) .Values.serviceAccountName }} + {{- if .Values.global.apps.common.persistence.enabled }} volumes: - - name: {{ $.Release.Name }}-persistence-volume + - name: {{ .Release.Name }}-persistence-volume persistentVolumeClaim: - claimName: {{ $.Release.Name }}-persistence-pvc + claimName: {{ .Release.Name }}-persistence-pvc {{- end }} - initContainers: - - name: wait-db2 - image: busybox:1.28 - command: - - /bin/sh - - -c - - > - until nslookup {{ include "xmlserver.dbhostname" $ }}; do - echo waiting for {{ include "xmlserver.dbhostname" $ }} to be available...; - sleep 2; - done containers: - - name: {{ $.Chart.Name }} - image: {{ include "xmlserver.imageFullName" $.Values.global.images }} - imagePullPolicy: {{ $.Values.global.images.pullPolicy }} + - name: {{ .Chart.Name }} + image: {{ include "xmlserver.imageFullName" .Values.global.images }} + imagePullPolicy: {{ .Values.global.images.pullPolicy }} ports: - - containerPort: {{ .port | default 1800 }} - {{- with .resources }} + - containerPort: {{ .Values.serverPort | default 1800 }} + {{- with .Values.resources }} resources: {{- toYaml . | nindent 12 }} {{- end }} - {{- if $.Values.global.apps.common.persistence.enabled }} +{{- include "sch.security.securityContext" (list . .sch.chart.containerSecurityContext) | indent 10 }} + {{- if .Values.global.apps.common.persistence.enabled }} env: - name: MOUNT_POINT value: {{ include "persistence.mountPoint" $ }} volumeMounts: - - name: {{ $.Release.Name }}-persistence-volume + - name: {{ .Release.Name }}-persistence-volume mountPath: {{ include "persistence.mountPoint" $ }} subPath: {{ include "persistence.subDir" $ }} {{- end }} -{{ end }} diff --git a/helm-charts/xmlserver/templates/pull-secret.yaml b/helm-charts/xmlserver/templates/pull-secret.yaml new file mode 100644 index 00000000..20e4ccf6 --- /dev/null +++ b/helm-charts/xmlserver/templates/pull-secret.yaml @@ -0,0 +1,27 @@ +{{- if and .Values.global.sch.enabled .Values.global.imagePullSecret.username }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Release.Name }}-pull-secret + namespace: {{ .Release.Namespace }} +type: kubernetes.io/dockerconfigjson +data: + .dockerconfigjson: {{ template "xmlserver.imagePullSecret" .Values.global.imagePullSecret }} +{{- end }} diff --git a/helm-charts/xmlserver/templates/service.yaml b/helm-charts/xmlserver/templates/service.yaml index c3e400ff..1a597453 100644 --- a/helm-charts/xmlserver/templates/service.yaml +++ b/helm-charts/xmlserver/templates/service.yaml @@ -1,4 +1,4 @@ -{{- with .Values.global.xmlserver }} +{{- include "sch.config.init" (list . "xmlserver.sch.chart.config.values") -}} --- ############################################################################### # Copyright 2019,2020 IBM Corporation @@ -19,16 +19,15 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "xmlserver.fullname" $ }} - namespace: {{ $.Release.Namespace }} + name: {{ include "sch.names.fullName" (list .) }} + namespace: {{ .Release.Namespace }} labels: -{{ include "xmlserver.labels" $ | indent 4 }} +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} spec: - type: {{ .serviceType | default "ClusterIP" }} + type: "ClusterIP" ports: - - port: {{ .port | default 1800 }} - targetPort: {{ .port | default 1800 }} + - port: {{ .Values.serverPort | default 1800 }} + targetPort: {{ .Values.serverPort | default 1800 }} selector: - app.kubernetes.io/name: {{ include "xmlserver.fullname" $ }} - app.kubernetes.io/instance: {{ $.Release.Name }} -{{ end }} + app.kubernetes.io/name: {{ include "sch.names.appName" (list .) | quote }} + app.kubernetes.io/instance: {{ .Release.Name | quote }} diff --git a/helm-charts/xmlserver/templates/serviceaccount.yaml b/helm-charts/xmlserver/templates/serviceaccount.yaml new file mode 100644 index 00000000..06f131aa --- /dev/null +++ b/helm-charts/xmlserver/templates/serviceaccount.yaml @@ -0,0 +1,33 @@ +{{- include "sch.config.init" (list . "xmlserver.sch.chart.config.values") -}} +{{- if not .Values.serviceAccountName }} +--- +############################################################################### +# Copyright 2019,2020 IBM Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################### + +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "sch.names.fullName" (list .) }} + namespace: {{ .Release.Namespace }} + labels: +{{ include "sch.metadata.labels.standard" (list . "") | indent 4 }} +imagePullSecrets: + - name: sa-{{ .Release.Namespace }} + {{- if .Values.global.imagePullSecret.username }} + - name: {{ .Release.Name | lower }}-pull-secret + {{- end }} + +{{- end }} diff --git a/helm-charts/xmlserver/values.yaml b/helm-charts/xmlserver/values.yaml index 79fb19c6..2484b9b6 100644 --- a/helm-charts/xmlserver/values.yaml +++ b/helm-charts/xmlserver/values.yaml @@ -15,37 +15,49 @@ ############################################################################### global: - # Set to 'accept' to accept the license terms of WebSphere Liberty and WebSphere MQ - license: '' images: - registry: &imageRegistry us.icr.io + registry: &imageRegistry minikube.local:5000 imageLibrary: '' imagePrefix: '' imageTag: latest pullPolicy: Always - database: - type: db2 - port: 50000 - dbName: DATABASE - username: db2admin - initTime: 2 - xmlserver: - port: 1800 - replicaCount: 1 - runAs: 1001 imagePullSecret: - registry: *imageRegistry + username: '' + sch: + enabled: true apps: common: persistence: ## Persistence volume to store data (such as non-log files) enabled: false ## If enabled, creates a PVC to connect to IBM Cloud Object Storage - ## Properties secretKey, accessKey, instanceId, and bucketName are required + ## Properties storageClassName, secretKey, accessKey, instanceId, and bucketName are required ## Values available in the WebUI where the bucket was pre-created + # storageClassName: "" # secretKey: "" # accessKey: "" # instanceId: "" # bucketName: "" - # mountPoint: "/tmp/persistence" - # subDir: "/folder/name" + mountPoint: '' + subDir: '' + +# Require Intel-based workers +arch: "amd64" + +# XML server port number +serverPort: 1800 + +# Number of XML servers replicas to run +replicaCount: 1 + +# Resource limits for XML server +resources: + limits: + cpu: "0.5" + memory: "1Gi" + requests: + cpu: "0.25" + memory: "0.5Gi" + +# Name of an existing ServiceAccount for running the XML server +serviceAccountName: "" diff --git a/linkcheckerrc b/linkcheckerrc new file mode 100644 index 00000000..7af68002 --- /dev/null +++ b/linkcheckerrc @@ -0,0 +1,6 @@ +[filtering] +ignore=^http://localhost + ^https://www.ibm.com/support + +internlinks=^http://TRAVIS_HOST:8888/ +checkextern=1 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..bdb95889 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,20373 @@ +{ + "name": "spm-kubernetes", + "version": "20.7.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@ardatan/aggregate-error": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.1.tgz", + "integrity": "sha512-UQ9BequOTIavs0pTHLMwQwKQF8tTV1oezY/H2O9chA+JNPFZSua55xpU5dPSjAU9/jLJ1VwU+HJuTVN8u7S6Fg==" + }, + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.4.tgz", + "integrity": "sha512-t+rjExOrSVvjQQXNp5zAIYDp00KjdvGl/TpDX5REPr0S9IAIPQMTilcfG6q8c0QFmj9lSTVySV2VTsyggvtNIw==", + "requires": { + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, + "@babel/core": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.4.tgz", + "integrity": "sha512-3A0tS0HWpy4XujGc7QtOIHTeNwUgWaZc/WuS5YQrfhU67jnVmsD6OGPc1AKHH0LJHQICGncy3+YUjIhVlfDdcA==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@babel/generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz", + "integrity": "sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==", + "requires": { + "@babel/types": "^7.10.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", + "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx-experimental": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.4.tgz", + "integrity": "sha512-LyacH/kgQPgLAuaWrvvq1+E7f5bLyT8jXCh7nM67sRsy2cpIGfgWJ+FCnAKQXfY+F0tXUaN6FqLkp4JiCzdK8Q==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", + "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", + "requires": { + "@babel/compat-data": "^7.10.4", + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.4.tgz", + "integrity": "sha512-9raUiOsXPxzzLjCXeosApJItoMnX3uyT4QdM2UldffuGApNrF8e938MwNpDCK9CPoyxrEoCgT+hObJc3mZa6lQ==", + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" + } + }, + "@babel/helper-define-map": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.4.tgz", + "integrity": "sha512-nIij0oKErfCnLUCWaCaHW0Bmtl2RO9cN7+u2QT8yqTywgALKlyUVOvHDElh+b5DwVC6YB1FOYFOTWcN/+41EDA==", + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.4", + "lodash": "^4.17.13" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", + "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", + "requires": { + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.4.tgz", + "integrity": "sha512-m5j85pK/KZhuSdM/8cHUABQTAslV47OjfIB9Cc7P+PvlAoBzdb79BGNfw8RhT5Mq3p+xGd0ZfAKixbrUZx0C7A==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.4.tgz", + "integrity": "sha512-Er2FQX0oa3nV7eM1o0tNCTx7izmQtwAQsIiaLRWtavAAEcskb0XJ5OjJbVrYXWOTr8om921Scabn4/tzlx7j1Q==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4", + "lodash": "^4.17.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "@babel/helper-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.4.tgz", + "integrity": "sha512-inWpnHGgtg5NOF0eyHlC0/74/VkdRITY9dtTpB2PrxKKn+AkVMRiZz/Adrx+Ssg+MLDesi2zohBW6MVq6b4pOQ==", + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", + "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "requires": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", + "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" + }, + "@babel/helper-wrap-function": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", + "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", + "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", + "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==" + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.4.tgz", + "integrity": "sha512-MJbxGSmejEFVOANAezdO39SObkURO5o/8b6fSH6D1pi9RZQt+ldppKPXfqgUWpSQ9asM6xaSaSJIaeWMDRP0Zg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", + "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", + "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", + "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", + "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", + "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz", + "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.4" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", + "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz", + "integrity": "sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", + "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", + "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", + "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", + "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", + "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz", + "integrity": "sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", + "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", + "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", + "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.4.tgz", + "integrity": "sha512-J3b5CluMg3hPUii2onJDRiaVbPtKFPLEaV5dOPY5OeAbDi1iU/UbbFFTgwb7WnanaDy7bjU35kc26W3eM5Qa0A==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", + "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", + "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", + "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", + "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", + "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", + "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", + "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", + "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", + "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", + "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.4.tgz", + "integrity": "sha512-3Fw+H3WLUrTlzi3zMiZWp3AR4xadAEMv6XRCYnd5jAlLM61Rn+CRJaZMaNvIpcJpQ3vs1kyifYvEVPFfoSkKOA==", + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", + "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.4.tgz", + "integrity": "sha512-Tb28LlfxrTiOTGtZFsvkjpyjCl9IoaRI52AEU/VIwOwvDQWtbNJsAqTXzh+5R7i74e/OZHH2c2w2fsOqAfnQYQ==", + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", + "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", + "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", + "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.4.tgz", + "integrity": "sha512-RurVtZ/D5nYfEg0iVERXYKEgDFeesHrHfx8RT05Sq57ucj2eOYAP6eu5fynL4Adju4I/mP/I6SO0DqNWAXjfLQ==", + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", + "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz", + "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz", + "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==", + "requires": { + "@babel/helper-builder-react-jsx": "^7.10.4", + "@babel/helper-builder-react-jsx-experimental": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz", + "integrity": "sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ==", + "requires": { + "@babel/helper-builder-react-jsx-experimental": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz", + "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.4.tgz", + "integrity": "sha512-FTK3eQFrPv2aveerUSazFmGygqIdTtvskG50SnGnbEUnRPcGx2ylBhdFIzoVS1ty44hEgcPoCAyw5r3VDEq+Ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz", + "integrity": "sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", + "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", + "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.10.4.tgz", + "integrity": "sha512-8ULlGv8p+Vuxu+kz2Y1dk6MYS2b/Dki+NO6/0ZlfSj5tMalfDL7jI/o/2a+rrWLqSXvnadEqc2WguB4gdQIxZw==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", + "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz", + "integrity": "sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", + "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.4.tgz", + "integrity": "sha512-4NErciJkAYe+xI5cqfS8pV/0ntlY5N5Ske/4ImxAVX7mk9Rxt2bwDTGv1Msc2BRJvWQcmYEC+yoMLdX22aE4VQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", + "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.10.4.tgz", + "integrity": "sha512-3WpXIKDJl/MHoAN0fNkSr7iHdUMHZoppXjf2HJ9/ed5Xht5wNIsXllJXdityKOxeA3Z8heYRb1D3p2H5rfCdPw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-typescript": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", + "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", + "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz", + "integrity": "sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==", + "requires": { + "@babel/compat-data": "^7.10.4", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.10.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.10.4", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.10.4", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.10.4", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz", + "integrity": "sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-react-display-name": "^7.10.4", + "@babel/plugin-transform-react-jsx": "^7.10.4", + "@babel/plugin-transform-react-jsx-development": "^7.10.4", + "@babel/plugin-transform-react-jsx-self": "^7.10.4", + "@babel/plugin-transform-react-jsx-source": "^7.10.4", + "@babel/plugin-transform-react-pure-annotations": "^7.10.4" + } + }, + "@babel/preset-typescript": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz", + "integrity": "sha512-SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.10.4" + } + }, + "@babel/runtime": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", + "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.4.tgz", + "integrity": "sha512-BFlgP2SoLO9HJX9WBwN67gHWMBhDX/eDz64Jajd6mR/UAUzqrNMm99d4qHnVaKscAElZoFiPv+JpR/Siud5lXw==", + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/standalone": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.10.4.tgz", + "integrity": "sha512-Cgnx+Z7dYqQrz42GPGzDFTph8n15NogWuR9OpocOVlRZQoRw4q+OmudevYAd6CjOVjGu6PgvJwojxCE34cfXPg==" + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz", + "integrity": "sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@babel/types": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", + "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@carbon/colors": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@carbon/colors/-/colors-10.11.0.tgz", + "integrity": "sha512-x9kT5sN3f8sz/gELpVmDbTeNJ20LP70MI+kLsd19RQICrZipoLJG0Ajn1J9t5NCdz3XGBYb3oiUoAtMiwt/4jA==" + }, + "@carbon/elements": { + "version": "10.14.0", + "resolved": "https://registry.npmjs.org/@carbon/elements/-/elements-10.14.0.tgz", + "integrity": "sha512-VETkcXMjiltHWv17B4tCS8gkdsQ5WnsifGEZLG0Ly+8p3dqgqgycaRaX9qoWaS+QTXS0DdfzQf2c1m2tYeE7mQ==", + "requires": { + "@carbon/colors": "^10.11.0", + "@carbon/grid": "^10.12.0", + "@carbon/icons": "^10.13.0", + "@carbon/import-once": "^10.3.0", + "@carbon/layout": "^10.11.0", + "@carbon/motion": "^10.9.0", + "@carbon/themes": "^10.14.0", + "@carbon/type": "^10.12.0" + } + }, + "@carbon/grid": { + "version": "10.12.0", + "resolved": "https://registry.npmjs.org/@carbon/grid/-/grid-10.12.0.tgz", + "integrity": "sha512-HxrQN95mB4oCDhLaJy2tiu0N8/+70Ym4NSaKZH1ASH/DGs0N81/w4LrVxELkdN+digYQFbXtorUQU4R4KA1CmQ==", + "requires": { + "@carbon/import-once": "^10.3.0", + "@carbon/layout": "^10.11.0" + } + }, + "@carbon/icon-helpers": { + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/@carbon/icon-helpers/-/icon-helpers-10.9.0.tgz", + "integrity": "sha512-JtmCXV7iIc+N5RqQQy+MGT8T+5KcF7+BUKADvHnJKZ8o+ncF5gI4hmrP450dQD76mikI4fqQ0dQflaosesdSPw==" + }, + "@carbon/icons": { + "version": "10.13.0", + "resolved": "https://registry.npmjs.org/@carbon/icons/-/icons-10.13.0.tgz", + "integrity": "sha512-DAz4k0zrkLN5VYaenQTvSehq0RpU0TTPDTaKCi/nWD5yXVtBHFqiuWz1cI/GYefM2zNZjkJH7mcdUsbbi50P+Q==" + }, + "@carbon/icons-react": { + "version": "10.13.0", + "resolved": "https://registry.npmjs.org/@carbon/icons-react/-/icons-react-10.13.0.tgz", + "integrity": "sha512-UAFVgIPVnyFtXz1FGggUDbCUuNfFS9uopSXAKB5veoUNLMEyty1U5nZeFkyhecb+LCzE8UOUK8FR+hCTd2/4Dg==", + "requires": { + "@carbon/icon-helpers": "^10.9.0" + } + }, + "@carbon/import-once": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@carbon/import-once/-/import-once-10.3.0.tgz", + "integrity": "sha512-PFk3FhMe3psihYtCg3JsyPHismqglnbUqIpz1DCG5Gn/kt0HdVKhGvHdEq7E305rGoBUCKzMn/4xoY9v9mcmlg==" + }, + "@carbon/layout": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@carbon/layout/-/layout-10.11.0.tgz", + "integrity": "sha512-lt3qV4vROar4cwjxPXdYKcnIhCNxiIJVOnaMlGr1YADCXjzQ5f9uQWysDvfwOBPvN3cqeCe18QpIKDe9PaEqiQ==" + }, + "@carbon/motion": { + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/@carbon/motion/-/motion-10.9.0.tgz", + "integrity": "sha512-U3DsATkfzcqKOiXSa1DqWOo9HNeOkO4opGZkl0mQ40zhKyxwY0SJz1th1W/QdjXlAPlMeTRi2p45e86yEgrqyw==" + }, + "@carbon/themes": { + "version": "10.14.0", + "resolved": "https://registry.npmjs.org/@carbon/themes/-/themes-10.14.0.tgz", + "integrity": "sha512-bDcupoeR71itBEWSblEINpG4I0w7yWB+6c6JbgnorK1cqbWHCWJwj8fND2h9QlnRIV2vt4pV5/j76Uc0ru0yaw==", + "requires": { + "@carbon/colors": "^10.11.0", + "@carbon/layout": "^10.11.0", + "@carbon/type": "^10.12.0", + "color": "^3.1.2" + } + }, + "@carbon/type": { + "version": "10.12.0", + "resolved": "https://registry.npmjs.org/@carbon/type/-/type-10.12.0.tgz", + "integrity": "sha512-dzkl0t83VMKkbQPLJEFGfysOn8fBl1y1eENZ2yP28IVcgmNS0WR4cIWIgVnINx2maxvCYQgQkWILk0AYM2PSjg==", + "requires": { + "@carbon/import-once": "^10.3.0", + "@carbon/layout": "^10.11.0" + } + }, + "@emotion/babel-plugin-jsx-pragmatic": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin-jsx-pragmatic/-/babel-plugin-jsx-pragmatic-0.1.5.tgz", + "integrity": "sha512-y+3AJ0SItMDaAgGPVkQBC/S/BaqaPACkQ6MyCI2CUlrjTxKttTVfD3TMtcs7vLEcLxqzZ1xiG0vzwCXjhopawQ==", + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@emotion/babel-preset-css-prop": { + "version": "10.0.27", + "resolved": "https://registry.npmjs.org/@emotion/babel-preset-css-prop/-/babel-preset-css-prop-10.0.27.tgz", + "integrity": "sha512-rducrjTpLGDholp0l2l4pXqpzAqYYGMg/x4IteO0db2smf6zegn6RRZdDnbaoMSs63tfPWgo2WukT1/F1gX/AA==", + "requires": { + "@babel/plugin-transform-react-jsx": "^7.3.0", + "@babel/runtime": "^7.5.5", + "@emotion/babel-plugin-jsx-pragmatic": "^0.1.5", + "babel-plugin-emotion": "^10.0.27" + } + }, + "@emotion/cache": { + "version": "10.0.29", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz", + "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==", + "requires": { + "@emotion/sheet": "0.9.4", + "@emotion/stylis": "0.8.5", + "@emotion/utils": "0.11.3", + "@emotion/weak-memoize": "0.2.5" + } + }, + "@emotion/core": { + "version": "10.0.28", + "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.28.tgz", + "integrity": "sha512-pH8UueKYO5jgg0Iq+AmCLxBsvuGtvlmiDCOuv8fGNYn3cowFpLN98L8zO56U0H1PjDIyAlXymgL3Wu7u7v6hbA==", + "requires": { + "@babel/runtime": "^7.5.5", + "@emotion/cache": "^10.0.27", + "@emotion/css": "^10.0.27", + "@emotion/serialize": "^0.11.15", + "@emotion/sheet": "0.9.4", + "@emotion/utils": "0.11.3" + } + }, + "@emotion/css": { + "version": "10.0.27", + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz", + "integrity": "sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==", + "requires": { + "@emotion/serialize": "^0.11.15", + "@emotion/utils": "0.11.3", + "babel-plugin-emotion": "^10.0.27" + } + }, + "@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" + }, + "@emotion/serialize": { + "version": "0.11.16", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", + "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", + "requires": { + "@emotion/hash": "0.8.0", + "@emotion/memoize": "0.7.4", + "@emotion/unitless": "0.7.5", + "@emotion/utils": "0.11.3", + "csstype": "^2.5.7" + } + }, + "@emotion/sheet": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", + "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==" + }, + "@emotion/styled": { + "version": "10.0.27", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.0.27.tgz", + "integrity": "sha512-iK/8Sh7+NLJzyp9a5+vIQIXTYxfT4yB/OJbjzQanB2RZpvmzBQOHZWhpAMZWYEKRNNbsD6WfBw5sVWkb6WzS/Q==", + "requires": { + "@emotion/styled-base": "^10.0.27", + "babel-plugin-emotion": "^10.0.27" + } + }, + "@emotion/styled-base": { + "version": "10.0.31", + "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.31.tgz", + "integrity": "sha512-wTOE1NcXmqMWlyrtwdkqg87Mu6Rj1MaukEoEmEkHirO5IoHDJ8LgCQL4MjJODgxWxXibGR3opGp1p7YvkNEdXQ==", + "requires": { + "@babel/runtime": "^7.5.5", + "@emotion/is-prop-valid": "0.8.8", + "@emotion/serialize": "^0.11.15", + "@emotion/utils": "0.11.3" + } + }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "@emotion/utils": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", + "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" + }, + "@emotion/weak-memoize": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" + }, + "@graphql-tools/schema": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-6.0.12.tgz", + "integrity": "sha512-XUmKJ+ipENaxuXIX4GapsLAUl1dFQBUg+S4ZbgtKVlwrPhZJ9bkjIqnUHk3wg4S4VXqzLX97ol1e4g9N6XLkYg==", + "requires": { + "@graphql-tools/utils": "6.0.12", + "tslib": "~2.0.0" + }, + "dependencies": { + "tslib": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz", + "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==" + } + } + }, + "@graphql-tools/utils": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.0.12.tgz", + "integrity": "sha512-MuFSkxXCe2QoD5QJPJ/1WIm0YnBzzXpkq9d/XznVAWptHFRwtwIbZ1xcREjYquFvoZ7ddsjZfyvUN/5ulmHhhg==", + "requires": { + "@ardatan/aggregate-error": "0.0.1", + "camel-case": "4.1.1" + } + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jimp/bmp": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.10.3.tgz", + "integrity": "sha512-keMOc5woiDmONXsB/6aXLR4Z5Q+v8lFq3EY2rcj2FmstbDMhRuGbmcBxlEgOqfRjwvtf/wOtJ3Of37oAWtVfLg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "bmp-js": "^0.1.0", + "core-js": "^3.4.1" + } + }, + "@jimp/core": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.10.3.tgz", + "integrity": "sha512-Gd5IpL3U2bFIO57Fh/OA3HCpWm4uW/pU01E75rI03BXfTdz3T+J7TwvyG1XaqsQ7/DSlS99GXtLQPlfFIe28UA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "core-js": "^3.4.1", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "^0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + }, + "dependencies": { + "file-type": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", + "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==" + } + } + }, + "@jimp/custom": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.10.3.tgz", + "integrity": "sha512-nZmSI+jwTi5IRyNLbKSXQovoeqsw+D0Jn0SxW08wYQvdkiWA8bTlDQFgQ7HVwCAKBm8oKkDB/ZEo9qvHJ+1gAQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/core": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/gif": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.10.3.tgz", + "integrity": "sha512-vjlRodSfz1CrUvvrnUuD/DsLK1GHB/yDZXHthVdZu23zYJIW7/WrIiD1IgQ5wOMV7NocfrvPn2iqUfBP81/WWA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "omggif": "^1.0.9" + } + }, + "@jimp/jpeg": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.10.3.tgz", + "integrity": "sha512-AAANwgUZOt6f6P7LZxY9lyJ9xclqutYJlsxt3JbriXUGJgrrFAIkcKcqv1nObgmQASSAQKYaMV9KdHjMlWFKlQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "jpeg-js": "^0.3.4" + } + }, + "@jimp/plugin-blit": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.10.3.tgz", + "integrity": "sha512-5zlKlCfx4JWw9qUVC7GI4DzXyxDWyFvgZLaoGFoT00mlXlN75SarlDwc9iZ/2e2kp4bJWxz3cGgG4G/WXrbg3Q==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-blur": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.10.3.tgz", + "integrity": "sha512-cTOK3rjh1Yjh23jSfA6EHCHjsPJDEGLC8K2y9gM7dnTUK1y9NNmkFS23uHpyjgsWFIoH9oRh2SpEs3INjCpZhQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-circle": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.10.3.tgz", + "integrity": "sha512-51GAPIVelqAcfuUpaM5JWJ0iWl4vEjNXB7p4P7SX5udugK5bxXUjO6KA2qgWmdpHuCKtoNgkzWU9fNSuYp7tCA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-color": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.10.3.tgz", + "integrity": "sha512-RgeHUElmlTH7vpI4WyQrz6u59spiKfVQbsG/XUzfWGamFSixa24ZDwX/yV/Ts+eNaz7pZeIuv533qmKPvw2ujg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "tinycolor2": "^1.4.1" + } + }, + "@jimp/plugin-contain": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.10.3.tgz", + "integrity": "sha512-bYJKW9dqzcB0Ihc6u7jSyKa3juStzbLs2LFr6fu8TzA2WkMS/R8h+ddkiO36+F9ILTWHP0CIA3HFe5OdOGcigw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-cover": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.10.3.tgz", + "integrity": "sha512-pOxu0cM0BRPzdV468n4dMocJXoMbTnARDY/EpC3ZW15SpMuc/dr1KhWQHgoQX5kVW1Wt8zgqREAJJCQ5KuPKDA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-crop": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.10.3.tgz", + "integrity": "sha512-nB7HgOjjl9PgdHr076xZ3Sr6qHYzeBYBs9qvs3tfEEUeYMNnvzgCCGtUl6eMakazZFCMk3mhKmcB9zQuHFOvkg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-displace": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.10.3.tgz", + "integrity": "sha512-8t3fVKCH5IVqI4lewe4lFFjpxxr69SQCz5/tlpDLQZsrNScNJivHdQ09zljTrVTCSgeCqQJIKgH2Q7Sk/pAZ0w==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-dither": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.10.3.tgz", + "integrity": "sha512-JCX/oNSnEg1kGQ8ffZ66bEgQOLCY3Rn+lrd6v1jjLy/mn9YVZTMsxLtGCXpiCDC2wG/KTmi4862ysmP9do9dAQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-fisheye": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.10.3.tgz", + "integrity": "sha512-RRZb1wqe+xdocGcFtj2xHU7sF7xmEZmIa6BmrfSchjyA2b32TGPWKnP3qyj7p6LWEsXn+19hRYbjfyzyebPElQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-flip": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.10.3.tgz", + "integrity": "sha512-0epbi8XEzp0wmSjoW9IB0iMu0yNF17aZOxLdURCN3Zr+8nWPs5VNIMqSVa1Y62GSyiMDpVpKF/ITiXre+EqrPg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-gaussian": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.10.3.tgz", + "integrity": "sha512-25eHlFbHUDnMMGpgRBBeQ2AMI4wsqCg46sue0KklI+c2BaZ+dGXmJA5uT8RTOrt64/K9Wz5E+2n7eBnny4dfpQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-invert": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.10.3.tgz", + "integrity": "sha512-effYSApWY/FbtlzqsKXlTLkgloKUiHBKjkQnqh5RL4oQxh/33j6aX+HFdDyQKtsXb8CMd4xd7wyiD2YYabTa0g==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-mask": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.10.3.tgz", + "integrity": "sha512-twrg8q8TIhM9Z6Jcu9/5f+OCAPaECb0eKrrbbIajJqJ3bCUlj5zbfgIhiQIzjPJ6KjpnFPSqHQfHkU1Vvk/nVw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-normalize": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.10.3.tgz", + "integrity": "sha512-xkb5eZI/mMlbwKkDN79+1/t/+DBo8bBXZUMsT4gkFgMRKNRZ6NQPxlv1d3QpRzlocsl6UMxrHnhgnXdLAcgrXw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-print": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.10.3.tgz", + "integrity": "sha512-wjRiI6yjXsAgMe6kVjizP+RgleUCLkH256dskjoNvJzmzbEfO7xQw9g6M02VET+emnbY0CO83IkrGm2q43VRyg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "load-bmfont": "^1.4.0" + } + }, + "@jimp/plugin-resize": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.10.3.tgz", + "integrity": "sha512-rf8YmEB1d7Sg+g4LpqF0Mp+dfXfb6JFJkwlAIWPUOR7lGsPWALavEwTW91c0etEdnp0+JB9AFpy6zqq7Lwkq6w==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-rotate": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.10.3.tgz", + "integrity": "sha512-YXLlRjm18fkW9MOHUaVAxWjvgZM851ofOipytz5FyKp4KZWDLk+dZK1JNmVmK7MyVmAzZ5jsgSLhIgj+GgN0Eg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-scale": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.10.3.tgz", + "integrity": "sha512-5DXD7x7WVcX1gUgnlFXQa8F+Q3ThRYwJm+aesgrYvDOY+xzRoRSdQvhmdd4JEEue3lyX44DvBSgCIHPtGcEPaw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-shadow": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.10.3.tgz", + "integrity": "sha512-/nkFXpt2zVcdP4ETdkAUL0fSzyrC5ZFxdcphbYBodqD7fXNqChS/Un1eD4xCXWEpW8cnG9dixZgQgStjywH0Mg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugin-threshold": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.10.3.tgz", + "integrity": "sha512-Dzh0Yq2wXP2SOnxcbbiyA4LJ2luwrdf1MghNIt9H+NX7B+IWw/N8qA2GuSm9n4BPGSLluuhdAWJqHcTiREriVA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1" + } + }, + "@jimp/plugins": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.10.3.tgz", + "integrity": "sha512-jTT3/7hOScf0EIKiAXmxwayHhryhc1wWuIe3FrchjDjr9wgIGNN2a7XwCgPl3fML17DXK1x8EzDneCdh261bkw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/plugin-blit": "^0.10.3", + "@jimp/plugin-blur": "^0.10.3", + "@jimp/plugin-circle": "^0.10.3", + "@jimp/plugin-color": "^0.10.3", + "@jimp/plugin-contain": "^0.10.3", + "@jimp/plugin-cover": "^0.10.3", + "@jimp/plugin-crop": "^0.10.3", + "@jimp/plugin-displace": "^0.10.3", + "@jimp/plugin-dither": "^0.10.3", + "@jimp/plugin-fisheye": "^0.10.3", + "@jimp/plugin-flip": "^0.10.3", + "@jimp/plugin-gaussian": "^0.10.3", + "@jimp/plugin-invert": "^0.10.3", + "@jimp/plugin-mask": "^0.10.3", + "@jimp/plugin-normalize": "^0.10.3", + "@jimp/plugin-print": "^0.10.3", + "@jimp/plugin-resize": "^0.10.3", + "@jimp/plugin-rotate": "^0.10.3", + "@jimp/plugin-scale": "^0.10.3", + "@jimp/plugin-shadow": "^0.10.3", + "@jimp/plugin-threshold": "^0.10.3", + "core-js": "^3.4.1", + "timm": "^1.6.1" + } + }, + "@jimp/png": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.10.3.tgz", + "integrity": "sha512-YKqk/dkl+nGZxSYIDQrqhmaP8tC3IK8H7dFPnnzFVvbhDnyYunqBZZO3SaZUKTichClRw8k/CjBhbc+hifSGWg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.10.3", + "core-js": "^3.4.1", + "pngjs": "^3.3.3" + } + }, + "@jimp/tiff": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.10.3.tgz", + "integrity": "sha512-7EsJzZ5Y/EtinkBGuwX3Bi4S+zgbKouxjt9c82VJTRJOQgLWsE/RHqcyRCOQBhHAZ9QexYmDz34medfLKdoX0g==", + "requires": { + "@babel/runtime": "^7.7.2", + "core-js": "^3.4.1", + "utif": "^2.0.1" + } + }, + "@jimp/types": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.10.3.tgz", + "integrity": "sha512-XGmBakiHZqseSWr/puGN+CHzx0IKBSpsKlmEmsNV96HKDiP6eu8NSnwdGCEq2mmIHe0JNcg1hqg59hpwtQ7Tiw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/bmp": "^0.10.3", + "@jimp/gif": "^0.10.3", + "@jimp/jpeg": "^0.10.3", + "@jimp/png": "^0.10.3", + "@jimp/tiff": "^0.10.3", + "core-js": "^3.4.1", + "timm": "^1.6.1" + } + }, + "@jimp/utils": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.10.3.tgz", + "integrity": "sha512-VcSlQhkil4ReYmg1KkN+WqHyYfZ2XfZxDsKAHSfST1GEz/RQHxKZbX+KhFKtKflnL0F4e6DlNQj3vznMNXCR2w==", + "requires": { + "@babel/runtime": "^7.7.2", + "core-js": "^3.4.1", + "regenerator-runtime": "^0.13.3" + } + }, + "@mdx-js/mdx": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.6.tgz", + "integrity": "sha512-Q1j/RtjNbRZRC/ciaOqQLplsJ9lb0jJhDSvkusmzCsCX+NZH7YTUvccWf7l6zKW1CAiofJfqZdZtXkeJUDZiMw==", + "requires": { + "@babel/core": "7.9.6", + "@babel/plugin-syntax-jsx": "7.8.3", + "@babel/plugin-syntax-object-rest-spread": "7.8.3", + "@mdx-js/util": "^1.6.6", + "babel-plugin-apply-mdx-type-prop": "^1.6.6", + "babel-plugin-extract-import-names": "^1.6.6", + "camelcase-css": "2.0.1", + "detab": "2.0.3", + "hast-util-raw": "5.0.2", + "lodash.uniq": "4.5.0", + "mdast-util-to-hast": "9.1.0", + "remark-footnotes": "1.0.0", + "remark-mdx": "^1.6.6", + "remark-parse": "8.0.2", + "remark-squeeze-paragraphs": "4.0.0", + "style-to-object": "0.3.0", + "unified": "9.0.0", + "unist-builder": "2.0.3", + "unist-util-visit": "2.0.2" + }, + "dependencies": { + "@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", + "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" + }, + "remark-parse": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.2.tgz", + "integrity": "sha512-eMI6kMRjsAGpMXXBAywJwiwAse+KNpmt+BK55Oofy4KvBZEqUDj6mWbGLJZrujoPIPPxDXzn3T9baRlpsm2jnQ==", + "requires": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + } + }, + "unified": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.0.0.tgz", + "integrity": "sha512-ssFo33gljU3PdlWLjNp15Inqb77d6JnJSfyplGJPT/a+fNRNyCBeveBAYJdO5khKdF6WVHa/yYCC7Xl6BDwZUQ==", + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + } + } + } + }, + "@mdx-js/react": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.6.tgz", + "integrity": "sha512-zOOdNreHUNSFQ0dg3wYYg9sOGg2csf7Sk8JGBigeBq+4Xk4LO0QdycGAmgKNfeme+SyBV5LBIPjt1NNsScyWEQ==" + }, + "@mdx-js/runtime": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@mdx-js/runtime/-/runtime-1.6.6.tgz", + "integrity": "sha512-JNt/dqIFMQ87Gp6oIZUn4oJZQOOk0rqc7JkIv/xYyTtUMaNCXWZ/ylRLoFbQCyfONxayOz4w4e8Bd4ruxScOGQ==", + "requires": { + "@mdx-js/mdx": "^1.6.6", + "@mdx-js/react": "^1.6.6", + "buble-jsx-only": "^0.19.8" + } + }, + "@mdx-js/util": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.6.tgz", + "integrity": "sha512-PKTHVgMHnK5p+kcMWWNnZuoR7O19VmHiOujmVcyN50hya7qIdDb5vvsYC+dwLxApEXiABhLozq0dlIwFeS3yjg==" + }, + "@mikaelkristiansson/domready": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@mikaelkristiansson/domready/-/domready-1.0.10.tgz", + "integrity": "sha512-6cDuZeKSCSJ1KvfEQ25Y8OXUjqDJZ+HgUs6dhASWbAX8fxVraTfPsSeRe2bN+4QJDsgUaXaMWBYfRomCr04GGg==" + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "@pieh/friendly-errors-webpack-plugin": { + "version": "1.7.0-chalk-2", + "resolved": "https://registry.npmjs.org/@pieh/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0-chalk-2.tgz", + "integrity": "sha512-65+vYGuDkHBCWWjqzzR/Ck318+d6yTI00EqII9qe3aPD1J3Olhvw0X38uM5moQb1PK/ksDXwSoPGt/5QhCiotw==", + "requires": { + "chalk": "^2.4.2", + "error-stack-parser": "^2.0.0", + "string-width": "^2.0.0", + "strip-ansi": "^3" + } + }, + "@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.3.3.tgz", + "integrity": "sha512-uc6FmPEegAZawSHjUMFQwU7EjaDn7zy1iD/KD/wBROL9F4378OES8MKMYHoRAKT61Fk7LxVKZSDR5VespMQiqw==", + "requires": { + "ansi-html": "^0.0.7", + "error-stack-parser": "^2.0.6", + "html-entities": "^1.2.1", + "lodash.debounce": "^4.0.8", + "native-url": "^0.2.6", + "schema-utils": "^2.6.5" + } + }, + "@reach/router": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz", + "integrity": "sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA==", + "requires": { + "create-react-context": "0.3.0", + "invariant": "^2.2.3", + "prop-types": "^15.6.1", + "react-lifecycles-compat": "^3.0.4" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, + "@types/common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@types/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-htRqZr5qn8EzMelhX/Xmx142z218lLyGaeZ3YR8jlze4TATRU9huKKvuBmAJEW4LCC4pnY1N6JAm6p85fMHjhg==" + }, + "@types/configstore": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/configstore/-/configstore-2.1.1.tgz", + "integrity": "sha1-zR6FU2M60xhcPy8jns/10mQ+krY=" + }, + "@types/debug": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-0.0.30.tgz", + "integrity": "sha512-orGL5LXERPYsLov6CWs3Fh6203+dXzJkR7OnddIr2514Hsecwc8xRpzCapshBbKFImCsvS/mk6+FWiN5LyZJAQ==" + }, + "@types/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==" + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" + }, + "@types/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@types/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-TiNg8R1kjDde5Pub9F9vCwZA/BNW9HeXP5b9j7Qucqncy/McfPZ6xze/EyBdXS5FhMIGN6Fx3vg75l5KHy3V1Q==" + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/history": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.6.tgz", + "integrity": "sha512-GRTZLeLJ8ia00ZH8mxMO8t0aC9M1N9bN461Z2eaRurJo6Fpa+utgCwLzI4jQHcrdzuzp5WPN9jRwpsCQ1VhJ5w==" + }, + "@types/http-proxy": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.4.tgz", + "integrity": "sha512-IrSHl2u6AWXduUaDLqYpt45tLVCtYv7o4Z0s1KghBCDgIIS9oW5K1H8mZG/A2CfeLdEa7rTd1ACOiHBc1EMT2Q==", + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "@types/json-schema": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", + "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==" + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + }, + "@types/lodash": { + "version": "4.14.157", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.157.tgz", + "integrity": "sha512-Ft5BNFmv2pHDgxV5JDsndOWTRJ+56zte0ZpYLowp03tW+K+t8u8YMOzAnpuqPgzX6WO1XpDIUm7u04M8vdDiVQ==" + }, + "@types/mdast": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz", + "integrity": "sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==", + "requires": { + "@types/unist": "*" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + }, + "@types/mkdirp": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", + "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "14.0.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.20.tgz", + "integrity": "sha512-MRn/NP3dee8yL5QhbSA6riuwkS+UOcsPUMOIOG3KMUQpuor/2TopdRBu8QaaB4fGU+gz/bzyDWt0FtUbeJ8H1A==" + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + }, + "@types/reach__router": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.5.tgz", + "integrity": "sha512-h0NbqXN/tJuBY/xggZSej1SKQEstbHO7J/omt1tYoFGmj3YXOodZKbbqD4mNDh7zvEGYd7YFrac1LTtAr3xsYQ==", + "requires": { + "@types/history": "*", + "@types/react": "*" + } + }, + "@types/react": { + "version": "16.9.41", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.41.tgz", + "integrity": "sha512-6cFei7F7L4wwuM+IND/Q2cV1koQUvJ8iSV+Gwn0c3kvABZ691g7sp3hfEQHOUBJtccl1gPi+EyNjMIl9nGA0ug==", + "requires": { + "@types/prop-types": "*", + "csstype": "^2.2.0" + } + }, + "@types/rimraf": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-2.0.4.tgz", + "integrity": "sha512-8gBudvllD2A/c0CcEX/BivIDorHFt5UI5m46TsNj8DjWCCTTZT74kEe4g+QsY7P/B9WdO98d82zZgXO/RQzu2Q==", + "requires": { + "@types/glob": "*", + "@types/node": "*" + } + }, + "@types/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha1-EHPEvIJHVK49EM+riKsCN7qWTk0=" + }, + "@types/unist": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", + "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==" + }, + "@types/vfile": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/vfile/-/vfile-3.0.2.tgz", + "integrity": "sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==", + "requires": { + "@types/node": "*", + "@types/unist": "*", + "@types/vfile-message": "*" + } + }, + "@types/vfile-message": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/vfile-message/-/vfile-message-2.0.0.tgz", + "integrity": "sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==", + "requires": { + "vfile-message": "*" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" + }, + "@types/yoga-layout": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.2.tgz", + "integrity": "sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz", + "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==", + "requires": { + "@typescript-eslint/experimental-utils": "2.34.0", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.0.0", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", + "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.34.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz", + "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==", + "requires": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "2.34.0", + "@typescript-eslint/typescript-estree": "2.34.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", + "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", + "requires": { + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + } + } + }, + "@urql/core": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@urql/core/-/core-1.12.2.tgz", + "integrity": "sha512-GGG9fzDRscuLdYVpJSTOfTPLHHEXadrUI/LNZ0vAIXrof5whWL8Nyxc2x2EhilrajZ+7DgZUuT+nuiVF4/Z7fA==", + "requires": { + "wonka": "^4.0.14" + } + }, + "@vimeo/player": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/@vimeo/player/-/player-2.12.1.tgz", + "integrity": "sha512-C8g9iBDaMmYl0ifmuljk8n/+wieOXQTIHLAdPiV/1Y229f6OqJwDGBgrIlkhMhXEgZB9eoRmsBLsNN4BYInHYg==", + "requires": { + "native-promise-only": "0.8.1", + "weakmap-polyfill": "2.0.1" + } + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", + "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==" + }, + "acorn-dynamic-import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==" + }, + "acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==" + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" + }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" + }, + "ajv-keywords": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz", + "integrity": "sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==" + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "application-config-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.0.tgz", + "integrity": "sha1-GTxfCoZUGkxm+6Hi3DhYM2LqXo8=" + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "arch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.2.tgz", + "integrity": "sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ==" + }, + "archive-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", + "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=", + "requires": { + "file-type": "^4.2.0" + }, + "dependencies": { + "file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=" + } + } + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "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==" + }, + "arr-rotate": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/arr-rotate/-/arr-rotate-1.0.0.tgz", + "integrity": "sha512-yOzOZcR9Tn7enTF66bqKorGGH0F36vcPaSWg8fO0c0UYb3LX3VMXj5ZxEqQLNOecAhlRJ7wYZja5i4jTlnbIfQ==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + } + }, + "array-iterate": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.4.tgz", + "integrity": "sha512-sNRaPGh9nnmdC8Zf+pT3UqP8rnWj5Hf9wiFGsX3wUQ2yVSIhO2ShFwCoceIPpB41QF6i2OEmrHmCo36xronCVA==" + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "array.prototype.flatmap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz", + "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1" + } + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "async-cache": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/async-cache/-/async-cache-1.1.0.tgz", + "integrity": "sha1-SppaidBl7F2OUlS9nulrp2xTK1o=", + "requires": { + "lru-cache": "^4.0.0" + } + }, + "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==" + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=" + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "auto-bind": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", + "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==" + }, + "autoprefixer": { + "version": "9.8.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.4.tgz", + "integrity": "sha512-84aYfXlpUe45lvmS+HoAWKCkirI/sw4JK0/bTeeqgHYco3dcsOn0NqdejISjptsYwNji/21dnkDri9PsYKk89A==", + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001087", + "colorette": "^1.2.0", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" + }, + "axe-core": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz", + "integrity": "sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==" + }, + "axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "requires": { + "follow-redirects": "1.5.10" + } + }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==" + }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + } + }, + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + } + }, + "babel-plugin-add-module-exports": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.3.3.tgz", + "integrity": "sha512-hC37mm7aAdEb1n8SgggG8a1QuhZapsY/XLCi4ETSH6AVjXBCWEa50CXlOsAMPPWLnSx5Ns6mzz39uvuseh0Xjg==", + "requires": { + "chokidar": "^2.0.4" + }, + "dependencies": { + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "optional": true + } + } + }, + "babel-plugin-apply-mdx-type-prop": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.6.tgz", + "integrity": "sha512-rUzVvkQa8/9M63OZT6qQQ1bS8P0ozhXp9e5uJ3RwRJF5Me7s4nZK5SYhyNHYc0BkAflWnCOGMP3oPQUfuyB8tg==", + "requires": { + "@babel/helper-plugin-utils": "7.8.3", + "@mdx-js/util": "^1.6.6" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-emotion": { + "version": "10.0.33", + "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz", + "integrity": "sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@emotion/hash": "0.8.0", + "@emotion/memoize": "0.7.4", + "@emotion/serialize": "^0.11.16", + "babel-plugin-macros": "^2.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^1.0.5", + "find-root": "^1.1.0", + "source-map": "^0.5.7" + } + }, + "babel-plugin-extract-import-names": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.6.tgz", + "integrity": "sha512-UtMuiQJnhVPAGE2+pDe7Nc9NVEmDdqGTN74BtRALgH+7oag88RpxFLOSiA+u5mFkFg741wW9Ut5KiyJpksEj/g==", + "requires": { + "@babel/helper-plugin-utils": "7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + } + } + }, + "babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } + }, + "babel-plugin-remove-graphql-queries": { + "version": "2.9.13", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.9.13.tgz", + "integrity": "sha512-UpxqC9Wt2O+kYbCP4KnAyZrMO29bwEvilWzomOqB5bwAJpXeZ2NwvRoWBKGJSzSyOCOoyz7xPSZ/OJM3kO5Xyw==" + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "babel-preset-gatsby": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-0.5.2.tgz", + "integrity": "sha512-0pHaIm0Aqy6b+OpywL5Fu5vpAFzjHqGFx3YKhbb//2s6qC7/tplwWs5MmQ8ZrfHlxUIw/+c+CWUERfgihWRaBQ==", + "requires": { + "@babel/plugin-proposal-class-properties": "^7.10.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1", + "@babel/plugin-proposal-optional-chaining": "^7.10.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.10.3", + "@babel/plugin-transform-spread": "^7.10.1", + "@babel/preset-env": "^7.10.3", + "@babel/preset-react": "^7.10.1", + "@babel/runtime": "^7.10.3", + "babel-plugin-dynamic-import-node": "^2.3.3", + "babel-plugin-macros": "^2.8.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24", + "gatsby-core-utils": "^1.3.12", + "gatsby-legacy-polyfills": "^0.0.2" + } + }, + "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=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + } + } + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + }, + "bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "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=", + "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==", + "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==", + "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==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "beautiful-react-hooks": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/beautiful-react-hooks/-/beautiful-react-hooks-0.23.1.tgz", + "integrity": "sha512-185u6uEPJtroIGyarZM6NQ3lpdkleDgRGP2ywN6O2OGRSQ09mPhp+W/mQkQ1xhcUoYAK1nKT7XE5i6DE+wdAjw==", + "requires": { + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1" + } + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "requires": { + "callsite": "1.0.0" + } + }, + "better-opn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-1.0.0.tgz", + "integrity": "sha512-q3eO2se4sFbTERB1dFBDdjTiIIpRohMErpwBX21lhPvmgmQNNrcQj0zbWRhMREDesJvyod9kxBS3kOtdAvkB/A==", + "requires": { + "open": "^6.4.0" + } + }, + "better-queue": { + "version": "3.8.10", + "resolved": "https://registry.npmjs.org/better-queue/-/better-queue-3.8.10.tgz", + "integrity": "sha512-e3gwNZgDCnNWl0An0Tz6sUjKDV9m6aB+K9Xg//vYeo8+KiH8pWhLFxkawcXhm6FpM//GfD9IQv/kmvWCAVVpKA==", + "requires": { + "better-queue-memory": "^1.0.1", + "node-eta": "^0.9.0", + "uuid": "^3.0.0" + } + }, + "better-queue-memory": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/better-queue-memory/-/better-queue-memory-1.0.4.tgz", + "integrity": "sha512-SWg5wFIShYffEmJpI6LgbL8/3Dqhku7xI1oEiy6FroP9DbcZlG0ZDjxvPdP9t7hTGW40IpIcC6zVoGT1oxjOuA==" + }, + "bfj": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", + "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", + "requires": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "bin-build": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz", + "integrity": "sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==", + "requires": { + "decompress": "^4.0.0", + "download": "^6.2.2", + "execa": "^0.7.0", + "p-map-series": "^1.0.0", + "tempfile": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } + } + }, + "bin-check": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz", + "integrity": "sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==", + "requires": { + "execa": "^0.7.0", + "executable": "^4.1.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } + } + }, + "bin-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz", + "integrity": "sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==", + "requires": { + "execa": "^1.0.0", + "find-versions": "^3.0.0" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + } + } + }, + "bin-version-check": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz", + "integrity": "sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==", + "requires": { + "bin-version": "^3.0.0", + "semver": "^5.6.0", + "semver-truncate": "^1.1.2" + } + }, + "bin-wrapper": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz", + "integrity": "sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==", + "requires": { + "bin-check": "^4.1.0", + "bin-version-check": "^4.0.0", + "download": "^7.1.0", + "import-lazy": "^3.1.0", + "os-filter-obj": "^2.0.0", + "pify": "^4.0.1" + }, + "dependencies": { + "download": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz", + "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==", + "requires": { + "archive-type": "^4.0.0", + "caw": "^2.0.1", + "content-disposition": "^0.5.2", + "decompress": "^4.2.0", + "ext-name": "^5.0.0", + "file-type": "^8.1.0", + "filenamify": "^2.0.0", + "get-stream": "^3.0.0", + "got": "^8.3.1", + "make-dir": "^1.2.0", + "p-event": "^2.1.0", + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "file-type": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz", + "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "import-lazy": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", + "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==" + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "p-event": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", + "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", + "requires": { + "p-timeout": "^2.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bl": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz", + "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "requires": { + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" + }, + "bn.js": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + }, + "dependencies": { + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "browserify-sign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", + "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.2", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", + "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", + "requires": { + "caniuse-lite": "^1.0.30001093", + "electron-to-chromium": "^1.3.488", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" + } + }, + "buble-jsx-only": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/buble-jsx-only/-/buble-jsx-only-0.19.8.tgz", + "integrity": "sha512-7AW19pf7PrKFnGTEDzs6u9+JZqQwM1VnLS19OlqYDhXomtFFknnoQJAPHeg84RMFWAvOhYrG7harizJNwUKJsA==", + "requires": { + "acorn": "^6.1.1", + "acorn-dynamic-import": "^4.0.0", + "acorn-jsx": "^5.0.1", + "chalk": "^2.4.2", + "magic-string": "^0.25.3", + "minimist": "^1.2.0", + "regexpu-core": "^4.5.4" + }, + "dependencies": { + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" + } + } + }, + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-modules": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "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" + } + }, + "cache-manager": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-2.11.1.tgz", + "integrity": "sha512-XhUuc9eYwkzpK89iNewFwtvcDYMUsvtwzHeyEOPJna/WsVsXcrzsA1ft2M0QqPNunEzLhNCYPo05tEfG+YuNow==", + "requires": { + "async": "1.5.2", + "lodash.clonedeep": "4.5.0", + "lru-cache": "4.0.0" + } + }, + "cache-manager-fs-hash": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/cache-manager-fs-hash/-/cache-manager-fs-hash-0.0.9.tgz", + "integrity": "sha512-G0RUUSMZADiMx/0tHjPa+uzJyjtVB/Xt9yuFm6g/rBpm0p/IMr4atUWX2G2f1yGCPmDnyUcFz4RlSpgNRgvldg==", + "requires": { + "lockfile": "^1.0.4" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + } + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + } + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camel-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", + "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", + "requires": { + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + } + } + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001097", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001097.tgz", + "integrity": "sha512-TeuSleKt/vWXaPkLVFqGDnbweYfq4IaZ6rUugFf3rWY6dlII8StUZ8Ddin0PkADfgYZ4wRqCdO2ORl4Rn5eZIA==" + }, + "carbon-components": { + "version": "10.15.0", + "resolved": "https://registry.npmjs.org/carbon-components/-/carbon-components-10.15.0.tgz", + "integrity": "sha512-Cv9c9tzyNf8E5N6kaUHW213fyEqQp0rlzrVCZ1UxmDZuYcxihjoFtGOFLyEvHRFU0jYgqzrDgLv/wNGzAD/ENQ==", + "requires": { + "flatpickr": "4.6.1", + "lodash.debounce": "^4.0.8", + "warning": "^3.0.0" + }, + "dependencies": { + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "carbon-components-react": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/carbon-components-react/-/carbon-components-react-7.15.0.tgz", + "integrity": "sha512-relbXXLn1AX0UsqiW7nwjVijqzxRA04feQeijfBNQ8KdejLys/LXVgUHeO6yaW+wOp1Ck9SzjqJhYCbFiwTfVw==", + "requires": { + "@carbon/icons-react": "^10.13.0", + "classnames": "2.2.6", + "downshift": "5.0.5", + "flatpickr": "4.6.1", + "invariant": "^2.2.3", + "lodash.debounce": "^4.0.8", + "lodash.findlast": "^4.5.0", + "lodash.isequal": "^4.5.0", + "lodash.omit": "^4.5.0", + "lodash.throttle": "^4.1.1", + "react-is": "^16.8.6", + "use-resize-observer": "^6.0.0", + "warning": "^3.0.0", + "window-or-global": "^1.0.1" + }, + "dependencies": { + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "carbon-icons": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/carbon-icons/-/carbon-icons-7.0.7.tgz", + "integrity": "sha512-3vgkdXJRgCViCrH3fLUdyAXo0I8wmohO6QETv7vWFx6yc7s+SirWFBSFL38zUx4MHtR8iTxIlLEzkeU6FlFtXg==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "caw": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz", + "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==", + "requires": { + "get-proxy": "^2.0.0", + "isurl": "^1.0.0-alpha5", + "tunnel-agent": "^0.6.0", + "url-to-options": "^1.0.1" + } + }, + "ccount": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.5.tgz", + "integrity": "sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "change-case": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", + "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", + "requires": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" + }, + "dependencies": { + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + }, + "pascal-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", + "requires": { + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" + } + } + } + }, + "character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + }, + "character-entities-html4": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", + "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==" + }, + "character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + }, + "character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "check-types": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", + "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==" + }, + "cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" + }, + "dependencies": { + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + } + } + }, + "chokidar": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", + "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "optional": true + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "requires": { + "tslib": "^1.9.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==" + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "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==", + "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=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cli-boxes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==" + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", + "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==" + }, + "cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + } + }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "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==" + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" + }, + "clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + } + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "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==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "collapse-white-space": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", + "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-string": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", + "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "optional": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" + }, + "command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" + }, + "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==" + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "compute-scroll-into-view": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.14.tgz", + "integrity": "sha512-mKDjINe3tc6hGelUMNDzuhorIUZ7kS7BwyY0r2wQd2HOH2tRuJykiC06iSEX8y1TuhNzvz4GcJnK16mM2J1NMQ==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "confusing-browser-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", + "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==" + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "console-stream": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz", + "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=" + }, + "constant-case": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", + "requires": { + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-hrtime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-3.0.0.tgz", + "integrity": "sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==" + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "requires": { + "toggle-selection": "^1.0.6" + } + }, + "copyfiles": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.3.0.tgz", + "integrity": "sha512-73v7KFuDFJ/ofkQjZBMjMBFWGgkS76DzXvBMUh7djsMOE5EELWtAO/hRB6Wr5Vj5Zg+YozvoHemv0vnXpqxmOQ==", + "requires": { + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "yargs": "^15.3.1" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" + }, + "core-js-compat": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", + "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", + "requires": { + "browserslist": "^4.8.5", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } + }, + "core-js-pure": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", + "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "create-react-context": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz", + "integrity": "sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==", + "requires": { + "gud": "^1.0.0", + "warning": "^4.0.3" + } + }, + "cross-fetch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.2.tgz", + "integrity": "sha1-pH/09/xxLauo9qaVoRyUhEDUVyM=", + "requires": { + "node-fetch": "2.1.2", + "whatwg-fetch": "2.0.4" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-loader": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", + "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", + "requires": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash": "^4.17.11", + "postcss": "^6.0.23", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "css-selector-parser": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", + "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==" + }, + "css-selector-tokenizer": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz", + "integrity": "sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==", + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2", + "regexpu-core": "^4.6.0" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=" + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" + }, + "csso": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", + "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", + "requires": { + "css-tree": "1.0.0-alpha.39" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", + "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", + "requires": { + "mdn-data": "2.0.6", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", + "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "csstype": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.11.tgz", + "integrity": "sha512-l8YyEC9NBkSm783PFTvh0FmJy7s5pFKrDp49ZL7zBGX3fWkO+N4EEyan1qqp8cwPLDcD0OSdyY6hAMoxp34JFw==" + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "dataloader": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz", + "integrity": "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==" + }, + "date-fns": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.14.0.tgz", + "integrity": "sha512-1zD+68jhFgDIM0rF05rcwYO8cExdNqxjq4xP1QKM60Q45mnO6zaMWB4tOzrIr4M4GSLntsKeE4c9Bdl2jhL/yw==" + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-3.2.0.tgz", + "integrity": "sha512-4TgkVUsmmu7oCSyGBm5FvfMoACuoh9EOidm7V5/J2X2djAwwt57qb3F2KMP2ITqODTCSwb+YRV+0Zqrv18k/hw==", + "requires": { + "xregexp": "^4.2.4" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "requires": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "dependencies": { + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "requires": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "dependencies": { + "bl": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", + "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + } + } + }, + "decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "requires": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "dependencies": { + "file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" + } + } + }, + "decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "requires": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + } + } + }, + "decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", + "requires": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + } + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "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==", + "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==", + "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==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "requires": { + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detab": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.3.tgz", + "integrity": "sha512-Up8P0clUVwq0FnFjDclzZsy9PadzRn5FFxrr47tQQvMHqyiFYVbpH8oXDzWtF0Q7pYy3l+RPmtBl+BsFF6wH0A==", + "requires": { + "repeat-string": "^1.5.4" + } + }, + "detect-indent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", + "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==" + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, + "detect-newline": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-1.0.3.tgz", + "integrity": "sha1-6XsQA4d9cMCa8a81v63/Fo3kkg0=", + "requires": { + "get-stdin": "^4.0.1", + "minimist": "^1.1.0" + } + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" + }, + "detect-port": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", + "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "devcert": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/devcert/-/devcert-1.1.2.tgz", + "integrity": "sha512-B72N5Z2Lzu11dsPvg/KD9IwQCyNg6JgsNcHw7zJ+QQN9/rusMpc0tSSOYLczmty5D7vOs94IHITPQ0uei5D3cw==", + "requires": { + "@types/configstore": "^2.1.1", + "@types/debug": "^0.0.30", + "@types/get-port": "^3.2.0", + "@types/glob": "^5.0.34", + "@types/lodash": "^4.14.92", + "@types/mkdirp": "^0.5.2", + "@types/node": "^8.5.7", + "@types/rimraf": "^2.0.2", + "@types/tmp": "^0.0.33", + "application-config-path": "^0.1.0", + "command-exists": "^1.2.4", + "configstore": "^3.0.0", + "debug": "^3.1.0", + "eol": "^0.9.1", + "get-port": "^3.2.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "password-prompt": "^1.0.4", + "rimraf": "^2.6.2", + "sudo-prompt": "^8.2.0", + "tmp": "^0.0.33", + "tslib": "^1.10.0" + }, + "dependencies": { + "@types/glob": { + "version": "5.0.36", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.36.tgz", + "integrity": "sha512-KEzSKuP2+3oOjYYjujue6Z3Yqis5HKA1BsIC+jZ1v3lrRNdsqyNNtX0rQf6LSuI4DJJ2z5UV//zBZCcvM0xikg==", + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/node": { + "version": "8.10.61", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.61.tgz", + "integrity": "sha512-l+zSbvT8TPRaCxL1l9cwHCb0tSqGAGcjPJFItGGYat5oCTiq1uQQKYg5m7AF1mgnEBzFXGLJ2LRmNjtreRX76Q==" + }, + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "requires": { + "is-obj": "^1.0.0" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" + } + } + }, + "diff-sequences": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", + "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==" + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "requires": { + "utila": "~0.4" + } + }, + "dom-helpers": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.4.tgz", + "integrity": "sha512-TjMyeVUvNEnOnhzs6uAn9Ya47GmMo3qq7m+Lr/3ON0Rs5kHvb8I+SQYjLUSYn7qhEm0QjW0yrBkvz9yOrwwz1A==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^2.6.7" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" + } + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", + "requires": { + "no-case": "^2.2.0" + }, + "dependencies": { + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + } + } + }, + "dot-prop": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + }, + "download": { + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz", + "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==", + "requires": { + "caw": "^2.0.0", + "content-disposition": "^0.5.2", + "decompress": "^4.0.0", + "ext-name": "^5.0.0", + "file-type": "5.2.0", + "filenamify": "^2.0.0", + "get-stream": "^3.0.0", + "got": "^7.0.0", + "make-dir": "^1.0.0", + "p-event": "^1.0.0", + "pify": "^3.0.0" + }, + "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "^1.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + } + } + }, + "downshift": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/downshift/-/downshift-5.0.5.tgz", + "integrity": "sha512-V1idov3Rkvz1YWA1K67aIx51EgokIDvep4x6KmU7HhsayI8DvTEZBeH4O92zeFVGximKujRO7ChBzBAf4PKWFA==", + "requires": { + "@babel/runtime": "^7.4.5", + "compute-scroll-into-view": "^1.0.9", + "prop-types": "^15.7.2", + "react-is": "^16.9.0" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" + }, + "electron-to-chromium": { + "version": "1.3.496", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.496.tgz", + "integrity": "sha512-TXY4mwoyowwi4Lsrq9vcTUYBThyc1b2hXaTZI13p8/FRhY2CTaq5lK+DVjhYkKiTLsKt569Xes+0J5JsVXFurQ==" + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "emotion-theming": { + "version": "10.0.27", + "resolved": "https://registry.npmjs.org/emotion-theming/-/emotion-theming-10.0.27.tgz", + "integrity": "sha512-MlF1yu/gYh8u+sLUqA0YuA9JX0P4Hb69WlKc/9OLo+WCXuX6sy/KoIa+qJimgmr2dWqnypYKYPX37esjDBbhdw==", + "requires": { + "@babel/runtime": "^7.5.5", + "@emotion/weak-memoize": "0.2.5", + "hoist-non-react-statics": "^3.3.0" + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", + "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "0.3.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "^7.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "engine.io-client": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz", + "integrity": "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==", + "requires": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", + "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "enhanced-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.2.0.tgz", + "integrity": "sha512-S7eiFb/erugyd1rLb6mQ3Vuq+EXHv5cpCkNqqIkYkBgN2QdFnyCZzFBleqwGEx4lgNGYij81BWnCrFNK7vxvjQ==", + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" + }, + "envinfo": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.5.1.tgz", + "integrity": "sha512-hQBkDf2iO4Nv0CNHpCuSBeaSrveU6nThVxFGTrq/eDlV716UQk09zChaJae4mZRsos1x4YLY2TaH3LHUae3ZmQ==" + }, + "eol": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", + "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==" + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", + "requires": { + "stackframe": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.1.tgz", + "integrity": "sha512-DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "requires": { + "type-fest": "^0.8.1" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "v8-compile-cache": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==" + } + } + }, + "eslint-config-react-app": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz", + "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==", + "requires": { + "confusing-browser-globals": "^1.0.9" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "eslint-loader": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz", + "integrity": "sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==", + "requires": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "^2.1.0" + } + } + } + }, + "eslint-plugin-flowtype": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz", + "integrity": "sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw==", + "requires": { + "lodash": "^4.17.15" + } + }, + "eslint-plugin-graphql": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-graphql/-/eslint-plugin-graphql-3.1.1.tgz", + "integrity": "sha512-VNu2AipS8P1BAnE/tcJ2EmBWjFlCnG+1jKdUlFNDQjocWZlFiPpMu9xYNXePoEXK+q+jG51M/6PdhOjEgJZEaQ==", + "requires": { + "graphql-config": "^2.0.1", + "lodash": "^4.11.1" + } + }, + "eslint-plugin-import": { + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz", + "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==", + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.3", + "eslint-module-utils": "^2.6.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.1", + "read-pkg-up": "^2.0.0", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.3.1.tgz", + "integrity": "sha512-i1S+P+c3HOlBJzMFORRbC58tHa65Kbo8b52/TwCwSKLohwvpfT5rm2GjGWzOHTEuq4xxf2aRlHHTtmExDQOP+g==", + "requires": { + "@babel/runtime": "^7.10.2", + "aria-query": "^4.2.2", + "array-includes": "^3.1.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^3.5.4", + "axobject-query": "^2.1.2", + "damerau-levenshtein": "^1.0.6", + "emoji-regex": "^9.0.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.4.1", + "language-tags": "^1.0.5" + }, + "dependencies": { + "emoji-regex": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.0.0.tgz", + "integrity": "sha512-6p1NII1Vm62wni/VR/cUMauVQoxmLVb9csqQlvLz+hO2gk8U2UYDfXHQSUYIBKmZwAKz867IDqG7B+u0mj+M6w==" + } + } + }, + "eslint-plugin-react": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.3.tgz", + "integrity": "sha512-txbo090buDeyV0ugF3YMWrzLIUqpYTsWSDZV9xLSmExE1P/Kmgg9++PD931r+KEWS66O1c9R4srLVVHmeHpoAg==", + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flatmap": "^1.2.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.4.1", + "object.entries": "^1.1.2", + "object.fromentries": "^2.0.2", + "object.values": "^1.1.1", + "prop-types": "^15.7.2", + "resolve": "^1.17.0", + "string.prototype.matchall": "^4.0.2" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + } + } + }, + "eslint-plugin-react-hooks": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz", + "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==" + }, + "eslint-scope": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", + "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", + "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==" + } + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eval": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.4.tgz", + "integrity": "sha512-npGsebJejyjMRnLdFu+T/97dnigqIU0Ov3IGrZ8ygd1v7RL1vGkEKtvyWZobqUH1AQgKlg0Yqqe2BtMA9/QZLw==", + "requires": { + "require-like": ">= 0.1.1" + } + }, + "event-source-polyfill": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.15.tgz", + "integrity": "sha512-IVmd8jWwX6ag5rXIdVCPBjBChiHBceLb1/7aKPIK7CUeJ5Br7alx029+ZpQlK4jW4Hk2qncy3ClJP97S8ltvmg==" + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "events": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==" + }, + "eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "requires": { + "original": ">=0.0.5" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "requires": { + "pify": "^2.2.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "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=", + "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=", + "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=" + } + } + }, + "expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "express-graphql": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/express-graphql/-/express-graphql-0.9.0.tgz", + "integrity": "sha512-wccd9Lb6oeJ8yHpUs/8LcnGjFUUQYmOG9A5BNLybRdCzGw0PeUrtBxsIR8bfiur6uSW4OvPkVDoYH06z6/N9+w==", + "requires": { + "accepts": "^1.3.7", + "content-type": "^1.0.4", + "http-errors": "^1.7.3", + "raw-body": "^2.4.1" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "http-errors": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", + "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + } + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + } + } + }, + "ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "requires": { + "mime-db": "^1.28.0" + } + }, + "ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "requires": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "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=", + "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=", + "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==", + "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==", + "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==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==" + }, + "fastq": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", + "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fd": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/fd/-/fd-0.0.3.tgz", + "integrity": "sha512-iAHrIslQb3U68OcMSP0kkNWabp7sSN6d2TBSb2JO3gcLJVDd4owr/hKM4SFJovFOUeeXeItjYgouEDTMWiVAnA==" + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "requires": { + "pend": "~1.2.0" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "requires": { + "flat-cache": "^2.0.1" + } + }, + "file-loader": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", + "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^0.4.5" + }, + "dependencies": { + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "file-type": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz", + "integrity": "sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==" + }, + "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==", + "optional": true + }, + "filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=" + }, + "filenamify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz", + "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==", + "requires": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + } + }, + "filesize": { + "version": "3.5.11", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.5.11.tgz", + "integrity": "sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g==" + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "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=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "find-versions": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", + "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", + "requires": { + "semver-regex": "^2.0.0" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatpickr": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.1.tgz", + "integrity": "sha512-3ULSxbXmcMIRzer/2jLNweoqHpwDvsjEawO2FUd9UFR8uPwLM+LruZcPDpuZStcEgbQKhuFOfXo4nYdGladSNw==" + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "focus-trap": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-4.0.2.tgz", + "integrity": "sha512-HtLjfAK7Hp2qbBtLS6wEznID1mPT+48ZnP2nkHzgjpL4kroYHg0CdqJ5cTXk+UO5znAxF5fRUkhdyfgrhh8Lzw==", + "requires": { + "tabbable": "^3.1.2", + "xtend": "^4.0.1" + } + }, + "focus-trap-react": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/focus-trap-react/-/focus-trap-react-6.0.0.tgz", + "integrity": "sha512-mvEYxmP75PMx0vOqoIAmJHO/qUEvdTAdz6gLlEZyxxODnuKQdnKea2RWTYxghAPrV+ibiIq2o/GTSgQycnAjcw==", + "requires": { + "focus-trap": "^4.0.2" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "fs-exists-cached": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", + "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=" + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "gatsby": { + "version": "2.24.1", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-2.24.1.tgz", + "integrity": "sha512-aqFfx+Vj3kBhS17tgL1LrkMzip2Xctd3lCj+pogCGV9GCkg6wOqW2uOEqWeoiCNq09sPuwv3GNB8sbEFoQ/2DA==", + "requires": { + "@babel/code-frame": "^7.10.3", + "@babel/core": "^7.10.3", + "@babel/parser": "^7.10.3", + "@babel/runtime": "^7.10.3", + "@babel/traverse": "^7.10.3", + "@hapi/joi": "^15.1.1", + "@mikaelkristiansson/domready": "^1.0.10", + "@pieh/friendly-errors-webpack-plugin": "1.7.0-chalk-2", + "@pmmmwh/react-refresh-webpack-plugin": "^0.3.3", + "@reach/router": "^1.3.4", + "@types/http-proxy": "^1.17.4", + "@typescript-eslint/eslint-plugin": "^2.24.0", + "@typescript-eslint/parser": "^2.24.0", + "address": "1.1.2", + "autoprefixer": "^9.8.4", + "axios": "^0.19.2", + "babel-core": "7.0.0-bridge.0", + "babel-eslint": "^10.1.0", + "babel-loader": "^8.1.0", + "babel-plugin-add-module-exports": "^0.3.3", + "babel-plugin-dynamic-import-node": "^2.3.3", + "babel-plugin-remove-graphql-queries": "^2.9.13", + "babel-preset-gatsby": "^0.5.2", + "better-opn": "1.0.0", + "better-queue": "^3.8.10", + "bluebird": "^3.7.2", + "browserslist": "^4.12.2", + "cache-manager": "^2.11.1", + "cache-manager-fs-hash": "^0.0.9", + "chalk": "^2.4.2", + "chokidar": "3.4.0", + "common-tags": "^1.8.0", + "compression": "^1.7.4", + "convert-hrtime": "^3.0.0", + "copyfiles": "^2.3.0", + "core-js": "^3.6.5", + "cors": "^2.8.5", + "css-loader": "^1.0.1", + "date-fns": "^2.14.0", + "debug": "^3.2.6", + "del": "^5.1.0", + "detect-port": "^1.3.0", + "devcert": "^1.1.0", + "dotenv": "^8.2.0", + "eslint": "^6.8.0", + "eslint-config-react-app": "^5.2.1", + "eslint-loader": "^2.2.1", + "eslint-plugin-flowtype": "^3.13.0", + "eslint-plugin-graphql": "^3.1.1", + "eslint-plugin-import": "^2.22.0", + "eslint-plugin-jsx-a11y": "^6.3.1", + "eslint-plugin-react": "^7.20.2", + "eslint-plugin-react-hooks": "^1.7.0", + "event-source-polyfill": "^1.0.15", + "express": "^4.17.1", + "express-graphql": "^0.9.0", + "fast-levenshtein": "^2.0.6", + "file-loader": "^1.1.11", + "fs-exists-cached": "1.0.0", + "fs-extra": "^8.1.0", + "gatsby-cli": "^2.12.60", + "gatsby-core-utils": "^1.3.12", + "gatsby-graphiql-explorer": "^0.4.11", + "gatsby-legacy-polyfills": "^0.0.2", + "gatsby-link": "^2.4.12", + "gatsby-plugin-page-creator": "^2.3.17", + "gatsby-plugin-typescript": "^2.4.14", + "gatsby-react-router-scroll": "^3.0.11", + "gatsby-telemetry": "^1.3.19", + "glob": "^7.1.6", + "got": "8.3.2", + "graphql": "^14.6.0", + "graphql-compose": "^6.3.8", + "graphql-playground-middleware-express": "^1.7.18", + "hasha": "^5.2.0", + "http-proxy": "^1.18.1", + "invariant": "^2.2.4", + "is-relative": "^1.0.0", + "is-relative-url": "^3.0.0", + "is-wsl": "^2.2.0", + "jest-worker": "^24.9.0", + "json-loader": "^0.5.7", + "json-stringify-safe": "^5.0.1", + "latest-version": "5.1.0", + "lodash": "^4.17.15", + "md5-file": "^3.2.3", + "meant": "^1.0.1", + "micromatch": "^3.1.10", + "mime": "^2.4.6", + "mini-css-extract-plugin": "^0.8.2", + "mitt": "^1.2.0", + "mkdirp": "^0.5.1", + "moment": "^2.27.0", + "name-all-modules-plugin": "^1.0.1", + "normalize-path": "^2.1.1", + "null-loader": "^3.0.0", + "opentracing": "^0.14.4", + "optimize-css-assets-webpack-plugin": "^5.0.3", + "p-defer": "^3.0.0", + "parseurl": "^1.3.3", + "physical-cpu-count": "^2.0.0", + "pnp-webpack-plugin": "^1.6.4", + "postcss-flexbugs-fixes": "^4.2.1", + "postcss-loader": "^3.0.0", + "prompts": "^2.3.2", + "prop-types": "^15.7.2", + "query-string": "^6.13.1", + "raw-loader": "^0.5.1", + "react-dev-utils": "^4.2.3", + "react-error-overlay": "^3.0.0", + "react-hot-loader": "^4.12.21", + "react-refresh": "^0.7.0", + "redux": "^4.0.5", + "redux-thunk": "^2.3.0", + "semver": "^5.7.1", + "shallow-compare": "^1.2.2", + "signal-exit": "^3.0.3", + "slugify": "^1.4.4", + "socket.io": "^2.3.0", + "socket.io-client": "2.3.0", + "st": "^2.0.0", + "stack-trace": "^0.0.10", + "string-similarity": "^1.2.2", + "style-loader": "^0.23.1", + "terser-webpack-plugin": "^1.4.4", + "tmp": "^0.2.1", + "true-case-path": "^2.2.1", + "type-of": "^2.0.1", + "url-loader": "^1.1.2", + "util.promisify": "^1.0.1", + "uuid": "^3.4.0", + "v8-compile-cache": "^1.1.2", + "webpack": "~4.43.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-dev-server": "^3.11.0", + "webpack-hot-middleware": "^2.25.0", + "webpack-merge": "^4.2.2", + "webpack-stats-plugin": "^0.3.1", + "webpack-virtual-modules": "^0.2.2", + "xstate": "^4.11.0", + "yaml-loader": "^0.6.0" + } + }, + "gatsby-cli": { + "version": "2.12.60", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-2.12.60.tgz", + "integrity": "sha512-hc1pGn6m4Itc+HwIi4+s/esCInZzZit61guatNKzIJez0BTSDFv2EKtTUMuK5O64H/ofX0xfoHeYukOMA0MeIw==", + "requires": { + "@babel/code-frame": "^7.10.3", + "@hapi/joi": "^15.1.1", + "@types/common-tags": "^1.8.0", + "better-opn": "^1.0.0", + "chalk": "^2.4.2", + "clipboardy": "^2.3.0", + "common-tags": "^1.8.0", + "configstore": "^5.0.1", + "convert-hrtime": "^3.0.0", + "envinfo": "^7.5.1", + "execa": "^3.4.0", + "fs-exists-cached": "^1.0.0", + "fs-extra": "^8.1.0", + "gatsby-core-utils": "^1.3.12", + "gatsby-recipes": "^0.1.51", + "gatsby-telemetry": "^1.3.19", + "hosted-git-info": "^3.0.4", + "ink": "^2.7.1", + "ink-spinner": "^3.1.0", + "is-valid-path": "^0.1.1", + "lodash": "^4.17.15", + "meant": "^1.0.1", + "node-fetch": "^2.6.0", + "opentracing": "^0.14.4", + "pretty-error": "^2.1.1", + "progress": "^2.0.3", + "prompts": "^2.3.2", + "react": "^16.8.0", + "redux": "^4.0.5", + "resolve-cwd": "^3.0.0", + "semver": "^6.3.0", + "signal-exit": "^3.0.3", + "source-map": "0.7.3", + "stack-trace": "^0.0.10", + "strip-ansi": "^5.2.0", + "update-notifier": "^3.0.1", + "uuid": "3.4.0", + "yargs": "^15.3.1", + "yurnalist": "^1.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "hosted-git-info": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", + "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", + "requires": { + "lru-cache": "^5.1.1" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "gatsby-core-utils": { + "version": "1.3.12", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-1.3.12.tgz", + "integrity": "sha512-58pysrsfe2abWl7TOqeyHgyXSm9UIjYZ7UclGTvczWDYnxl8L/0kPSaFOX+bMmNBZmAB0YEtJZ3gHhM978OvqQ==", + "requires": { + "ci-info": "2.0.0", + "configstore": "^5.0.1", + "fs-extra": "^8.1.0", + "node-object-hash": "^2.0.0", + "proper-lockfile": "^4.1.1", + "xdg-basedir": "^4.0.0" + } + }, + "gatsby-graphiql-explorer": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-0.4.11.tgz", + "integrity": "sha512-lyedZl36sdXQxqts2/nIZ/sAJjThN17WnAzUtzimTlyE7sNUTLM1bPe9zvd1FqUFddYvtQdKvzpOiqGyDkfRzA==", + "requires": { + "@babel/runtime": "^7.10.3" + } + }, + "gatsby-legacy-polyfills": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-0.0.2.tgz", + "integrity": "sha512-i8LLwvtupC92AjQMivLDKDCgN51sV6FLbtoNn0CRQJdLJY31P06k+5qKcjdprGLdPjCjkCsYLTYi08pdvqAuPw==", + "requires": { + "core-js-compat": "^3.6.5" + } + }, + "gatsby-link": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-2.4.12.tgz", + "integrity": "sha512-FUSkQLzIeP4NhJkImgUds728CvcskyR3pK+FwBDfojbEP4Q7p416a1TnSMcfVZ63vSTpHfQGaSKFT/SdURNdjw==", + "requires": { + "@babel/runtime": "^7.10.3", + "@types/reach__router": "^1.3.3", + "prop-types": "^15.7.2" + } + }, + "gatsby-page-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-0.2.17.tgz", + "integrity": "sha512-Ery8ePfJiFwY5LcOhePIPmie7B/V2Yf5QREmo8sULx3mr00gWrqNwmIgaNYVIAxH87Fdy50CUScxeqQc4Hsl0g==", + "requires": { + "@babel/runtime": "^7.10.3", + "bluebird": "^3.7.2", + "chokidar": "3.4.0", + "fs-exists-cached": "^1.0.0", + "gatsby-core-utils": "^1.3.12", + "glob": "^7.1.6", + "lodash": "^4.17.15", + "micromatch": "^3.1.10" + } + }, + "gatsby-plugin-catch-links": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/gatsby-plugin-catch-links/-/gatsby-plugin-catch-links-2.3.11.tgz", + "integrity": "sha512-30oNCe85evOmyEQ4THwfV0Uokv0GVQv+VpR6ztabLDF78J3p3yFQNQhtcyXPjHrLU2EeuWutSZYk3v1etdh9Hw==", + "requires": { + "@babel/runtime": "^7.10.3", + "escape-string-regexp": "^1.0.5" + } + }, + "gatsby-plugin-emotion": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/gatsby-plugin-emotion/-/gatsby-plugin-emotion-4.3.10.tgz", + "integrity": "sha512-OQrNgq3Te+bjra/sNo2PwOm24dPVr8MsjWf3X/3ciPf4bkf+Ey0jzJ36JnIIUIzZvpbyBHAr6eNzSOWnE2X2zA==", + "requires": { + "@babel/runtime": "^7.10.3", + "@emotion/babel-preset-css-prop": "^10.0.27" + } + }, + "gatsby-plugin-lunr": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/gatsby-plugin-lunr/-/gatsby-plugin-lunr-1.5.2.tgz", + "integrity": "sha512-L+W8Jb7io824oxBGP973/7N9uv5YUhWpjRdteWDfWzku2S3vzlunoKVz5h4kMXezWDZDV2g8YsfWFNor7Gg5QQ==", + "requires": { + "@babel/runtime": "^7.4.3", + "lunr": "^2.3.6", + "lunr-languages": "^1.1.0" + } + }, + "gatsby-plugin-manifest": { + "version": "2.4.18", + "resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-2.4.18.tgz", + "integrity": "sha512-8nsCHLTCAqTg49pft3JaIqAsKlUMC1QA4/gm/Dxxm+kXj/LgfD/ZXjzh9EaBwtnlrWvuuz+Pr/WDEk1d2BMmdQ==", + "requires": { + "@babel/runtime": "^7.10.3", + "gatsby-core-utils": "^1.3.12", + "semver": "^5.7.1", + "sharp": "^0.25.1" + } + }, + "gatsby-plugin-mdx": { + "version": "1.2.25", + "resolved": "https://registry.npmjs.org/gatsby-plugin-mdx/-/gatsby-plugin-mdx-1.2.25.tgz", + "integrity": "sha512-BWewXvjVxqrVJ+UVk/WZUvhfsRX07wN2By3a1BbYvumzQ46+Vv5b8RpxF2MgKW8GkcNv7Wv1HpW4cMhDmjAubw==", + "requires": { + "@babel/core": "^7.10.3", + "@babel/generator": "^7.10.3", + "@babel/helper-plugin-utils": "^7.10.3", + "@babel/plugin-proposal-object-rest-spread": "^7.10.3", + "@babel/preset-env": "^7.10.3", + "@babel/preset-react": "^7.10.1", + "@babel/types": "^7.10.3", + "camelcase-css": "^2.0.1", + "change-case": "^3.1.0", + "core-js": "^3.6.5", + "dataloader": "^1.4.0", + "debug": "^4.1.1", + "escape-string-regexp": "^1.0.5", + "eval": "^0.1.4", + "fs-extra": "^8.1.0", + "gatsby-core-utils": "^1.3.12", + "gray-matter": "^4.0.2", + "json5": "^2.1.3", + "loader-utils": "^1.4.0", + "lodash": "^4.17.15", + "mdast-util-to-string": "^1.1.0", + "mdast-util-toc": "^3.1.0", + "mime": "^2.4.6", + "p-queue": "^5.0.0", + "pretty-bytes": "^5.3.0", + "remark": "^10.0.1", + "remark-retext": "^3.1.3", + "retext-english": "^3.0.4", + "static-site-generator-webpack-plugin": "^3.4.2", + "style-to-object": "^0.3.0", + "underscore.string": "^3.3.5", + "unified": "^8.4.2", + "unist-util-map": "^1.0.5", + "unist-util-remove": "^1.0.3", + "unist-util-visit": "^1.4.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "unist-util-remove": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-1.0.3.tgz", + "integrity": "sha512-mB6nCHCQK0pQffUAcCVmKgIWzG/AXs/V8qpS8K72tMPtOSCMSjDeMc5yN+Ye8rB0FhcE+JvW++o1xRNc0R+++g==", + "requires": { + "unist-util-is": "^3.0.0" + } + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "requires": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "requires": { + "unist-util-is": "^3.0.0" + } + } + } + }, + "gatsby-plugin-page-creator": { + "version": "2.3.17", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.3.17.tgz", + "integrity": "sha512-mIIotda+tR59tb3gk5qW3CUVSsdA608hchuX/+bKUCyuqyqZKjPffOdGUgy92Aa+mmIKgJTiGDUnIJoVsHSdtg==", + "requires": { + "@babel/runtime": "^7.10.3", + "bluebird": "^3.7.2", + "fs-exists-cached": "^1.0.0", + "gatsby-page-utils": "^0.2.17", + "glob": "^7.1.6", + "lodash": "^4.17.15", + "micromatch": "^3.1.10" + } + }, + "gatsby-plugin-react-helmet": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-3.3.10.tgz", + "integrity": "sha512-AcXYwmS3r298JWs6iQ3OLNxIe8L8i5a2iSdLr/SDMpHqumYm7q/vB9kCX0et5wM7DIuZ7aPXDrdi5yDCAvU5lg==", + "requires": { + "@babel/runtime": "^7.10.3" + } + }, + "gatsby-plugin-sass": { + "version": "2.3.12", + "resolved": "https://registry.npmjs.org/gatsby-plugin-sass/-/gatsby-plugin-sass-2.3.12.tgz", + "integrity": "sha512-cQHp4bvK3a0xId4Q9K9/1ejGVMMOm/1I28ry7quVoHVomSB4SwNJpMTGSgSYAKn3gjsveUyL+ceCRWeiIavkPA==", + "requires": { + "@babel/runtime": "^7.10.3", + "sass-loader": "^7.3.1" + } + }, + "gatsby-plugin-sass-resources": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-sass-resources/-/gatsby-plugin-sass-resources-2.0.0.tgz", + "integrity": "sha512-qck+/PxacnRNfpNKong+4Dsi+/IgOsFaMneJnA49nGj8+cE9vFeTUKwqhvRqAQmpJQ15zALju7flJ1hXhckZgA==", + "requires": { + "@babel/runtime": "^7.0.0", + "sass-resources-loader": "^1.3.3", + "webpack": "^4.0.0" + } + }, + "gatsby-plugin-sharp": { + "version": "2.6.19", + "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-2.6.19.tgz", + "integrity": "sha512-0SVP2xk8Ml+hml30+oBP/SRm/ztGV6sDOlOUoEHuv6SssxkDcKc9aSScn0qB1HsKGDYDm1gcmDmw48Bq4U78rA==", + "requires": { + "@babel/runtime": "^7.10.3", + "async": "^2.6.3", + "bluebird": "^3.7.2", + "fs-extra": "^8.1.0", + "gatsby-core-utils": "^1.3.12", + "got": "^8.3.2", + "imagemin": "^6.1.0", + "imagemin-mozjpeg": "^8.0.0", + "imagemin-pngquant": "^6.0.1", + "lodash": "^4.17.15", + "mini-svg-data-uri": "^1.2.3", + "potrace": "^2.1.6", + "probe-image-size": "^4.1.1", + "progress": "^2.0.3", + "semver": "^5.7.1", + "sharp": "^0.25.1", + "svgo": "1.3.2", + "uuid": "^3.4.0" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + } + } + }, + "gatsby-plugin-typescript": { + "version": "2.4.14", + "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-2.4.14.tgz", + "integrity": "sha512-8lMEK+F+xQZ+SGUuj4GMuWk2vy6x5PBVPRLO3eKNEGpX9o+vJcyQxTtu9Nd1GToLjr1K1r0ak0hERwGNzaJLow==", + "requires": { + "@babel/core": "^7.10.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1", + "@babel/plugin-proposal-numeric-separator": "^7.10.1", + "@babel/plugin-proposal-optional-chaining": "^7.10.3", + "@babel/preset-typescript": "^7.10.1", + "@babel/runtime": "^7.10.3", + "babel-plugin-remove-graphql-queries": "^2.9.13" + } + }, + "gatsby-plugin-webpack-bundle-analyser-v2": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/gatsby-plugin-webpack-bundle-analyser-v2/-/gatsby-plugin-webpack-bundle-analyser-v2-1.1.10.tgz", + "integrity": "sha512-VQtMIRcflAlMpauQZy/VnCb5SzTWhYw1jKZaVwAm+oaIdHav8xCAyg9hoQ849x46dUdk8/H3dnz5U6h+Z2MbLA==", + "requires": { + "@babel/runtime": "^7.10.1", + "webpack-bundle-analyzer": "^3.8.0" + } + }, + "gatsby-react-router-scroll": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-3.0.11.tgz", + "integrity": "sha512-5eok4FySl0YeegwThOxmlyEiS37SOUB7ekfVkdxnPcEFNhLF5oSx/BnmhmuivUTwKDBJwW6wFXWB9qPZ8OessA==", + "requires": { + "@babel/runtime": "^7.10.3" + } + }, + "gatsby-recipes": { + "version": "0.1.51", + "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.1.51.tgz", + "integrity": "sha512-SBbf5DEOEjJOKtJaXEokAuA1uR36MFbDixnbL8+npaAHQ70+9ExOziDW643yztb/X8JA0sq5y7SDxRwAE9acqA==", + "requires": { + "@babel/core": "^7.10.3", + "@babel/generator": "^7.10.3", + "@babel/helper-plugin-utils": "^7.10.3", + "@babel/plugin-transform-react-jsx": "^7.10.3", + "@babel/standalone": "^7.10.3", + "@babel/template": "^7.10.3", + "@babel/types": "^7.10.3", + "@graphql-tools/schema": "^6.0.11", + "@graphql-tools/utils": "^6.0.11", + "@hapi/hoek": "8.x", + "@hapi/joi": "^15.1.1", + "@mdx-js/mdx": "^1.6.6", + "@mdx-js/react": "^1.6.6", + "@mdx-js/runtime": "^1.6.6", + "acorn": "^7.3.1", + "acorn-jsx": "^5.2.0", + "cors": "^2.8.5", + "debug": "^4.1.1", + "detect-port": "^1.3.0", + "execa": "^4.0.2", + "express": "^4.17.1", + "express-graphql": "^0.9.0", + "fs-extra": "^8.1.0", + "gatsby-core-utils": "^1.3.12", + "gatsby-telemetry": "^1.3.19", + "glob": "^7.1.6", + "graphql": "^14.6.0", + "graphql-compose": "^6.3.8", + "graphql-subscriptions": "^1.1.0", + "graphql-type-json": "^0.3.2", + "hicat": "^0.7.0", + "html-tag-names": "^1.1.5", + "ink": "^2.7.1", + "ink-box": "^1.0.0", + "ink-link": "^1.1.0", + "ink-select-input": "^3.1.2", + "ink-spinner": "^3.1.0", + "is-binary-path": "^2.1.0", + "is-url": "^1.2.4", + "jest-diff": "^25.5.0", + "lodash": "^4.17.15", + "mkdirp": "^0.5.1", + "node-fetch": "^2.6.0", + "pkg-dir": "^4.2.0", + "prettier": "^2.0.5", + "react-reconciler": "^0.25.1", + "remark-mdx": "^1.6.6", + "remark-parse": "^6.0.3", + "remark-stringify": "^8.1.0", + "resolve-cwd": "^3.0.0", + "semver": "^7.3.2", + "single-trailing-newline": "^1.0.0", + "strip-ansi": "^6.0.0", + "style-to-object": "^0.3.0", + "subscriptions-transport-ws": "^0.9.16", + "svg-tag-names": "^2.0.1", + "unified": "^8.4.2", + "unist-util-visit": "^2.0.2", + "urql": "^1.9.8", + "ws": "^7.3.0", + "xstate": "^4.11.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "execa": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", + "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "requires": { + "pump": "^3.0.0" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "gatsby-remark-copy-linked-files": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/gatsby-remark-copy-linked-files/-/gatsby-remark-copy-linked-files-2.3.11.tgz", + "integrity": "sha512-uU0CWXEnPKlrKFO+kqqjZAEVTSbt1WuJrJYU2S8Fe2ql8N2SM7Db2yce5r4PTSqLNg6RSzOXEQBIIoeTq/yVbQ==", + "requires": { + "@babel/runtime": "^7.10.3", + "cheerio": "^1.0.0-rc.3", + "fs-extra": "^8.1.0", + "is-relative-url": "^3.0.0", + "lodash": "^4.17.15", + "path-is-inside": "^1.0.2", + "probe-image-size": "^4.1.1", + "unist-util-visit": "^1.4.1" + }, + "dependencies": { + "cheerio": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", + "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.1", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash": "^4.15.0", + "parse5": "^3.0.1" + } + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "requires": { + "@types/node": "*" + } + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "requires": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "requires": { + "unist-util-is": "^3.0.0" + } + } + } + }, + "gatsby-remark-images": { + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/gatsby-remark-images/-/gatsby-remark-images-3.3.18.tgz", + "integrity": "sha512-VdujNSdwwCYkGoOwGkfn810zbl5R2gF99o6CYsi6ZUZ5iooWklSgndTu0bzP5tDRmKLXOK4L4Gjm+QzbLkM3lA==", + "requires": { + "@babel/runtime": "^7.10.3", + "chalk": "^2.4.2", + "cheerio": "^1.0.0-rc.3", + "gatsby-core-utils": "^1.3.12", + "is-relative-url": "^3.0.0", + "lodash": "^4.17.15", + "mdast-util-definitions": "^1.2.5", + "potrace": "^2.1.6", + "query-string": "^6.13.1", + "unist-util-select": "^1.5.0", + "unist-util-visit-parents": "^2.1.2" + }, + "dependencies": { + "cheerio": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", + "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.1", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash": "^4.15.0", + "parse5": "^3.0.1" + } + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "mdast-util-definitions": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-1.2.5.tgz", + "integrity": "sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA==", + "requires": { + "unist-util-visit": "^1.0.0" + } + }, + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "requires": { + "@types/node": "*" + } + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "requires": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "requires": { + "unist-util-is": "^3.0.0" + } + } + } + }, + "gatsby-remark-responsive-iframe": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/gatsby-remark-responsive-iframe/-/gatsby-remark-responsive-iframe-2.4.11.tgz", + "integrity": "sha512-LJwMffpKMVrn3OkFjH3FiTjlt5NresUKIHSCZs5RLKGta8zd4I1vd/uMnjuO7EI5csIRkr0iHS7iCMQeC4oXbQ==", + "requires": { + "@babel/runtime": "^7.10.3", + "cheerio": "^1.0.0-rc.3", + "common-tags": "^1.8.0", + "lodash": "^4.17.15", + "unist-util-visit": "^1.4.1" + }, + "dependencies": { + "cheerio": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", + "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.1", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash": "^4.15.0", + "parse5": "^3.0.1" + } + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "requires": { + "@types/node": "*" + } + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "requires": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "requires": { + "unist-util-is": "^3.0.0" + } + } + } + }, + "gatsby-remark-smartypants": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/gatsby-remark-smartypants/-/gatsby-remark-smartypants-2.3.10.tgz", + "integrity": "sha512-gD6tp0zWKR+6jF4TJf4MzxwmRROL+P3TnvG/ydNHWPz0yzZPWyqW7HGk0CkwazeiI4cz/BKO9pV8HBLcjunTvg==", + "requires": { + "@babel/runtime": "^7.10.3", + "retext": "^5.0.0", + "retext-smartypants": "^3.0.3", + "unist-util-visit": "^1.4.1" + }, + "dependencies": { + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "requires": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "requires": { + "unist-util-is": "^3.0.0" + } + } + } + }, + "gatsby-remark-unwrap-images": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/gatsby-remark-unwrap-images/-/gatsby-remark-unwrap-images-1.0.2.tgz", + "integrity": "sha512-kOatDaz6EcYJn6oEx97pim0JkzuN1epacmHuKP9kL7r3+y1dzvNQjrJMtmDZTqC6Q8LhXD2rrFhsYS3SerTHhw==", + "requires": { + "unist-util-remove": "^1.0.1", + "unist-util-visit": "^1.4.0" + }, + "dependencies": { + "unist-util-remove": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-1.0.3.tgz", + "integrity": "sha512-mB6nCHCQK0pQffUAcCVmKgIWzG/AXs/V8qpS8K72tMPtOSCMSjDeMc5yN+Ye8rB0FhcE+JvW++o1xRNc0R+++g==", + "requires": { + "unist-util-is": "^3.0.0" + } + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "requires": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "requires": { + "unist-util-is": "^3.0.0" + } + } + } + }, + "gatsby-source-filesystem": { + "version": "2.3.19", + "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-2.3.19.tgz", + "integrity": "sha512-vFNm1Qx7nHJVtnvA1tsQYNYdr7co8hI8rrt7OwIExW19ouryqSNtzSs7T2MHQNyeXLuIajEA2xOh4Q1OgC+9UA==", + "requires": { + "@babel/runtime": "^7.10.3", + "better-queue": "^3.8.10", + "bluebird": "^3.7.2", + "chokidar": "3.4.0", + "file-type": "^12.4.2", + "fs-extra": "^8.1.0", + "gatsby-core-utils": "^1.3.12", + "got": "^9.6.0", + "md5-file": "^3.2.3", + "mime": "^2.4.6", + "pretty-bytes": "^5.3.0", + "progress": "^2.0.3", + "read-chunk": "^3.2.0", + "valid-url": "^1.0.9", + "xstate": "^4.11.0" + }, + "dependencies": { + "file-type": { + "version": "12.4.2", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", + "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==" + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + } + } + }, + "gatsby-source-medium-feed": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/gatsby-source-medium-feed/-/gatsby-source-medium-feed-1.0.6.tgz", + "integrity": "sha512-Ey9BWpbEaOkIPk4JNnoVBTZ5uM5ylqhngsQZ+Ijr1l/Oobgpz//FBr9aFpdaayrDHkaeoffsZ7VLgrCl2k+sIw==", + "requires": { + "@babel/runtime": "^7.0.0", + "rss-parser": "3.7.0" + } + }, + "gatsby-telemetry": { + "version": "1.3.19", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-1.3.19.tgz", + "integrity": "sha512-pou+2FFmeZ+5hC3FNA8Nu50kLXViulWInWggdu3wi6OkeNTaIkHArCYuTH8hi71w2sv3/XZ1YKQZd7SMRUugLw==", + "requires": { + "@babel/code-frame": "^7.10.3", + "@babel/runtime": "^7.10.3", + "boxen": "^4.2.0", + "configstore": "^5.0.1", + "envinfo": "^7.5.1", + "fs-extra": "^8.1.0", + "gatsby-core-utils": "^1.3.12", + "git-up": "4.0.1", + "is-docker": "2.0.0", + "lodash": "^4.17.15", + "node-fetch": "2.6.0", + "uuid": "3.4.0" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + } + } + }, + "gatsby-theme-carbon": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/gatsby-theme-carbon/-/gatsby-theme-carbon-1.25.1.tgz", + "integrity": "sha512-mMHmYAi2Z5s+yyPNY2d7Oi4ry9BUzQy+F3wOB0v3B9tjiUhv3UmGOnnuXqAPyR3UH24e1eAgY5Gu6bFkP+IZug==", + "requires": { + "@carbon/elements": "^10.11.0", + "@carbon/icons-react": "^10.10.0", + "@emotion/core": "^10.0.10", + "@emotion/styled": "^10.0.11", + "@mdx-js/mdx": "^1.5.5", + "@mdx-js/react": "^1.5.5", + "@reach/router": "^1.2.1", + "@vimeo/player": "^2.9.1", + "beautiful-react-hooks": "^0.23.1", + "carbon-components": "^10.11.2", + "carbon-components-react": "^7.11.3", + "carbon-icons": "^7.0.7", + "classnames": "^2.2.6", + "copy-to-clipboard": "^3.2.0", + "emotion-theming": "^10.0.10", + "focus-trap-react": "^6.0.0", + "gatsby": "^2.20.4", + "gatsby-plugin-catch-links": "^2.2.1", + "gatsby-plugin-emotion": "^4.2.1", + "gatsby-plugin-lunr": "^1.5.2", + "gatsby-plugin-manifest": "^2.3.2", + "gatsby-plugin-mdx": "^1.1.2", + "gatsby-plugin-react-helmet": "^3.2.1", + "gatsby-plugin-sass": "^2.2.1", + "gatsby-plugin-sass-resources": "^2.0.0", + "gatsby-plugin-sharp": "^2.5.3", + "gatsby-plugin-webpack-bundle-analyser-v2": "^1.1.8", + "gatsby-remark-copy-linked-files": "^2.2.1", + "gatsby-remark-images": "^3.2.1", + "gatsby-remark-responsive-iframe": "^2.3.1", + "gatsby-remark-smartypants": "^2.2.1", + "gatsby-remark-unwrap-images": "^1.0.1", + "gatsby-source-filesystem": "^2.2.2", + "gatsby-source-medium-feed": "^1.0.6", + "gatsby-transformer-yaml": "^2.3.1", + "lodash.throttle": "^4.1.1", + "mkdirp": "^1.0.3", + "node-sass": "^4.11.0", + "prism-react-renderer": "^1.0.2", + "prop-types": "^15.7.2", + "react": "^16.13.1", + "react-dom": "^16.13.1", + "react-helmet": "^6.0.0-beta", + "react-transition-group": "^4.3.0", + "remark-slug": "^6.0.0", + "slugify": "^1.3.4", + "smooth-scroll": "^16.1.3", + "use-media": "^1.4.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "gatsby-transformer-yaml": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/gatsby-transformer-yaml/-/gatsby-transformer-yaml-2.4.10.tgz", + "integrity": "sha512-jQwtyIn0pvT1GfmdxKUKgdJwgK/z8aVVN7wFeHuskhDwWzxCghB88ybyhS7gOF0ttyKNYjQIpwgwt9PnL+AJBQ==", + "requires": { + "@babel/runtime": "^7.10.3", + "js-yaml": "^3.14.0", + "lodash": "^4.17.15", + "unist-util-select": "^1.5.0" + } + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "requires": { + "globule": "^1.0.0" + } + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=" + }, + "get-proxy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz", + "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==", + "requires": { + "npm-conf": "^1.1.0" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "git-up": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz", + "integrity": "sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw==", + "requires": { + "is-ssh": "^1.3.0", + "parse-url": "^5.0.0" + } + }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + }, + "github-slugger": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz", + "integrity": "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==", + "requires": { + "emoji-regex": ">=6.0.0 <=6.1.1" + }, + "dependencies": { + "emoji-regex": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz", + "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=" + } + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "requires": { + "ini": "^1.3.4" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + } + }, + "globule": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", + "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "requires": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" + }, + "cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "requires": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + }, + "dependencies": { + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" + } + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" + }, + "keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "requires": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + } + }, + "p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + } + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" + }, + "graphql": { + "version": "14.7.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.7.0.tgz", + "integrity": "sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA==", + "requires": { + "iterall": "^1.2.2" + } + }, + "graphql-compose": { + "version": "6.3.8", + "resolved": "https://registry.npmjs.org/graphql-compose/-/graphql-compose-6.3.8.tgz", + "integrity": "sha512-o0/jzQEMIpSjryLKwmD1vGrCubiPxD0LxlGTgWDSu38TBepu2GhugC9gYgTEbtiCZAHPtvkZ90SzzABOWZyQLA==", + "requires": { + "graphql-type-json": "^0.2.4", + "object-path": "^0.11.4" + }, + "dependencies": { + "graphql-type-json": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.2.4.tgz", + "integrity": "sha512-/tq02ayMQjrG4oDFDRLLrPk0KvJXue0nVXoItBe7uAdbNXjQUu+HYCBdAmPLQoseVzUKKMzrhq2P/sfI76ON6w==" + } + } + }, + "graphql-config": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-2.2.2.tgz", + "integrity": "sha512-mtv1ejPyyR2mJUUZNhljggU+B/Xl8tJJWf+h145hB+1Y48acSghFalhNtXfPBcYl2tJzpb+lGxfj3O7OjaiMgw==", + "requires": { + "graphql-import": "^0.7.1", + "graphql-request": "^1.5.0", + "js-yaml": "^3.10.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.4" + } + }, + "graphql-import": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/graphql-import/-/graphql-import-0.7.1.tgz", + "integrity": "sha512-YpwpaPjRUVlw2SN3OPljpWbVRWAhMAyfSba5U47qGMOSsPLi2gYeJtngGpymjm9nk57RFWEpjqwh4+dpYuFAPw==", + "requires": { + "lodash": "^4.17.4", + "resolve-from": "^4.0.0" + } + }, + "graphql-playground-html": { + "version": "1.6.25", + "resolved": "https://registry.npmjs.org/graphql-playground-html/-/graphql-playground-html-1.6.25.tgz", + "integrity": "sha512-wMNvGsQ0OwBVhn72VVi7OdpI85IxiIZT43glRx7gQIwQ6NvhFnzMYBIVmcJAJ4UlXRYiWtrQhuOItDXObiR3kg==", + "requires": { + "xss": "^1.0.6" + } + }, + "graphql-playground-middleware-express": { + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.18.tgz", + "integrity": "sha512-EywRL+iBa4u//5YbY1iJxrl0n4IKyomBKgLXrMbG8gHJUwxmFs5FCWJJ4Q6moSn5Q3RgMZvrWzXB27lKwN8Kgw==", + "requires": { + "graphql-playground-html": "1.6.25" + } + }, + "graphql-request": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-1.8.2.tgz", + "integrity": "sha512-dDX2M+VMsxXFCmUX0Vo0TopIZIX4ggzOtiCsThgtrKR4niiaagsGTDIHj3fsOMFETpa064vzovI+4YV4QnMbcg==", + "requires": { + "cross-fetch": "2.2.2" + } + }, + "graphql-subscriptions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.1.0.tgz", + "integrity": "sha512-6WzlBFC0lWmXJbIVE8OgFgXIP4RJi3OQgTPa0DVMsDXdpRDjTsM1K9wfl5HSYX7R87QAGlvcv2Y4BIZa/ItonA==", + "requires": { + "iterall": "^1.2.1" + } + }, + "graphql-type-json": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz", + "integrity": "sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg==" + }, + "gray-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz", + "integrity": "sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==", + "requires": { + "js-yaml": "^3.11.0", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + } + }, + "gud": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", + "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" + }, + "gzip-size": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", + "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", + "requires": { + "duplexer": "^0.1.1" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hasha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", + "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", + "requires": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "dependencies": { + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + } + } + }, + "hast-to-hyperscript": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-7.0.4.tgz", + "integrity": "sha512-vmwriQ2H0RPS9ho4Kkbf3n3lY436QKLq6VaGA1pzBh36hBi3tm1DO9bR+kaJIbpT10UqaANDkMjxvjVfr+cnOA==", + "requires": { + "comma-separated-tokens": "^1.0.0", + "property-information": "^5.3.0", + "space-separated-tokens": "^1.0.0", + "style-to-object": "^0.2.1", + "unist-util-is": "^3.0.0", + "web-namespaces": "^1.1.2" + }, + "dependencies": { + "style-to-object": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.2.3.tgz", + "integrity": "sha512-1d/k4EY2N7jVLOqf2j04dTc37TPOv/hHxZmvpg8Pdh8UYydxeu/C1W1U4vD8alzf5V2Gt7rLsmkr4dxAlDm9ng==", + "requires": { + "inline-style-parser": "0.1.1" + } + } + } + }, + "hast-util-from-parse5": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz", + "integrity": "sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==", + "requires": { + "ccount": "^1.0.3", + "hastscript": "^5.0.0", + "property-information": "^5.0.0", + "web-namespaces": "^1.1.2", + "xtend": "^4.0.1" + } + }, + "hast-util-parse-selector": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz", + "integrity": "sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA==" + }, + "hast-util-raw": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-5.0.2.tgz", + "integrity": "sha512-3ReYQcIHmzSgMq8UrDZHFL0oGlbuVGdLKs8s/Fe8BfHFAyZDrdv1fy/AGn+Fim8ZuvAHcJ61NQhVMtyfHviT/g==", + "requires": { + "hast-util-from-parse5": "^5.0.0", + "hast-util-to-parse5": "^5.0.0", + "html-void-elements": "^1.0.0", + "parse5": "^5.0.0", + "unist-util-position": "^3.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + } + }, + "hast-util-to-parse5": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-5.1.2.tgz", + "integrity": "sha512-ZgYLJu9lYknMfsBY0rBV4TJn2xiwF1fXFFjbP6EE7S0s5mS8LIKBVWzhA1MeIs1SWW6GnnE4In6c3kPb+CWhog==", + "requires": { + "hast-to-hyperscript": "^7.0.0", + "property-information": "^5.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + } + }, + "hastscript": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz", + "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==", + "requires": { + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + } + }, + "header-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.3" + }, + "dependencies": { + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + } + } + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" + }, + "hicat": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/hicat/-/hicat-0.7.0.tgz", + "integrity": "sha1-pwTLP1fkn719OMLt16ujj/CzUmM=", + "requires": { + "highlight.js": "^8.1.0", + "minimist": "^0.2.0" + }, + "dependencies": { + "minimist": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.2.1.tgz", + "integrity": "sha512-GY8fANSrTMfBVfInqJAY41QkOM+upUTytK1jZ0c8+3HdHrJxBJ3rF5i9moClXTE8uUSnUo8cAsCoxDXvSY4DHg==" + } + } + }, + "highlight.js": { + "version": "8.9.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-8.9.1.tgz", + "integrity": "sha1-uKnFSTISqTkvAiK2SclhFJfr+4g=" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" + }, + "html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==" + }, + "html-tag-names": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/html-tag-names/-/html-tag-names-1.1.5.tgz", + "integrity": "sha512-aI5tKwNTBzOZApHIynaAwecLBv8TlZTEy/P4Sj2SzzAhBrGuI8yGZ0UIXVPQzOHGS+to2mjb04iy6VWt/8+d8A==" + }, + "html-void-elements": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", + "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==" + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "http-parser-js": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz", + "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==" + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + } + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + }, + "imagemin": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-6.1.0.tgz", + "integrity": "sha512-8ryJBL1CN5uSHpiBMX0rJw79C9F9aJqMnjGnrd/1CafegpNuA81RBAAru/jQQEOWlOJJlpRnlcVFF6wq+Ist0A==", + "requires": { + "file-type": "^10.7.0", + "globby": "^8.0.1", + "make-dir": "^1.0.0", + "p-pipe": "^1.1.0", + "pify": "^4.0.1", + "replace-ext": "^1.0.0" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + } + } + }, + "imagemin-mozjpeg": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.0.tgz", + "integrity": "sha512-+EciPiIjCb8JWjQNr1q8sYWYf7GDCNDxPYnkD11TNIjjWNzaV+oTg4DpOPQjl5ZX/KRCPMEgS79zLYAQzLitIA==", + "requires": { + "execa": "^1.0.0", + "is-jpg": "^2.0.0", + "mozjpeg": "^6.0.0" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + } + } + }, + "imagemin-pngquant": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/imagemin-pngquant/-/imagemin-pngquant-6.0.1.tgz", + "integrity": "sha512-Stk+fZCLxZznV8MFNA/T3AY/VRKevsiP9uZOLV0RCXoi0vUUFriySYuz/83IGp9D254EW8miGyyQ69zKouFr7w==", + "requires": { + "execa": "^0.10.0", + "is-png": "^1.0.0", + "is-stream": "^1.1.0", + "pngquant-bin": "^5.0.0" + }, + "dependencies": { + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + } + } + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "ink": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/ink/-/ink-2.7.1.tgz", + "integrity": "sha512-s7lJuQDJEdjqtaIWhp3KYHl6WV3J04U9zoQ6wVc+Xoa06XM27SXUY57qC5DO46xkF0CfgXMKkKNcgvSu/SAEpA==", + "requires": { + "ansi-escapes": "^4.2.1", + "arrify": "^2.0.1", + "auto-bind": "^4.0.0", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "is-ci": "^2.0.0", + "lodash.throttle": "^4.1.1", + "log-update": "^3.0.0", + "prop-types": "^15.6.2", + "react-reconciler": "^0.24.0", + "scheduler": "^0.18.0", + "signal-exit": "^3.0.2", + "slice-ansi": "^3.0.0", + "string-length": "^3.1.0", + "widest-line": "^3.1.0", + "wrap-ansi": "^6.2.0", + "yoga-layout-prebuilt": "^1.9.3" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==" + }, + "react-reconciler": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.24.0.tgz", + "integrity": "sha512-gAGnwWkf+NOTig9oOowqid9O0HjTDC+XVGBCAmJYYJ2A2cN/O4gDdIuuUQjv8A4v6GDwVfJkagpBBLW5OW9HSw==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.18.0" + } + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" + } + } + }, + "ink-box": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ink-box/-/ink-box-1.0.0.tgz", + "integrity": "sha512-wD2ldWX9lcE/6+flKbAJ0TZF7gKbTH8CRdhEor6DD8d+V0hPITrrGeST2reDBpCia8wiqHrdxrqTyafwtmVanA==", + "requires": { + "boxen": "^3.0.0", + "prop-types": "^15.7.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "boxen": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", + "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^2.4.2", + "cli-boxes": "^2.2.0", + "string-width": "^3.0.0", + "term-size": "^1.2.0", + "type-fest": "^0.3.0", + "widest-line": "^2.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "requires": { + "execa": "^0.7.0" + } + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "requires": { + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + } + } + }, + "ink-link": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ink-link/-/ink-link-1.1.0.tgz", + "integrity": "sha512-a716nYz4YDPu8UOA2PwabTZgTvZa3SYB/70yeXVmTOKFAEdMbJyGSVeNuB7P+aM2olzDj9AGVchA7W5QytF9uA==", + "requires": { + "prop-types": "^15.7.2", + "terminal-link": "^2.1.1" + } + }, + "ink-select-input": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/ink-select-input/-/ink-select-input-3.1.2.tgz", + "integrity": "sha512-PaLraGx8A54GhSkTNzZI8bgY0elAoa1jSPPe5Q52B5VutcBoJc4HE3ICDwsEGJ88l1Hw6AWjpeoqrq82a8uQPA==", + "requires": { + "arr-rotate": "^1.0.0", + "figures": "^2.0.0", + "lodash.isequal": "^4.5.0", + "prop-types": "^15.5.10" + }, + "dependencies": { + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + } + } + }, + "ink-spinner": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ink-spinner/-/ink-spinner-3.1.0.tgz", + "integrity": "sha512-sPqmE4qeJ43vJFk9DGLd0wIqhMBAr3129ZqHPt7b847fVl+YTZ3g96khI82Db+FYE7v/Fc5B3lp4ZNtJfqpRUg==", + "requires": { + "cli-spinners": "^1.0.0", + "prop-types": "^15.5.10" + } + }, + "inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + }, + "inquirer": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.0.tgz", + "integrity": "sha512-K+LZp6L/6eE5swqIcVXrxl21aGDU4S50gKH0/d96OMQnSBCyGyZl/oZhbkVmdp5sBoINHd4xZvFSARh2dk6DWA==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "internal-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", + "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", + "requires": { + "es-abstract": "^1.17.0-next.1", + "has": "^1.0.3", + "side-channel": "^1.0.2" + } + }, + "into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "requires": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" + }, + "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=", + "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=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + }, + "is-alphanumeric": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", + "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=" + }, + "is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "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=", + "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==" + }, + "is-builtin-module": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.0.0.tgz", + "integrity": "sha512-/93sDihsAD652hrMEbJGbMAVBf1qc96kyThHQ0CAOONHaE3aROLpTjDe4WQ5aoC5ITHFxEq1z8XqSU7km+8amw==", + "requires": { + "builtin-modules": "^3.0.0" + } + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "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=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + }, + "is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "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==" + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-docker": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", + "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==" + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + }, + "dependencies": { + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "^1.0.1" + } + } + } + }, + "is-invalid-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", + "integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=", + "requires": { + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "is-jpg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz", + "integrity": "sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc=" + }, + "is-lower-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", + "requires": { + "lower-case": "^1.1.0" + }, + "dependencies": { + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + } + } + }, + "is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" + }, + "is-npm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", + "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "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=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "requires": { + "is-path-inside": "^2.1.0" + }, + "dependencies": { + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "requires": { + "path-is-inside": "^1.0.2" + } + } + } + }, + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + }, + "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==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-png": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz", + "integrity": "sha1-1XSxK/J1wDUEVVcLDltXqwYgd84=" + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-relative-url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-3.0.0.tgz", + "integrity": "sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA==", + "requires": { + "is-absolute-url": "^3.0.0" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + }, + "is-root": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz", + "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU=" + }, + "is-ssh": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz", + "integrity": "sha512-0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg==", + "requires": { + "protocols": "^1.1.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-upper-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "requires": { + "upper-case": "^1.1.0" + } + }, + "is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-valid-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", + "integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=", + "requires": { + "is-invalid-path": "^0.1.0" + } + }, + "is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==" + }, + "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==" + }, + "is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "iterall": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", + "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" + }, + "jest-diff": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", + "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", + "requires": { + "chalk": "^3.0.0", + "diff-sequences": "^25.2.6", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==" + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jimp": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.10.3.tgz", + "integrity": "sha512-meVWmDMtyUG5uYjFkmzu0zBgnCvvxwWNi27c4cg55vWNVC9ES4Lcwb+ogx+uBBQE3Q+dLKjXaLl0JVW+nUNwbQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/custom": "^0.10.3", + "@jimp/plugins": "^0.10.3", + "@jimp/types": "^0.10.3", + "core-js": "^3.4.1", + "regenerator-runtime": "^0.13.3" + } + }, + "jpeg-js": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz", + "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==" + }, + "js-base64": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.3.tgz", + "integrity": "sha512-fiUvdfCaAXoQTHdKMgTvg6IkecXDcVz6V5rlftUTclF9IKBjMizvSdQaCl/z/6TApDeby5NL+axYou3i0mu1Pg==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jsx-ast-utils": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz", + "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==", + "requires": { + "array-includes": "^3.1.1", + "object.assign": "^4.1.0" + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" + }, + "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==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "language-subtag-registry": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.20.tgz", + "integrity": "sha512-KPMwROklF4tEx283Xw0pNKtfTj1gZ4UByp4EsIFWLgBavJltF4TiYPc39k06zSTsLzxTVXXDSpbwaQXaFB4Qeg==" + }, + "language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "requires": { + "language-subtag-registry": "~0.3.2" + } + }, + "last-call-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", + "requires": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "requires": { + "package-json": "^6.3.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "requires": { + "leven": "^3.1.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + }, + "load-bmfont": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", + "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", + "requires": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^2.9.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + } + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "loader-fs-cache": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", + "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "requires": { + "find-up": "^1.0.0" + } + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lockfile": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", + "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", + "requires": { + "signal-exit": "^3.0.2" + } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + }, + "lodash.assignin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", + "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=" + }, + "lodash.bind": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", + "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=" + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + }, + "lodash.every": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.every/-/lodash.every-4.6.0.tgz", + "integrity": "sha1-64mYS+vENkJ5uzrvu9HKGb+mxqc=" + }, + "lodash.filter": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", + "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=" + }, + "lodash.findlast": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.findlast/-/lodash.findlast-4.6.0.tgz", + "integrity": "sha1-6ou3jPLn54BPyK630ZU+B/4x+8g=" + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" + }, + "lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" + }, + "lodash.maxby": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.maxby/-/lodash.maxby-4.6.0.tgz", + "integrity": "sha1-CCJABo88eiJ6oAqDgOTzjPB4bj0=" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=" + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" + }, + "lodash.reduce": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", + "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" + }, + "lodash.reject": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", + "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=" + }, + "lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" + }, + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, + "lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "log-update": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-3.4.0.tgz", + "integrity": "sha512-ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg==", + "requires": { + "ansi-escapes": "^3.2.0", + "cli-cursor": "^2.1.0", + "wrap-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + } + } + }, + "logalot": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", + "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=", + "requires": { + "figures": "^1.3.5", + "squeak": "^1.0.0" + }, + "dependencies": { + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + } + } + }, + "loglevel": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz", + "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==" + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "longest-streak": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", + "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-2.2.0.tgz", + "integrity": "sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ==", + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.2" + } + }, + "lower-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", + "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", + "requires": { + "tslib": "^1.10.0" + } + }, + "lower-case-first": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", + "requires": { + "lower-case": "^1.1.2" + }, + "dependencies": { + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + } + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lpad-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz", + "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=", + "requires": { + "get-stdin": "^4.0.1", + "indent-string": "^2.1.0", + "longest": "^1.0.0", + "meow": "^3.3.0" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "^2.0.0" + } + } + } + }, + "lru-cache": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.0.tgz", + "integrity": "sha1-tcvwFVbBaWb+vlTO7A+03JDfbCg=", + "requires": { + "pseudomap": "^1.0.1", + "yallist": "^2.0.0" + } + }, + "lunr": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.8.tgz", + "integrity": "sha512-oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg==" + }, + "lunr-languages": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.4.0.tgz", + "integrity": "sha512-YWfZDExJN/MJEVE/DbM4AuVRLsqeHi+q3wmECMsWjGIOkd5mr9DUNos7fv8f5do9VLRMYXIzFjn+N4+KPI9pQA==" + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" + }, + "markdown-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", + "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "requires": { + "repeat-string": "^1.0.0" + } + }, + "md5-file": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz", + "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==", + "requires": { + "buffer-alloc": "^1.1.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdast-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", + "requires": { + "unist-util-remove": "^2.0.0" + } + }, + "mdast-util-compact": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz", + "integrity": "sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==", + "requires": { + "unist-util-visit": "^2.0.0" + } + }, + "mdast-util-definitions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-3.0.1.tgz", + "integrity": "sha512-BAv2iUm/e6IK/b2/t+Fx69EL/AGcq/IG2S+HxHjDJGfLJtd6i9SZUS76aC9cig+IEucsqxKTR0ot3m933R3iuA==", + "requires": { + "unist-util-visit": "^2.0.0" + } + }, + "mdast-util-to-hast": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-9.1.0.tgz", + "integrity": "sha512-Akl2Vi9y9cSdr19/Dfu58PVwifPXuFt1IrHe7l+Crme1KvgUT+5z+cHLVcQVGCiNTZZcdqjnuv9vPkGsqWytWA==", + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.3", + "collapse-white-space": "^1.0.0", + "detab": "^2.0.0", + "mdast-util-definitions": "^3.0.0", + "mdurl": "^1.0.0", + "trim-lines": "^1.0.0", + "unist-builder": "^2.0.0", + "unist-util-generated": "^1.0.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^2.0.0" + } + }, + "mdast-util-to-nlcst": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-3.2.3.tgz", + "integrity": "sha512-hPIsgEg7zCvdU6/qvjcR6lCmJeRuIEpZGY5xBV+pqzuMOvQajyyF8b6f24f8k3Rw8u40GwkI3aAxUXr3bB2xag==", + "requires": { + "nlcst-to-string": "^2.0.0", + "repeat-string": "^1.5.2", + "unist-util-position": "^3.0.0", + "vfile-location": "^2.0.0" + }, + "dependencies": { + "vfile-location": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", + "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==" + } + } + }, + "mdast-util-to-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", + "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==" + }, + "mdast-util-toc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-toc/-/mdast-util-toc-3.1.0.tgz", + "integrity": "sha512-Za0hqL1PqWrvxGtA/3NH9D5nhGAUS9grMM4obEAz5+zsk1RIw/vWUchkaoDLNdrwk05A0CSC5eEXng36/1qE5w==", + "requires": { + "github-slugger": "^1.2.1", + "mdast-util-to-string": "^1.0.5", + "unist-util-is": "^2.1.2", + "unist-util-visit": "^1.1.0" + }, + "dependencies": { + "unist-util-is": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.3.tgz", + "integrity": "sha512-4WbQX2iwfr/+PfM4U3zd2VNXY+dWtZsN1fLnWEi2QQXA4qyDYAZcDMfXUX0Cu6XZUHHAO9q4nyxxLT4Awk1qUA==" + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "requires": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "requires": { + "unist-util-is": "^3.0.0" + }, + "dependencies": { + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" + } + } + } + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + }, + "meant": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/meant/-/meant-1.0.1.tgz", + "integrity": "sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==" + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "mini-css-extract-plugin": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz", + "integrity": "sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw==", + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "requires": { + "is-plain-obj": "^1.0.0" + } + } + } + }, + "mini-svg-data-uri": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.2.3.tgz", + "integrity": "sha512-zd6KCAyXgmq6FV1mR10oKXYtvmA9vRoB6xPSTUJTbFApCtkefDnYueVR1gkof3KcdLZo1Y8mjF2DFmQMIxsHNQ==" + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minizlib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", + "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mitt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==" + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "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==", + "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==", + "requires": { + "minimist": "^1.2.5" + } + }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, + "moment": { + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz", + "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==" + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "mozjpeg": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/mozjpeg/-/mozjpeg-6.0.1.tgz", + "integrity": "sha512-9Z59pJMi8ni+IUvSH5xQwK5tNLw7p3dwDNCZ3o1xE+of3G5Hc/yOz6Ue/YuLiBXU3ZB5oaHPURyPdqfBX/QYJA==", + "requires": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.0", + "logalot": "^2.1.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "name-all-modules-plugin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/name-all-modules-plugin/-/name-all-modules-plugin-1.0.1.tgz", + "integrity": "sha1-Cr+2rYNXGLn7Te8GdOBmV6lUN1w=" + }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "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" + } + }, + "napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + }, + "native-promise-only": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", + "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE=" + }, + "native-url": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/native-url/-/native-url-0.2.6.tgz", + "integrity": "sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA==", + "requires": { + "querystring": "^0.2.0" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "nlcst-to-string": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-2.0.4.tgz", + "integrity": "sha512-3x3jwTd6UPG7vi5k4GEzvxJ5rDA7hVUIRNHPblKuMVP9Z3xmlsd9cgLcpAMkc5uPOBna82EeshROFhsPkbnTZg==" + }, + "no-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", + "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", + "requires": { + "lower-case": "^2.0.1", + "tslib": "^1.10.0" + } + }, + "node-abi": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.18.0.tgz", + "integrity": "sha512-yi05ZoiuNNEbyT/xXfSySZE+yVnQW6fxPZuFbLyS1s6b5Kw3HzV2PHOM4XR+nsjzkHxByK+2Wg+yCQbe35l8dw==", + "requires": { + "semver": "^5.4.1" + } + }, + "node-addon-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.0.tgz", + "integrity": "sha512-sSHCgWfJ+Lui/u+0msF3oyCgvdkhxDbkCS6Q8uiJquzOimkJBvX6hl5aSSA7DR1XbMpdM8r7phjcF63sF4rkKg==" + }, + "node-emoji": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", + "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", + "requires": { + "lodash.toarray": "^4.4.0" + } + }, + "node-eta": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/node-eta/-/node-eta-0.9.0.tgz", + "integrity": "sha1-n7CwmbzSoCGUDmA8ZCVNwAPZp6g=" + }, + "node-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", + "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=" + }, + "node-forge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", + "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==" + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + } + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "node-object-hash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.0.0.tgz", + "integrity": "sha512-VZR0zroAusy1ETZMZiGeLkdu50LGjG5U1KHZqTruqtTyQ2wfWhHG2Ow4nsUbfTFGlaREgNHcCWoM/OzEm6p+NQ==" + }, + "node-releases": { + "version": "1.1.59", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz", + "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==" + }, + "node-sass": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "requires": { + "glob": "^7.1.2" + } + } + } + }, + "noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "noop-logger": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", + "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" + }, + "npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "requires": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "requires": { + "boolbase": "~1.0.0" + } + }, + "null-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-3.0.0.tgz", + "integrity": "sha512-hf5sNLl8xdRho4UPBOOeoIwT3WhjYcMUQm0zj44EhD6UscMAz72o2udpoDFBgykucdEDGIcd6SXbc/G6zssbzw==", + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "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=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==" + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" + }, + "object-is": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", + "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-path": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz", + "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.entries": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", + "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "has": "^1.0.3" + } + }, + "object.fromentries": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", + "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "requires": { + "is-wsl": "^1.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + } + } + }, + "opener": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", + "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==" + }, + "opentracing": { + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.4.tgz", + "integrity": "sha512-nNnZDkUNExBwEpb7LZaeMeQgvrlO8l4bgY/LvGNZCR0xG/dGWqHqjKrAmR5GUoYo0FIz38kxasvA1aevxWs2CA==" + }, + "opn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz", + "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", + "requires": { + "is-wsl": "^1.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + } + } + }, + "optimize-css-assets-webpack-plugin": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz", + "integrity": "sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==", + "requires": { + "cssnano": "^4.1.10", + "last-call-webpack-plugin": "^3.0.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "os-filter-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz", + "integrity": "sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==", + "requires": { + "arch": "^2.1.0" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "p-defer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==" + }, + "p-event": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz", + "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=", + "requires": { + "p-timeout": "^1.1.1" + }, + "dependencies": { + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "^1.0.0" + } + } + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-map-series": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz", + "integrity": "sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=", + "requires": { + "p-reduce": "^1.0.0" + } + }, + "p-pipe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz", + "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=" + }, + "p-queue": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-5.0.0.tgz", + "integrity": "sha512-6QfeouDf236N+MAxHch0CVIy8o/KBnmhttKjxZoOkUlzqU+u9rZgEyXH3OdckhTgawbqf5rpzmyR+07+Lv0+zg==", + "requires": { + "eventemitter3": "^3.1.0" + } + }, + "p-reduce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "requires": { + "retry": "^0.12.0" + } + }, + "p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "requires": { + "no-case": "^2.2.0" + }, + "dependencies": { + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + } + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" + }, + "parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" + }, + "parse-bmfont-xml": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", + "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", + "requires": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.4.5" + } + }, + "parse-english": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/parse-english/-/parse-english-4.1.3.tgz", + "integrity": "sha512-IQl1v/ik9gw437T8083coohMihae0rozpc7JYC/9h6hi9xKBSxFwh5HWRpzVC2ZhEs2nUlze2aAktpNBJXdJKA==", + "requires": { + "nlcst-to-string": "^2.0.0", + "parse-latin": "^4.0.0", + "unist-util-modify-children": "^1.0.0", + "unist-util-visit-children": "^1.0.0" + } + }, + "parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "parse-headers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" + }, + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "parse-latin": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-4.2.1.tgz", + "integrity": "sha512-7T9g6mIsFFpLlo0Zzb2jLWdCt+H9Qtf/hRmMYFi/Mq6Ovi+YKo+AyDFX3OhFfu0vXX5Nid9FKJGKSSzNcTkWiA==", + "requires": { + "nlcst-to-string": "^2.0.0", + "unist-util-modify-children": "^1.0.0", + "unist-util-visit-children": "^1.0.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + }, + "parse-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.1.tgz", + "integrity": "sha512-d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA==", + "requires": { + "is-ssh": "^1.3.0", + "protocols": "^1.4.0" + } + }, + "parse-url": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-5.0.1.tgz", + "integrity": "sha512-flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg==", + "requires": { + "is-ssh": "^1.3.0", + "normalize-url": "^3.3.0", + "parse-path": "^4.0.0", + "protocols": "^1.4.0" + } + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", + "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", + "requires": { + "no-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "password-prompt": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz", + "integrity": "sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==", + "requires": { + "ansi-escapes": "^3.1.0", + "cross-spawn": "^6.0.5" + } + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "path-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", + "requires": { + "no-case": "^2.2.0" + }, + "dependencies": { + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + } + } + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "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==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "phin": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" + }, + "physical-cpu-count": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", + "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=" + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", + "requires": { + "pngjs": "^3.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + } + }, + "pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" + }, + "pngquant-bin": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-5.0.2.tgz", + "integrity": "sha512-OLdT+4JZx5BqE1CFJkrvomYV0aSsv6x2Bba+aWaVc0PMfWlE+ZByNKYAdKeIqsM4uvW1HOSEHnf8KcOnykPNxA==", + "requires": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.1", + "execa": "^0.10.0", + "logalot": "^2.0.0" + }, + "dependencies": { + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + } + } + }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "portfinder": { + "version": "1.0.26", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz", + "integrity": "sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ==", + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + } + } + }, + "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=" + }, + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", + "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==", + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-flexbugs-fixes": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz", + "integrity": "sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==", + "requires": { + "postcss": "^7.0.26" + } + }, + "postcss-load-config": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", + "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, + "potrace": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/potrace/-/potrace-2.1.6.tgz", + "integrity": "sha512-sXdIDGZAb3x1GSnyps7VxksRoy57/ch+kq7J79L5UPUHU5KRIJF9oLJQeRVyYlOPjois+gMxVfNJkQjSkK9xMA==", + "requires": { + "jimp": "^0.10.2" + } + }, + "prebuild-install": { + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.5.tgz", + "integrity": "sha512-YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw==", + "requires": { + "detect-libc": "^1.0.3", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp": "^0.5.1", + "napi-build-utils": "^1.0.1", + "node-abi": "^2.7.0", + "noop-logger": "^0.1.1", + "npmlog": "^4.0.1", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^3.0.3", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0", + "which-pm-runs": "^1.0.0" + }, + "dependencies": { + "decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "requires": { + "mimic-response": "^2.0.0" + } + }, + "mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" + }, + "simple-get": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", + "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "requires": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, + "prettier": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz", + "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==" + }, + "pretty-bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", + "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==" + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "requires": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } + } + }, + "prism-react-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.1.1.tgz", + "integrity": "sha512-MgMhSdHuHymNRqD6KM3eGS0PNqgK9q4QF5P0yoQQvpB6jNjeSAi3jcSAz0Sua/t9fa4xDOMar9HJbLa08gl9ug==" + }, + "probe-image-size": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-4.1.1.tgz", + "integrity": "sha512-42LqKZqTLxH/UvAZ2/cKhAsR4G/Y6B7i7fI2qtQu9hRBK4YjS6gqO+QRtwTjvojUx4+/+JuOMzLoFyRecT9qRw==", + "requires": { + "any-promise": "^1.3.0", + "deepmerge": "^4.0.0", + "inherits": "^2.0.3", + "next-tick": "^1.0.0", + "request": "^2.83.0", + "stream-parser": "~0.3.1" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "prompts": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", + "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.4" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "proper-lockfile": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.1.tgz", + "integrity": "sha512-1w6rxXodisVpn7QYvLk706mzprPTAPCYAqxMvctmPN3ekuRk/kuGkGc82pangZiAt4R3lwSuUzheTTn0/Yb7Zg==", + "requires": { + "graceful-fs": "^4.1.11", + "retry": "^0.12.0", + "signal-exit": "^3.0.2" + } + }, + "property-information": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.5.0.tgz", + "integrity": "sha512-RgEbCx2HLa1chNgvChcx+rrCWD0ctBmGSE0M7lVm1yyv4UbvbrWoXp/BkVLZefzjrRBGW8/Js6uh/BnlHXFyjA==", + "requires": { + "xtend": "^4.0.0" + } + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" + }, + "protocols": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.7.tgz", + "integrity": "sha512-Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg==" + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "query-string": { + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.13.1.tgz", + "integrity": "sha512-RfoButmcK+yCta1+FuU8REvisx1oEzhMKwhLUNcepQTPGcNMp1sIqjnfCtfnvGSQZQEhaBHvccujtWoUV3TTbA==", + "requires": { + "decode-uri-component": "^0.2.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "dependencies": { + "strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" + } + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "querystringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + } + } + }, + "raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=" + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + } + } + }, + "react": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", + "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-dev-utils": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-4.2.3.tgz", + "integrity": "sha512-uvmkwl5uMexCmC0GUv1XGQP0YjfYePJufGg4YYiukhqk2vN1tQxwWJIBERqhOmSi80cppZg8mZnPP/kOMf1sUQ==", + "requires": { + "address": "1.0.3", + "babel-code-frame": "6.26.0", + "chalk": "1.1.3", + "cross-spawn": "5.1.0", + "detect-port-alt": "1.1.3", + "escape-string-regexp": "1.0.5", + "filesize": "3.5.11", + "global-modules": "1.0.0", + "gzip-size": "3.0.0", + "inquirer": "3.3.0", + "is-root": "1.0.0", + "opn": "5.1.0", + "react-error-overlay": "^3.0.0", + "recursive-readdir": "2.2.1", + "shell-quote": "1.6.1", + "sockjs-client": "1.1.4", + "strip-ansi": "3.0.1", + "text-table": "0.2.0" + }, + "dependencies": { + "address": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz", + "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "detect-port-alt": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.3.tgz", + "integrity": "sha1-pNLwYddXoDTs83xRQmCph1DysTE=", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + } + } + }, + "react-dom": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", + "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + }, + "dependencies": { + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + } + } + }, + "react-error-overlay": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-3.0.0.tgz", + "integrity": "sha512-XzgvowFrwDo6TWcpJ/WTiarb9UI6lhA4PMzS7n1joK3sHfBBBOQHUc0U4u57D6DWO9vHv6lVSWx2Q/Ymfyv4hw==" + }, + "react-fast-compare": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" + }, + "react-helmet": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", + "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", + "requires": { + "object-assign": "^4.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.1.1", + "react-side-effect": "^2.1.0" + } + }, + "react-hot-loader": { + "version": "4.12.21", + "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.21.tgz", + "integrity": "sha512-Ynxa6ROfWUeKWsTHxsrL2KMzujxJVPjs385lmB2t5cHUxdoRPGind9F00tOkdc1l5WBleOF4XEAMILY1KPIIDA==", + "requires": { + "fast-levenshtein": "^2.0.6", + "global": "^4.3.0", + "hoist-non-react-statics": "^3.3.0", + "loader-utils": "^1.1.0", + "prop-types": "^15.6.1", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.1.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "react-reconciler": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.25.1.tgz", + "integrity": "sha512-R5UwsIvRcSs3w8n9k3tBoTtUHdVhu9u84EG7E5M0Jk9F5i6DA1pQzPfUZd6opYWGy56MJOtV3VADzy6DRwYDjw==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + }, + "dependencies": { + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + } + } + }, + "react-refresh": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.7.2.tgz", + "integrity": "sha512-u5l7fhAJXecWUJzVxzMRU2Zvw8m4QmDNHlTrT5uo3KBlYBhmChd7syAakBoay1yIiVhx/8Fi7a6v6kQZfsw81Q==" + }, + "react-side-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.0.tgz", + "integrity": "sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg==" + }, + "react-transition-group": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", + "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, + "read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "requires": { + "mute-stream": "~0.0.4" + } + }, + "read-chunk": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", + "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", + "requires": { + "pify": "^4.0.1", + "with-open-file": "^0.1.6" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "dependencies": { + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "recursive-readdir": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.1.tgz", + "integrity": "sha1-kO8jHQd4xc4JPJpI105cVCLROpk=", + "requires": { + "minimatch": "3.0.3" + }, + "dependencies": { + "minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", + "requires": { + "brace-expansion": "^1.0.0" + } + } + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "^2.0.0" + } + } + } + }, + "redux": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", + "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", + "requires": { + "loose-envify": "^1.4.0", + "symbol-observable": "^1.2.0" + } + }, + "redux-thunk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", + "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==" + }, + "regenerate": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", + "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==" + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==" + }, + "regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "registry-auth-token": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", + "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "requires": { + "rc": "^1.2.8" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "remark": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz", + "integrity": "sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==", + "requires": { + "remark-parse": "^6.0.0", + "remark-stringify": "^6.0.0", + "unified": "^7.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==" + }, + "mdast-util-compact": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz", + "integrity": "sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==", + "requires": { + "unist-util-visit": "^1.1.0" + } + }, + "parse-entities": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", + "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "remark-stringify": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-6.0.4.tgz", + "integrity": "sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==", + "requires": { + "ccount": "^1.0.0", + "is-alphanumeric": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "longest-streak": "^2.0.1", + "markdown-escapes": "^1.0.0", + "markdown-table": "^1.1.0", + "mdast-util-compact": "^1.0.0", + "parse-entities": "^1.0.2", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "stringify-entities": "^1.0.1", + "unherit": "^1.0.4", + "xtend": "^4.0.1" + } + }, + "stringify-entities": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz", + "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==", + "requires": { + "character-entities-html4": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "unified": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz", + "integrity": "sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==", + "requires": { + "@types/unist": "^2.0.0", + "@types/vfile": "^3.0.0", + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^1.1.0", + "trough": "^1.0.0", + "vfile": "^3.0.0", + "x-is-string": "^0.1.0" + } + }, + "unist-util-stringify-position": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", + "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==" + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "requires": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "requires": { + "unist-util-is": "^3.0.0" + } + }, + "vfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz", + "integrity": "sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==", + "requires": { + "is-buffer": "^2.0.0", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^1.0.0", + "vfile-message": "^1.0.0" + } + }, + "vfile-message": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", + "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", + "requires": { + "unist-util-stringify-position": "^1.1.1" + } + } + } + }, + "remark-footnotes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-1.0.0.tgz", + "integrity": "sha512-X9Ncj4cj3/CIvLI2Z9IobHtVi8FVdUrdJkCNaL9kdX8ohfsi18DXHsCVd/A7ssARBdccdDb5ODnt62WuEWaM/g==" + }, + "remark-mdx": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.6.tgz", + "integrity": "sha512-BkR7SjP+3OvrCsWGlYy1tWEsZ8aQ86x+i7XWbW79g73Ws/cCaeVsEn0ZxAzzoTRH+PJWVU7Mbe64GdejEyKr2g==", + "requires": { + "@babel/core": "7.9.6", + "@babel/helper-plugin-utils": "7.8.3", + "@babel/plugin-proposal-object-rest-spread": "7.9.6", + "@babel/plugin-syntax-jsx": "7.8.3", + "@mdx-js/util": "^1.6.6", + "is-alphabetical": "1.0.4", + "remark-parse": "8.0.2", + "unified": "9.0.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz", + "integrity": "sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.9.5" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", + "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" + }, + "remark-parse": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.2.tgz", + "integrity": "sha512-eMI6kMRjsAGpMXXBAywJwiwAse+KNpmt+BK55Oofy4KvBZEqUDj6mWbGLJZrujoPIPPxDXzn3T9baRlpsm2jnQ==", + "requires": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + } + }, + "unified": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.0.0.tgz", + "integrity": "sha512-ssFo33gljU3PdlWLjNp15Inqb77d6JnJSfyplGJPT/a+fNRNyCBeveBAYJdO5khKdF6WVHa/yYCC7Xl6BDwZUQ==", + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + } + } + } + }, + "remark-parse": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-6.0.3.tgz", + "integrity": "sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==", + "requires": { + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.1.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" + }, + "dependencies": { + "parse-entities": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", + "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "unist-util-remove-position": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz", + "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==", + "requires": { + "unist-util-visit": "^1.1.0" + } + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "requires": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "requires": { + "unist-util-is": "^3.0.0" + } + }, + "vfile-location": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", + "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==" + } + } + }, + "remark-retext": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/remark-retext/-/remark-retext-3.1.3.tgz", + "integrity": "sha512-UujXAm28u4lnUvtOZQFYfRIhxX+auKI9PuA2QpQVTT7gYk1OgX6o0OUrSo1KOa6GNrFX+OODOtS5PWIHPxM7qw==", + "requires": { + "mdast-util-to-nlcst": "^3.2.0" + } + }, + "remark-slug": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/remark-slug/-/remark-slug-6.0.0.tgz", + "integrity": "sha512-ln67v5BrGKHpETnm6z6adlJPhESFJwfuZZ3jrmi+lKTzeZxh2tzFzUfDD4Pm2hRGOarHLuGToO86MNMZ/hA67Q==", + "requires": { + "github-slugger": "^1.0.0", + "mdast-util-to-string": "^1.0.0", + "unist-util-visit": "^2.0.0" + } + }, + "remark-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", + "requires": { + "mdast-squeeze-paragraphs": "^4.0.0" + } + }, + "remark-stringify": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.0.tgz", + "integrity": "sha512-FSPZv1ds76oAZjurhhuV5qXSUSoz6QRPuwYK38S41sLHwg4oB7ejnmZshj7qwjgYLf93kdz6BOX9j5aidNE7rA==", + "requires": { + "ccount": "^1.0.0", + "is-alphanumeric": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "longest-streak": "^2.0.1", + "markdown-escapes": "^1.0.0", + "markdown-table": "^2.0.0", + "mdast-util-compact": "^2.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "stringify-entities": "^3.0.0", + "unherit": "^1.0.4", + "xtend": "^4.0.1" + } + }, + "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=" + }, + "renderkid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", + "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", + "requires": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha1-rW8wwTvs15cBDEaK+ndcDAprR/o=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + } + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "retext": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/retext/-/retext-5.0.0.tgz", + "integrity": "sha1-XZAYxKZ31hA8FCNi129Q6x05i/Y=", + "requires": { + "retext-latin": "^2.0.0", + "retext-stringify": "^2.0.0", + "unified": "^6.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "unified": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", + "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^1.1.0", + "trough": "^1.0.0", + "vfile": "^2.0.0", + "x-is-string": "^0.1.0" + } + }, + "unist-util-stringify-position": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", + "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==" + }, + "vfile": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", + "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", + "requires": { + "is-buffer": "^1.1.4", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^1.0.0", + "vfile-message": "^1.0.0" + } + }, + "vfile-message": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", + "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", + "requires": { + "unist-util-stringify-position": "^1.1.1" + } + } + } + }, + "retext-english": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/retext-english/-/retext-english-3.0.4.tgz", + "integrity": "sha512-yr1PgaBDde+25aJXrnt3p1jvT8FVLVat2Bx8XeAWX13KXo8OT+3nWGU3HWxM4YFJvmfqvJYJZG2d7xxaO774gw==", + "requires": { + "parse-english": "^4.0.0", + "unherit": "^1.0.4" + } + }, + "retext-latin": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-2.0.4.tgz", + "integrity": "sha512-fOoSSoQgDZ+l/uS81oxI3alBghDUPja0JEl0TpQxI6MN+dhM6fLFumPJwMZ4PJTyL5FFAgjlsdv8IX+6IRuwMw==", + "requires": { + "parse-latin": "^4.0.0", + "unherit": "^1.0.4" + } + }, + "retext-smartypants": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-3.0.3.tgz", + "integrity": "sha512-/0fIipYayOvvucn3yjxvWwyT9P6p8gbpqdqUQNs1+L7av2hxatmiA9sk+fygJSDn5OXRyhBzcezvTbEmEabfIQ==", + "requires": { + "nlcst-to-string": "^2.0.0", + "unist-util-visit": "^1.0.0" + }, + "dependencies": { + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "requires": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "requires": { + "unist-util-is": "^3.0.0" + } + } + } + }, + "retext-stringify": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-2.0.4.tgz", + "integrity": "sha512-xOtx5mFJBoT3j7PBtiY2I+mEGERNniofWktI1cKXvjMEJPOuqve0dghLHO1+gz/gScLn4zqspDGv4kk2wS5kSA==", + "requires": { + "nlcst-to-string": "^2.0.0" + } + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rss-parser": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/rss-parser/-/rss-parser-3.7.0.tgz", + "integrity": "sha512-xN1fwjVxBO0unbrUAOIUK5MAyEaaZTpKWnPY+d3QYigIG4awtbdqxHPOLuOwsTIJFsaKC78nPxIGRJG92p86Hw==", + "requires": { + "entities": "^1.1.1", + "xml2js": "^0.4.19" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + } + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + }, + "run-parallel": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "^1.1.1" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "requires": { + "rx-lite": "*" + } + }, + "rxjs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz", + "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==", + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "sass-loader": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz", + "integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==", + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.0.1", + "neo-async": "^2.5.0", + "pify": "^4.0.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "sass-resources-loader": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/sass-resources-loader/-/sass-resources-loader-1.3.5.tgz", + "integrity": "sha512-pCxaoRZxbKxDWhu5ZcsV7/apPYrL/z0F+25C29L4e8pajWM/4jM4hRXSRP4jEWTXo/kYIU9bEXKZZdGfjN90+Q==", + "requires": { + "async": "^2.1.4", + "chalk": "^1.1.3", + "glob": "^7.1.1", + "loader-utils": "^1.0.4" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "scheduler": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", + "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "requires": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "seek-bzip": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", + "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", + "requires": { + "commander": "~2.8.1" + }, + "dependencies": { + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "requires": { + "graceful-readlink": ">= 1.0.0" + } + } + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "selfsigned": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", + "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", + "requires": { + "node-forge": "0.9.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "requires": { + "semver": "^5.0.3" + } + }, + "semver-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", + "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==" + }, + "semver-truncate": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", + "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=", + "requires": { + "semver": "^5.3.0" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "sentence-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", + "requires": { + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" + }, + "dependencies": { + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + } + } + }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "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==", + "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=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "shallow-compare": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/shallow-compare/-/shallow-compare-1.2.2.tgz", + "integrity": "sha512-LUMFi+RppPlrHzbqmFnINTrazo0lPNwhcgzuAXVVcfy/mqPDrQmHAyz5bvV0gDAuRFrk804V0HpQ6u9sZ0tBeg==" + }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "sharp": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.25.4.tgz", + "integrity": "sha512-umSzJJ1oBwIOfwFFt/fJ7JgCva9FvrEU2cbbm7u/3hSDZhXvkME8WE5qpaJqLIe2Har5msF5UG4CzYlEg5o3BQ==", + "requires": { + "color": "^3.1.2", + "detect-libc": "^1.0.3", + "node-addon-api": "^3.0.0", + "npmlog": "^4.1.2", + "prebuild-install": "^5.3.4", + "semver": "^7.3.2", + "simple-get": "^4.0.0", + "tar": "^6.0.2", + "tunnel-agent": "^0.6.0" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "requires": { + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" + } + }, + "side-channel": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz", + "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==", + "requires": { + "es-abstract": "^1.17.0-next.1", + "object-inspect": "^1.7.0" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" + }, + "simple-get": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.0.tgz", + "integrity": "sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ==", + "requires": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + }, + "dependencies": { + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } + } + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + } + } + }, + "single-trailing-newline": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/single-trailing-newline/-/single-trailing-newline-1.0.0.tgz", + "integrity": "sha1-gfCtKtZFGBlFyAlSpcFBSZLulmQ=", + "requires": { + "detect-newline": "^1.0.3" + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "slugify": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.4.tgz", + "integrity": "sha512-N2+9NJ8JzfRMh6PQLrBeDEnVDQZSytE/W4BTC4fNNPmO90Uu58uNwSlIJSs+lmPgWsaAF79WLhVPe5tuy7spjw==" + }, + "smooth-scroll": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/smooth-scroll/-/smooth-scroll-16.1.3.tgz", + "integrity": "sha512-ca9U+neJS/cbdScTBuUTCZvUWNF2EuMCk7oAx3ImdeRK5FPm+xRo9XsVHIkeEVkn7MBRx+ufVEhyveM4ZhaTGA==" + }, + "snake-case": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", + "requires": { + "no-case": "^2.2.0" + }, + "dependencies": { + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + } + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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==", + "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=", + "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=", + "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=" + } + } + }, + "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==", + "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=", + "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==", + "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==", + "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==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", + "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", + "requires": { + "debug": "~4.1.0", + "engine.io": "~3.4.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.3.0", + "socket.io-parser": "~3.4.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" + }, + "socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + }, + "socket.io-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", + "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + } + } + }, + "socket.io-parser": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", + "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "requires": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" + } + } + }, + "sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + }, + "dependencies": { + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "requires": { + "websocket-extensions": ">=0.1.1" + } + } + } + }, + "sockjs-client": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", + "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", + "requires": { + "debug": "^2.6.6", + "eventsource": "0.1.6", + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "requires": { + "is-plain-obj": "^1.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + } + } + }, + "sort-keys-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", + "requires": { + "sort-keys": "^1.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "requires": { + "is-plain-obj": "^1.0.0" + } + } + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "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==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "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=" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" + }, + "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==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "squeak": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", + "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=", + "requires": { + "chalk": "^1.0.0", + "console-stream": "^0.1.1", + "lpad-align": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "st": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/st/-/st-2.0.0.tgz", + "integrity": "sha512-drN+aGYnrZPNYIymmNwIY7LXYJ8MqsqXj4fMRue3FOgGMdGjSX10fhJ3qx0sVQPhcWxhEaN4U/eWM4O4dbYNAw==", + "requires": { + "async-cache": "^1.1.0", + "bl": "^4.0.0", + "fd": "~0.0.2", + "graceful-fs": "^4.2.3", + "mime": "^2.4.4", + "negotiator": "~0.6.2" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" + }, + "stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", + "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==" + }, + "state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "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=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "static-site-generator-webpack-plugin": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-3.4.2.tgz", + "integrity": "sha512-39Kn+fZDVjolLYuX5y1rDvksJIW0QEUaEC/AVO/UewNXxGzoSQI1UYnRsL+ocAcN5Yti6d6rJgEL0qZ5tNXfdw==", + "requires": { + "bluebird": "^3.0.5", + "cheerio": "^0.22.0", + "eval": "^0.1.0", + "url": "^0.11.0", + "webpack-sources": "^0.2.0" + }, + "dependencies": { + "source-list-map": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-1.1.2.tgz", + "integrity": "sha1-mIkBnRAkzOVc3AaUmDN+9hhqEaE=" + }, + "webpack-sources": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.2.3.tgz", + "integrity": "sha1-F8Yr+vE8cH+dAsR54Nzd6DgGl/s=", + "requires": { + "source-list-map": "^1.1.1", + "source-map": "~0.5.3" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=", + "requires": { + "debug": "2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string-length": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", + "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", + "requires": { + "astral-regex": "^1.0.0", + "strip-ansi": "^5.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "string-similarity": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-1.2.2.tgz", + "integrity": "sha512-IoHUjcw3Srl8nsPlW04U3qwWPk3oG2ffLM0tN853d/E/JlIvcmZmDY2Kz5HzKp4lEi2T7QD7Zuvjq/1rDw+XcQ==", + "requires": { + "lodash.every": "^4.6.0", + "lodash.flattendeep": "^4.4.0", + "lodash.foreach": "^4.5.0", + "lodash.map": "^4.6.0", + "lodash.maxby": "^4.6.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.matchall": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", + "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "has-symbols": "^1.0.1", + "internal-slot": "^1.0.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.2" + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringify-entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.0.1.tgz", + "integrity": "sha512-Lsk3ISA2++eJYqBMPKcr/8eby1I6L0gP0NlxF8Zja6c05yr/yCYyb2c9PwXjd08Ib3If1vn1rbs1H5ZtVuOfvQ==", + "requires": { + "character-entities-html4": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.2", + "is-hexadecimal": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=" + }, + "strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "requires": { + "is-natural-number": "^4.0.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "^4.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==" + }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "style-loader": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", + "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "style-to-object": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", + "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", + "requires": { + "inline-style-parser": "0.1.1" + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "subscriptions-transport-ws": { + "version": "0.9.16", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.16.tgz", + "integrity": "sha512-pQdoU7nC+EpStXnCfh/+ho0zE0Z+ma+i7xvj7bkXKb1dvYHSZxgRPaU6spRP+Bjzow67c/rRDoix5RT0uU9omw==", + "requires": { + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0" + }, + "dependencies": { + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "sudo-prompt": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", + "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", + "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "svg-tag-names": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/svg-tag-names/-/svg-tag-names-2.0.1.tgz", + "integrity": "sha512-BEZ508oR+X/b5sh7bT0RqDJ7GhTpezjj3P1D4kugrOaPs6HijviWksoQ63PS81vZn0QCjZmVKjHDBniTo+Domg==" + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-what": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz", + "integrity": "sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==" + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + } + } + }, + "swap-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", + "requires": { + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" + }, + "dependencies": { + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + } + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, + "tabbable": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-3.1.2.tgz", + "integrity": "sha512-wjB6puVXTYO0BSFtCmWQubA/KIn7Xvajw0x0l6eJUudMG/EAiJvIUnyNX6xO4NpGrJ16lbD0eUseB9WxW0vlpQ==" + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + }, + "tar": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz", + "integrity": "sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "tar-fs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz", + "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==", + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.0.0" + } + }, + "tar-stream": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.3.tgz", + "integrity": "sha512-Z9yri56Dih8IaK8gncVPx4Wqt86NDmQTSh49XLZgjWpGZL9GK9HKParS2scqHCC4w6X9Gh2jwaU45V47XTKwVA==", + "requires": { + "bl": "^4.0.1", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=" + }, + "tempfile": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz", + "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=", + "requires": { + "temp-dir": "^1.0.0", + "uuid": "^3.0.1" + } + }, + "term-size": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", + "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==" + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "requires": { + "type-fest": "^0.11.0" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" + } + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", + "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timm": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/timm/-/timm-1.6.2.tgz", + "integrity": "sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw==" + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" + }, + "tinycolor2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", + "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" + }, + "title-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.0.3" + }, + "dependencies": { + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + } + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "requires": { + "rimraf": "^3.0.0" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "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=", + "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=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "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": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + }, + "trim-lines": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-1.1.3.tgz", + "integrity": "sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA==" + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "trim-trailing-lines": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz", + "integrity": "sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA==" + }, + "trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" + }, + "true-case-path": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", + "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==" + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==" + }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "requires": { + "tslib": "^1.8.1" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "type-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-of/-/type-of-2.0.1.tgz", + "integrity": "sha1-5yoXQYllaOn2KDeNgW1pEvfyOXI=" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + }, + "underscore.string": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz", + "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==", + "requires": { + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" + } + }, + "unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "requires": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" + }, + "unified": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz", + "integrity": "sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==", + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + } + }, + "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==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "unist-builder": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", + "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==" + }, + "unist-util-generated": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.5.tgz", + "integrity": "sha512-1TC+NxQa4N9pNdayCYA1EGUOCAO0Le3fVp7Jzns6lnua/mYgwHo0tz5WUAfrdpNch1RZLHc61VZ1SDgrtNXLSw==" + }, + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" + }, + "unist-util-map": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unist-util-map/-/unist-util-map-1.0.5.tgz", + "integrity": "sha512-dFil/AN6vqhnQWNCZk0GF/G3+Q5YwsB+PqjnzvpO2wzdRtUJ1E8PN+XRE/PRr/G3FzKjRTJU0haqE0Ekl+O3Ag==", + "requires": { + "object-assign": "^4.0.1" + } + }, + "unist-util-modify-children": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-1.1.6.tgz", + "integrity": "sha512-TOA6W9QLil+BrHqIZNR4o6IA5QwGOveMbnQxnWYq+7EFORx9vz/CHrtzF36zWrW61E2UKw7sM1KPtIgeceVwXw==", + "requires": { + "array-iterate": "^1.0.0" + } + }, + "unist-util-position": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", + "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==" + }, + "unist-util-remove": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.0.0.tgz", + "integrity": "sha512-HwwWyNHKkeg/eXRnE11IpzY8JT55JNM1YCwwU9YNCnfzk6s8GhPXrVBBZWiwLeATJbI7euvoGSzcy9M29UeW3g==", + "requires": { + "unist-util-is": "^4.0.0" + }, + "dependencies": { + "unist-util-is": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", + "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==" + } + } + }, + "unist-util-remove-position": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", + "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", + "requires": { + "unist-util-visit": "^2.0.0" + } + }, + "unist-util-select": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/unist-util-select/-/unist-util-select-1.5.0.tgz", + "integrity": "sha1-qTwr6MD2U4J4A7gTMa3sKqJM2TM=", + "requires": { + "css-selector-parser": "^1.1.0", + "debug": "^2.2.0", + "nth-check": "^1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "requires": { + "@types/unist": "^2.0.2" + } + }, + "unist-util-visit": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz", + "integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "dependencies": { + "unist-util-is": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", + "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==" + } + } + }, + "unist-util-visit-children": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-1.1.4.tgz", + "integrity": "sha512-sA/nXwYRCQVRwZU2/tQWUqJ9JSFM1X3x7JIOsIgSzrFHcfVt6NkzDtKzyxg2cZWkCwGF9CO8x4QNZRJRMK8FeQ==" + }, + "unist-util-visit-parents": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz", + "integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "dependencies": { + "unist-util-is": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", + "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==" + } + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "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=", + "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=", + "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=" + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "update-notifier": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", + "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", + "requires": { + "boxen": "^3.0.0", + "chalk": "^2.0.1", + "configstore": "^4.0.0", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.1.0", + "is-npm": "^3.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "boxen": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", + "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^2.4.2", + "cli-boxes": "^2.2.0", + "string-width": "^3.0.0", + "term-size": "^1.2.0", + "type-fest": "^0.3.0", + "widest-line": "^2.0.0" + } + }, + "configstore": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", + "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "requires": { + "is-obj": "^1.0.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "requires": { + "execa": "^0.7.0" + } + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "requires": { + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" + } + } + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "upper-case-first": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "requires": { + "upper-case": "^1.1.1" + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "url-loader": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", + "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", + "requires": { + "loader-utils": "^1.1.0", + "mime": "^2.0.3", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + }, + "urql": { + "version": "1.9.8", + "resolved": "https://registry.npmjs.org/urql/-/urql-1.9.8.tgz", + "integrity": "sha512-AMikyJ9ldVvFVRND7AjgHJ3dBZXH2ygTM9bj4BwQzE9gfJfWA1wK+dXffV1WTOdOoCRngIxGWgZIzSkoLGBpbw==", + "requires": { + "@urql/core": "^1.12.0", + "wonka": "^4.0.14" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "use-media": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-media/-/use-media-1.4.0.tgz", + "integrity": "sha512-XsgyUAf3nhzZmEfhc5MqLHwyaPjs78bgytpVJ/xDl0TF4Bptf3vEpBNBBT/EIKOmsOc8UbuECq3mrP3mt1QANA==" + }, + "use-resize-observer": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-6.1.0.tgz", + "integrity": "sha512-SiPcWHiIQ1CnHmb6PxbYtygqiZXR0U9dNkkbpX9VYnlstUwF8+QqpUTrzh13pjPwcjMVGR+QIC+nvF5ujfFNng==", + "requires": { + "resize-observer-polyfill": "^1.5.1" + } + }, + "utif": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", + "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "requires": { + "pako": "^1.0.5" + } + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "v8-compile-cache": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz", + "integrity": "sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA==" + }, + "valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=" + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vfile": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.1.1.tgz", + "integrity": "sha512-lRjkpyDGjVlBA7cDQhQ+gNcvB1BGaTHYuSOcY3S7OhDmBtnzX95FhtZZDecSTDm6aajFymyve6S5DN4ZHGezdQ==", + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" + } + } + }, + "vfile-location": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.0.1.tgz", + "integrity": "sha512-yYBO06eeN/Ki6Kh1QAkgzYpWT1d3Qln+ZCtSbJqFExPl1S3y2qqotJQXoh6qEvl/jDlgpUJolBn3PItVnnZRqQ==" + }, + "vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "watchpack": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz", + "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==", + "requires": { + "chokidar": "^3.4.0", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + } + }, + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "optional": true + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "weakmap-polyfill": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/weakmap-polyfill/-/weakmap-polyfill-2.0.1.tgz", + "integrity": "sha512-Jy177Lvb1LCrPQDWJsXyyqf4eOhcdvQHFGoCqSv921kVF5i42MVbr4e2WEwetuTLBn1NX0IhPzTmMu0N3cURqQ==" + }, + "web-namespaces": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" + }, + "webpack": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", + "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.1", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "webpack-bundle-analyzer": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.8.0.tgz", + "integrity": "sha512-PODQhAYVEourCcOuU+NiYI7WdR8QyELZGgPvB1y2tjbUpbmcQOt5Q7jEK+ttd5se0KSBKD9SXHCEozS++Wllmw==", + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.15", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + }, + "dependencies": { + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==" + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + } + }, + "webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "requires": { + "original": "^1.0.0" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "requires": { + "is-wsl": "^1.1.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-hot-middleware": { + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz", + "integrity": "sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA==", + "requires": { + "ansi-html": "0.0.7", + "html-entities": "^1.2.0", + "querystring": "^0.2.0", + "strip-ansi": "^3.0.0" + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "requires": { + "lodash": "^4.17.15" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "webpack-stats-plugin": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/webpack-stats-plugin/-/webpack-stats-plugin-0.3.2.tgz", + "integrity": "sha512-kxEtPQ6lBBik2qtJlsZkiaDMI6rGXe9w1kLH9ZCdt0wgCGVnbwwPlP60cMqG6tILNFYqXDxNt4+c4OIIuE+Fnw==" + }, + "webpack-virtual-modules": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz", + "integrity": "sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA==", + "requires": { + "debug": "^3.0.0" + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + }, + "whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "requires": { + "string-width": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "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==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "window-or-global": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/window-or-global/-/window-or-global-1.0.1.tgz", + "integrity": "sha1-2+RboqKRqrxW1iz2bEW3+jIpRt4=" + }, + "with-open-file": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", + "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", + "requires": { + "p-finally": "^1.0.0", + "p-try": "^2.1.0", + "pify": "^4.0.1" + } + }, + "wonka": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.14.tgz", + "integrity": "sha512-v9vmsTxpZjrA8CYfztbuoTQSHEsG3ZH+NCYfasHm0V3GqBupXrjuuz0RJyUaw2cRO7ouW2js0P6i853/qxlDcA==" + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "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==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "requires": { + "mkdirp": "^0.5.1" + } + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", + "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==" + }, + "x-is-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", + "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=" + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" + }, + "xhr": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", + "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", + "requires": { + "global": "~4.3.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" + } + } + }, + "xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=" + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" + }, + "xregexp": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz", + "integrity": "sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==", + "requires": { + "@babel/runtime-corejs3": "^7.8.3" + } + }, + "xss": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.7.tgz", + "integrity": "sha512-A9v7tblGvxu8TWXQC9rlpW96a+LN1lyw6wyhpTmmGW+FwRMactchBR3ROKSi33UPCUcUHSu8s9YP6F+K3Mw//w==", + "requires": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + } + }, + "xstate": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.11.0.tgz", + "integrity": "sha512-v+S3jF2YrM2tFOit8o7+4N3FuFd9IIGcIKHyfHeeNjMlmNmwuiv/IbY9uw7ECifx7H/A9aGLcxPSr0jdjTGDww==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" + }, + "yaml-loader": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/yaml-loader/-/yaml-loader-0.6.0.tgz", + "integrity": "sha512-1bNiLelumURyj+zvVHOv8Y3dpCri0F2S+DCcmps0pA1zWRLjS+FhZQg4o3aUUDYESh73+pKZNI18bj7stpReow==", + "requires": { + "loader-utils": "^1.4.0", + "yaml": "^1.8.3" + } + }, + "yargs": { + "version": "15.4.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.0.tgz", + "integrity": "sha512-D3fRFnZwLWp8jVAAhPZBsmeIHY8tTsb8ItV9KaAaopmC6wde2u6Yw29JBIZHXw14kgkRnYmDgmQU4FVMDlIsWw==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^3.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + } + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" + }, + "yoga-layout-prebuilt": { + "version": "1.9.6", + "resolved": "https://registry.npmjs.org/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.9.6.tgz", + "integrity": "sha512-Wursw6uqLXLMjBAO4SEShuzj8+EJXhCF71/rJ7YndHTkRAYSU0GY3OghRqfAk9HPUAAFMuqp3U1Wl+01vmGRQQ==", + "requires": { + "@types/yoga-layout": "1.9.2" + } + }, + "yurnalist": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/yurnalist/-/yurnalist-1.1.2.tgz", + "integrity": "sha512-y7bsTXqL+YMJQ2De2CBtSftJNLQnB7gWIzzKm10GDyC8Fg4Dsmd2LG5YhT8pudvUiuotic80WVXt/g1femRVQg==", + "requires": { + "babel-runtime": "^6.26.0", + "chalk": "^2.4.2", + "cli-table3": "^0.5.1", + "debug": "^4.1.1", + "deep-equal": "^1.1.0", + "detect-indent": "^6.0.0", + "inquirer": "^7.0.0", + "invariant": "^2.2.0", + "is-builtin-module": "^3.0.0", + "is-ci": "^2.0.0", + "leven": "^3.1.0", + "loud-rejection": "^2.2.0", + "node-emoji": "^1.10.0", + "object-path": "^0.11.2", + "read": "^1.0.7", + "rimraf": "^3.0.0", + "semver": "^6.3.0", + "strip-ansi": "^5.2.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + } + } + }, + "zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==" + } + } +} diff --git a/package.json b/package.json index 8d0541ed..2e1a1bfa 100644 --- a/package.json +++ b/package.json @@ -1,23 +1,24 @@ { - "name": "example", + "name": "spm-kubernetes", "private": true, - "version": "1.20.0", + "version": "20.7.0", "license": "Apache 2.0", "scripts": { "dev": "gatsby develop -H 0.0.0.0", - "dev:clean": "yarn clean && yarn develop", - "build": "gatsby build", - "build:clean": "yarn clean && gatsby build", + "dev:clean": "gatsby clean && gatsby develop -H 0.0.0.0", + "build": "gatsby build --prefix-paths", + "build:clean": "gatsby clean && gatsby build --prefix-paths", "serve": "gatsby serve", "clean": "gatsby clean", "build:prefix": "gatsby build --prefix-paths", "serve:prefix": "gatsby serve --prefix-paths", - "test:prefix": "yarn build:prefix && yarn serve:prefix" + "test:prefix": "gatsby build:prefix && gatsby serve:prefix" }, "dependencies": { "carbon-icons": "^7.0.7", - "gatsby": "2.22.20", - "gatsby-theme-carbon": "^1.20.0", + "gatsby": "^2.24.1", + "gatsby-cli": "^2.12.60", + "gatsby-theme-carbon": "^1.25.0", "react": "^16.8.6", "react-dom": "^16.8.6" } diff --git a/src/data/nav-items.yaml b/src/data/nav-items.yaml index c2f40cbe..6420c309 100644 --- a/src/data/nav-items.yaml +++ b/src/data/nav-items.yaml @@ -1,12 +1,12 @@ - title: Introduction pages: - - title: Overview + - title: Architecture path: /00-intro/arch-overview - - title: Deployment Architecture + - title: Deployment architecture path: /00-intro/deploy-arch - - title: SPM Architecture on IKS + - title: SPM architecture on IKS path: /00-intro/referenceArchSPM - - title: Static Content Deployment Architecture + - title: Static content deployment architecture path: /00-intro/IHSStaticContent - title: Prerequisites pages: @@ -30,7 +30,7 @@ pages: - title: Installing SPM software path: /02-deploy-spm/SPM-sw - - title: Create SPM Database + - title: Creating the SPM database path: /02-deploy-spm/create_spm_db - title: Building the SPM application path: /02-deploy-spm/spm-build @@ -38,9 +38,11 @@ pages: - title: Setting up the Docker context path: /03-build-images/setup_docker_context + - title: Building base images + path: /03-build-images/base_images - title: Building the Docker images path: /03-build-images/build_images -- title: Deploying with Helm Charts +- title: Deploying with Helm charts pages: - title: Preparing Helm charts path: /04-deployment/hc_preparation @@ -48,13 +50,13 @@ path: /04-deployment/hc_deployment - title: Operations pages: - - title: Updating Tools + - title: Updating tools path: /06-operations/updating_tools - - title: Updating SPM Deployment + - title: Updating SPM deployment path: /06-operations/updating_curam -- title: Supporting Infrustructure +- title: Supporting infrastructure pages: - - title: MQ Configuration + - title: Configuring MQ on a VM path: /07-supporting-infrastructure/MQSetupConfig - title: Cloud Object Storage path: /07-supporting-infrastructure/COS @@ -62,25 +64,32 @@ path: /07-supporting-infrastructure/LDAP - title: LogDNA path: /07-supporting-infrastructure/LogDNA - - title: SPM Batch Processing on IKS + - title: SPM batch processing on IKS path: /07-supporting-infrastructure/batch + - title: Enabling ISAM + path: /07-supporting-infrastructure/ISAM - title: Monitoring and troubleshooting pages: - - title: Monitor the application + - title: Monitoring the application path: /08-runtime/interrogate_runtime - title: Batch processing path: /08-runtime/batch - - title: XML Server + - title: XML server path: /08-runtime/xmlserver - title: Troubleshooting problems path: /08-runtime/troubleshoot - - title: Remote Debugging + - title: Handling failed JMS messages on the MQ dead message queue + path: /08-runtime/failed_jms_messages + - title: Remote debugging path: /08-runtime/Remote-Debugging - title: MustGather path: /08-runtime/must_gather -- title: Known Issues +- title: Known issues pages: - path: /known_issues +- title: Frequently Asked Questions + pages: + - path: /FAQ - title: Feedback pages: - title: Contact Us diff --git a/src/images/curam_jmsqueue_message_flow.png b/src/images/curam_jmsqueue_message_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..69e376499e8eb9829ca160809fb953a7f351b89e GIT binary patch literal 33989 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 ZWGr-(lwC%t5|`k=hti5tMG}Sq{|}!i6;1#E literal 0 HcmV?d00001 diff --git a/src/images/dev_workstation_architecture.png b/src/images/dev_workstation_architecture.png index 16408601c8df12c1c60b565d7ba50e043059cf1b..937fa6f39cf3df5ced9447308ad173f940767537 100644 GIT binary patch literal 67065 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
vWAUliI3D4N;< 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