diff --git a/.assets/forseti-visualizer-example.gif b/.assets/forseti-visualizer-example.gif new file mode 100644 index 0000000..5c779e0 Binary files /dev/null and b/.assets/forseti-visualizer-example.gif differ diff --git a/.gitignore b/.gitignore index 9cc502c..2bc701e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,14 @@ # Ignore build files forseti-api/dist-forseti-visualizer-ui +forseti-api/dist -# Env/Encrypted +# Examples: Env/Encrypted source.env source-gwongcloud.env -clah_source.env -clah_dockersource.env dockersource.env asdf.env.enc config.json +start_cloud_sql_proxy.sh # Keys sa-key.json diff --git a/README.md b/README.md index a0551a0..84daa84 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Forseti Visualizer +![](.assets/forseti-visualizer-example.gif) + Forseti Visualizer provides a visualization solution, based on [Forseti Security's](https://github.com/forseti-security/forseti-security) Inventorying and Violation modules. Forseti Visualizer attempts to enable Google Cloud Platform users to better understand their GCP Organization Structure, while providing insights into policy adherence through identification of violations. ## Overview @@ -41,7 +43,7 @@ npm run build ### forseti-api -Navigate to forseti-api/. Create a source.env file, which will should be sourced and set prior to runtime. You will need to populate the fields below. The HANDLE and CHANNEL are leveraged for the IAM Explain functionality. +Navigate to forseti-api/. Create a `source.env` file, which will should be sourced to set the appropriate ENV variables prior to runtime. You will need to populate the fields below. The HANDLE and CHANNEL are leveraged for the IAM Explain functionality. ```bash # navigate to forseti-api @@ -52,15 +54,32 @@ cp -R ../forseti-visualizer-ui/dist ../forseti-api/dist-forseti-visualizer-ui # create source.env file cat > source.env << EOF -export CLOUDSQL_HOSTNAME="[IP HERE]" -export CLOUDSQL_USERNAME="[YOUR_USER_HERE]" -export CLOUDSQL_PASSWORD="[YOUR_PASSWORD_HERE]" +export CLOUDSQL_HOSTNAME="[IP HERE:127.0.0.1]" +export CLOUDSQL_USERNAME="[YOUR_USER_HERE:root]" +export CLOUDSQL_PASSWORD="[YOUR_PASSWORD_HERE:]" export CLOUDSQL_SCHEMA="forseti_security" export FORSETI_SERVER_VM_CHANNEL="[FORSETI-SERVER-VM_IP]:[GRPC_PORT:50051]" export FORSETI_DATA_MODEL_HANDLE="[DATA_MODEL_HANDLE_HASH:21254f1de747879237a95cb552e80844]" EOF ``` +You'll also need to seed the project with a `config.json` file under server/config.json. + +```bash +cat > server/config.json << EOF +{ + "host": "0.0.0.0", + "port": 8080, + "bodyLimit": "100kb", + "corsHeaders": ["Link"], + + "oauth2ClientId": "[SERVICE_ACCOUNT_NAME]@apps.googleusercontent.com", + "oauth2ClientSecret": "[CLIENT_SECRET]", + "oauth2Callback": "http://localhost:8080/auth/google/callback", +} +EOF +``` + While still in the "forseti-api/" directory: ```bash diff --git a/forseti-api/.babelrc b/forseti-api/.babelrc new file mode 100644 index 0000000..ff3059c --- /dev/null +++ b/forseti-api/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["@babel/preset-env"] +} \ No newline at end of file diff --git a/forseti-api/README.md b/forseti-api/README.md index 27bc7d5..c1d7f09 100644 --- a/forseti-api/README.md +++ b/forseti-api/README.md @@ -4,8 +4,8 @@ The node.js backend for the forseti-visualizer project. Forseti API serves cont ## Pre-Requisites -* The hosted solution must have a route to the Cloud SQL database. -* The hosted solution must have access to the forseti-server via GRPC (port 50051) +* A database connection using [Cloud SQL Proxy (recommended)](#Cloud-SQL-Proxy). +* If using IAM Explainer, the hosted solution must have access to the forseti-server GCE VM via a Firewall enabling GRPC traffic (port 50051) To build and deploy the solution from your local system, please ensure you have the following: @@ -36,19 +36,14 @@ cat > server/config.json << EOF "host": "0.0.0.0", "port": 8080, "bodyLimit": "100kb", - "corsHeaders": ["Link"], - "GCLOUD_PROJECT": "[PROJECT_ID]", - "DATA_BACKEND": "datastore", - "NODE_ENV": "", - "OAUTH2_CLIENT_ID": "[SERVICE_ACCOUNT_NAME]@apps.googleusercontent.com", - "OAUTH2_CLIENT_SECRET": "[CLIENT_SECRET]", - "OAUTH2_CALLBACK": "http://localhost:8080/auth/google/callback", - - "SECRET": "[SECRET]" + "corsHeaders": ["Link"], + + "oauth2ClientId": "[SERVICE_ACCOUNT_NAME]@apps.googleusercontent.com", + "oauth2ClientSecret": "[CLIENT_SECRET]", + "oauth2Callback": "http://localhost:8080/auth/google/callback", } EOF - npm install source source.env # the forseti-api server runs on localhost port 8080 @@ -57,7 +52,7 @@ npm start ## Deployment - Docker -To get started with Docker, you will need to create a local dockersource.env file with the following content. (For Docker, do not use double quotes) +`IF you are using Docker...`, you will need to create a local dockersource.env file with the following content. (Note: Do not include the double quotes) ```bash cat > dockersource.env << EOF @@ -76,6 +71,18 @@ export PROJECT_ID="$(gcloud config get-value project -q)" docker run --env-file $SOURCE_FILE --rm -d -p 8080:8080 gcr.io/$PROJECT_ID/$IMAGE_NAME ``` -## Opinions +## References * [.jshintrc](https://stackoverflow.com/questions/36318895/vs-code-with-es6) - JS formatting hints + +### Cloud SQL Proxy + +* [Reference](https://cloud.google.com/sql/docs/mysql/connect-admin-proxy#install) + +```bash +curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64 +chmod +x cloud_sql_proxy + +INSTANCE_CONNECTION_NAME="forseti-security-1e88:us-central1:forseti-server-db-586f404" +./cloud_sql_proxy -instances=$INSTANCE_CONNECTION_NAME=tcp:3306 +``` diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Analytics.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Analytics.png deleted file mode 100644 index d830957..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Analytics.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Analytics.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Analytics.svg deleted file mode 100644 index a902a06..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Analytics.svg +++ /dev/null @@ -1 +0,0 @@ -API Analytics \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Monetization.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Monetization.png deleted file mode 100644 index d364c4a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Monetization.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Monetization.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Monetization.svg deleted file mode 100644 index c99f207..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/API Monetization.svg +++ /dev/null @@ -1 +0,0 @@ -API Monetization \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee API Platform.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee API Platform.png deleted file mode 100644 index 9022b8a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee API Platform.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee API Platform.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee API Platform.svg deleted file mode 100644 index fed41e2..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee API Platform.svg +++ /dev/null @@ -1 +0,0 @@ -Apigee API Platform \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee Sense.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee Sense.png deleted file mode 100644 index 6f5fa8f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee Sense.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee Sense.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee Sense.svg deleted file mode 100644 index 3d37d20..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Apigee Sense.svg +++ /dev/null @@ -1 +0,0 @@ -Apigee Sense \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Cloud Endpoints.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Cloud Endpoints.png deleted file mode 100644 index 1502083..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Cloud Endpoints.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Cloud Endpoints.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Cloud Endpoints.svg deleted file mode 100644 index 23fac26..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Cloud Endpoints.svg +++ /dev/null @@ -1,14 +0,0 @@ - - Cloud Endpoints - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Developer Portal.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Developer Portal.png deleted file mode 100644 index 190acb4..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Developer Portal.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Developer Portal.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Developer Portal.svg deleted file mode 100644 index 4dcfc10..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/API Platform & Ecosystems/Developer Portal.svg +++ /dev/null @@ -1 +0,0 @@ -Developer Portal \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/BigQuery.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/BigQuery.png deleted file mode 100644 index a7e0a71..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/BigQuery.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/BigQuery.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/BigQuery.svg deleted file mode 100644 index 3ead5b3..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/BigQuery.svg +++ /dev/null @@ -1,14 +0,0 @@ - - BigQuery - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Composer.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Composer.png deleted file mode 100644 index 1c62a13..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Composer.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Composer.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Composer.svg deleted file mode 100644 index 90aa45e..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Composer.svg +++ /dev/null @@ -1 +0,0 @@ -Cloud Composer \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataflow.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataflow.png deleted file mode 100644 index c53ddf8..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataflow.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataflow.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataflow.svg deleted file mode 100644 index cc5f6d4..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataflow.svg +++ /dev/null @@ -1,21 +0,0 @@ - - Cloud Dataflow - - - - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Datalab.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Datalab.png deleted file mode 100644 index 9c5ad7d..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Datalab.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Datalab.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Datalab.svg deleted file mode 100644 index 3a78fde..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Datalab.svg +++ /dev/null @@ -1,16 +0,0 @@ - - Cloud Datalab - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataprep.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataprep.png deleted file mode 100644 index 17132f2..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataprep.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataprep.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataprep.svg deleted file mode 100644 index c97bf97..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataprep.svg +++ /dev/null @@ -1,11 +0,0 @@ - - Cloud Dataprep - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataproc.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataproc.png deleted file mode 100644 index eb5ed2c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataproc.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataproc.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataproc.svg deleted file mode 100644 index 53fcae8..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud Dataproc.svg +++ /dev/null @@ -1,17 +0,0 @@ - - Cloud Dataproc - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud PubSub.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud PubSub.png deleted file mode 100644 index 5b5610c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud PubSub.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud PubSub.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud PubSub.svg deleted file mode 100644 index 2c19e57..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Cloud PubSub.svg +++ /dev/null @@ -1,19 +0,0 @@ - - Cloud PubSub - - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Data Studio.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Data Studio.png deleted file mode 100644 index a930f8e..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Data Studio.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Data Studio.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Data Studio.svg deleted file mode 100644 index e30c594..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Data Studio.svg +++ /dev/null @@ -1,9 +0,0 @@ - - Data Studio - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Genomics.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Genomics.png deleted file mode 100644 index 3a463ca..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Genomics.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Genomics.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Genomics.svg deleted file mode 100644 index d33de7a..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Big Data/Genomics.svg +++ /dev/null @@ -1,30 +0,0 @@ - - Genomics - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Advanced Solutions Lab.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Advanced Solutions Lab.png deleted file mode 100644 index d7ddd49..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Advanced Solutions Lab.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Advanced Solutions Lab.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Advanced Solutions Lab.svg deleted file mode 100644 index 78b4e5d..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Advanced Solutions Lab.svg +++ /dev/null @@ -1,23 +0,0 @@ - - Advanced Solutions Lab - - - - - - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud AutoML.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud AutoML.png deleted file mode 100644 index b147e07..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud AutoML.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud AutoML.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud AutoML.svg deleted file mode 100644 index 52eeaa9..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud AutoML.svg +++ /dev/null @@ -1 +0,0 @@ -Cloud AutoML \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Jobs API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Jobs API.png deleted file mode 100644 index 271b502..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Jobs API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Jobs API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Jobs API.svg deleted file mode 100644 index 8f644ac..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Jobs API.svg +++ /dev/null @@ -1,11 +0,0 @@ - - Cloud Jobs API - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Machine Learning.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Machine Learning.png deleted file mode 100644 index f85ff7f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Machine Learning.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Machine Learning.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Machine Learning.svg deleted file mode 100644 index 75d162e..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Machine Learning.svg +++ /dev/null @@ -1,9 +0,0 @@ - - Cloud Machine Learning - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Natural Language API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Natural Language API.png deleted file mode 100644 index a8c4308..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Natural Language API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Natural Language API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Natural Language API.svg deleted file mode 100644 index e83f40a..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Natural Language API.svg +++ /dev/null @@ -1,14 +0,0 @@ - - Cloud Natural Language API - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Speech API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Speech API.png deleted file mode 100644 index fd5ccea..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Speech API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Speech API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Speech API.svg deleted file mode 100644 index ab707ba..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Speech API.svg +++ /dev/null @@ -1,12 +0,0 @@ - - Cloud Speech API - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud TPU.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud TPU.png deleted file mode 100644 index 158946a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud TPU.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud TPU.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud TPU.svg deleted file mode 100644 index 7cd4957..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud TPU.svg +++ /dev/null @@ -1 +0,0 @@ -Cloud TPU \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Text-to-Speech.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Text-to-Speech.png deleted file mode 100644 index 5822fa6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Text-to-Speech.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Text-to-Speech.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Text-to-Speech.svg deleted file mode 100644 index 022392a..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Text-to-Speech.svg +++ /dev/null @@ -1 +0,0 @@ -Cloud Text-to-Speech \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Translation API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Translation API.png deleted file mode 100644 index 6997d9f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Translation API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Translation API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Translation API.svg deleted file mode 100644 index efc2d09..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Translation API.svg +++ /dev/null @@ -1,15 +0,0 @@ - - Cloud Translation API - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Video Intelligence API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Video Intelligence API.png deleted file mode 100644 index 1c6e00c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Video Intelligence API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Video Intelligence API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Video Intelligence API.svg deleted file mode 100644 index eeb20e8..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Video Intelligence API.svg +++ /dev/null @@ -1,9 +0,0 @@ - - Cloud Video Intelligence API - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Vision API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Vision API.png deleted file mode 100644 index 28e2d63..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Vision API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Vision API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Vision API.svg deleted file mode 100644 index 538060f..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Cloud Vision API.svg +++ /dev/null @@ -1,9 +0,0 @@ - - Cloud Vision API - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Dialogflow Enterprise Edition.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Dialogflow Enterprise Edition.png deleted file mode 100644 index 7166aec..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Dialogflow Enterprise Edition.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Dialogflow Enterprise Edition.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Dialogflow Enterprise Edition.svg deleted file mode 100644 index c44e697..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Cloud AI/Dialogflow Enterprise Edition.svg +++ /dev/null @@ -1 +0,0 @@ -Dialogflow Enterprise Edition \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/App Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/App Engine.png deleted file mode 100644 index b82ddbd..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/App Engine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/App Engine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/App Engine.svg deleted file mode 100644 index eb6dcae..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/App Engine.svg +++ /dev/null @@ -1,16 +0,0 @@ - - App Engine - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Cloud Functions.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Cloud Functions.png deleted file mode 100644 index 24188a4..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Cloud Functions.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Cloud Functions.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Cloud Functions.svg deleted file mode 100644 index ff9de20..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Cloud Functions.svg +++ /dev/null @@ -1,10 +0,0 @@ - - Cloud Functions - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Compute Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Compute Engine.png deleted file mode 100644 index a4b52d9..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Compute Engine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Compute Engine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Compute Engine.svg deleted file mode 100644 index 2ce64de..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Compute Engine.svg +++ /dev/null @@ -1,7 +0,0 @@ - - Compute Engine - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container Engine.png deleted file mode 100644 index 0e434e3..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container Engine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container Engine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container Engine.svg deleted file mode 100644 index b617e80..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container Engine.svg +++ /dev/null @@ -1,10 +0,0 @@ - - Container Engine - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container-Optimized OS.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container-Optimized OS.png deleted file mode 100644 index 67a2504..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container-Optimized OS.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container-Optimized OS.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container-Optimized OS.svg deleted file mode 100644 index 18d4e9e..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/Container-Optimized OS.svg +++ /dev/null @@ -1,8 +0,0 @@ - - Container-Optimized OS - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/GPU.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/GPU.png deleted file mode 100644 index 94a26fd..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/GPU.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/GPU.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/GPU.svg deleted file mode 100644 index 9cde361..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Compute/GPU.svg +++ /dev/null @@ -1 +0,0 @@ -GPU \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Data Transfer/Transfer Appliance.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Data Transfer/Transfer Appliance.png deleted file mode 100644 index 8b9cf7a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Data Transfer/Transfer Appliance.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Data Transfer/Transfer Appliance.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Data Transfer/Transfer Appliance.svg deleted file mode 100644 index 4062d8c..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Data Transfer/Transfer Appliance.svg +++ /dev/null @@ -1,11 +0,0 @@ - - Data Transfer Appliance - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Deployment Manager.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Deployment Manager.png deleted file mode 100644 index 85243df..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Deployment Manager.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Deployment Manager.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Deployment Manager.svg deleted file mode 100644 index 68c6e0d..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Deployment Manager.svg +++ /dev/null @@ -1,17 +0,0 @@ - - Cloud Deployment Manager - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud SDK.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud SDK.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud SDK.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud SDK.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud SDK.svg deleted file mode 100644 index 76e08bb..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud SDK.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Cloud SDK - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Source Repositories.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Source Repositories.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Source Repositories.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Source Repositories.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Source Repositories.svg deleted file mode 100644 index ddb6838..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Source Repositories.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Cloud Source Repositories - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Test Lab.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Test Lab.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Test Lab.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Test Lab.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Test Lab.svg deleted file mode 100644 index dd697d9..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Test Lab.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Cloud Test Lab - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Android Studio.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Android Studio.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Android Studio.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Android Studio.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Android Studio.svg deleted file mode 100644 index 36ffa70..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Android Studio.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Cloud Tools for Android Studio - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for IntelliJ.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for IntelliJ.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for IntelliJ.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for IntelliJ.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for IntelliJ.svg deleted file mode 100644 index 77a5b82..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for IntelliJ.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Cloud Tools for IntelliJ - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for PowerShell.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for PowerShell.png deleted file mode 100644 index bc2bd2c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for PowerShell.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for PowerShell.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for PowerShell.svg deleted file mode 100644 index 3c59013..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for PowerShell.svg +++ /dev/null @@ -1,14 +0,0 @@ - - Cloud Tools for PowerShell - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Visual Studio.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Visual Studio.png deleted file mode 100644 index eef3f78..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Visual Studio.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Visual Studio.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Visual Studio.svg deleted file mode 100644 index c9740f6..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Cloud Tools for Visual Studio.svg +++ /dev/null @@ -1,14 +0,0 @@ - - Cloud Tools for Visual Studio - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Builder.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Builder.png deleted file mode 100644 index d09c343..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Builder.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Builder.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Builder.svg deleted file mode 100644 index 452fcbf..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Builder.svg +++ /dev/null @@ -1,18 +0,0 @@ - - Container Builder - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Registry.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Registry.png deleted file mode 100644 index e645187..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Registry.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Registry.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Registry.svg deleted file mode 100644 index 34d0c8b..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Container Registry.svg +++ /dev/null @@ -1,16 +0,0 @@ - - Container Registry - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Google Plugin for Eclipse.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Google Plugin for Eclipse.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Google Plugin for Eclipse.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Google Plugin for Eclipse.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Google Plugin for Eclipse.svg deleted file mode 100644 index 27a423c..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Developer Tools/Google Plugin for Eclipse.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Google Plugin for Eclipse - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Blue Hexagon.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Blue Hexagon.png deleted file mode 100644 index ead1366..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Blue Hexagon.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Blue Hexagon.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Blue Hexagon.svg deleted file mode 100644 index 2ea6fb7..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Blue Hexagon.svg +++ /dev/null @@ -1,4 +0,0 @@ - - Blue-Hexagon - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/App-Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/App-Engine.png deleted file mode 100644 index 444e0cd..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/App-Engine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/App-Engine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/App-Engine.svg deleted file mode 100644 index 81c3ecc..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/App-Engine.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataflow.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataflow.png deleted file mode 100644 index 6f2473c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataflow.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataflow.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataflow.svg deleted file mode 100644 index 0eaa0a2..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataflow.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataproc.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataproc.png deleted file mode 100644 index 843cf28..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataproc.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataproc.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataproc.svg deleted file mode 100644 index abb6d86..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Cloud-Dataproc.svg +++ /dev/null @@ -1,4 +0,0 @@ - - Cloud-Dataproc44 - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Compute-Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Compute-Engine.png deleted file mode 100644 index 93463fc..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Compute-Engine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Compute-Engine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Compute-Engine.svg deleted file mode 100644 index aee2b6b..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Compute-Engine.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Container-Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Container-Engine.png deleted file mode 100644 index 3d1434e..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Container-Engine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Container-Engine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Container-Engine.svg deleted file mode 100644 index 9e7d4a7..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/Container-Engine.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_autoscaling.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_autoscaling.png deleted file mode 100644 index cff08c4..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_autoscaling.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_autoscaling.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_autoscaling.svg deleted file mode 100644 index 9c67215..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_autoscaling.svg +++ /dev/null @@ -1,4 +0,0 @@ - - Modifiers - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_custom-virtual-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_custom-virtual-machine.png deleted file mode 100644 index 9abba86..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_custom-virtual-machine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_custom-virtual-machine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_custom-virtual-machine.svg deleted file mode 100644 index 7abc86d..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_custom-virtual-machine.svg +++ /dev/null @@ -1,4 +0,0 @@ - - modifiers_custom-virtual-machine - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-CPU-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-CPU-machine.png deleted file mode 100644 index 744785b..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-CPU-machine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-CPU-machine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-CPU-machine.svg deleted file mode 100644 index 37613a7..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-CPU-machine.svg +++ /dev/null @@ -1,11 +0,0 @@ - - Modifiers_ - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-memory-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-memory-machine.png deleted file mode 100644 index 09cc085..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-memory-machine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-memory-machine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-memory-machine.svg deleted file mode 100644 index 0ee0de9..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_high-memory-machine.svg +++ /dev/null @@ -1,11 +0,0 @@ - - modifiers_high-memory-machine - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_preemptable-vm.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_preemptable-vm.png deleted file mode 100644 index 69f0b9f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_preemptable-vm.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_preemptable-vm.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_preemptable-vm.svg deleted file mode 100644 index 2fd364e..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_preemptable-vm.svg +++ /dev/null @@ -1,11 +0,0 @@ - - modifiers_preemptable-vm - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-F1.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-F1.png deleted file mode 100644 index 3a3fa98..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-F1.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-F1.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-F1.svg deleted file mode 100644 index 59788eb..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-F1.svg +++ /dev/null @@ -1,4 +0,0 @@ - - Modifiers_ - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-G1.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-G1.png deleted file mode 100644 index 2b968f1..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-G1.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-G1.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-G1.svg deleted file mode 100644 index d8a379c..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_shared-core-machine-G1.svg +++ /dev/null @@ -1,4 +0,0 @@ - - Modifiers_ - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_standard-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_standard-machine.png deleted file mode 100644 index 40ac278..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_standard-machine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_standard-machine.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_standard-machine.svg deleted file mode 100644 index fb58b4d..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_standard-machine.svg +++ /dev/null @@ -1,4 +0,0 @@ - - Modifiers_ - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_storage.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_storage.png deleted file mode 100644 index 6e59e1a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_storage.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_storage.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_storage.svg deleted file mode 100644 index d61ab78..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Expanded Product Card Icons/modifiers_storage.svg +++ /dev/null @@ -1,4 +0,0 @@ - - Modifiers_ - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Generic GCP.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Generic GCP.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Generic GCP.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Generic GCP.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Generic GCP.svg deleted file mode 100644 index 8ed8462..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Generic GCP.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Generic-GCP - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform.png deleted file mode 100644 index 451fa4a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform.svg deleted file mode 100644 index 931bbf9..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform.svg +++ /dev/null @@ -1 +0,0 @@ -Artboard 1 \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform_lockup.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform_lockup.png deleted file mode 100644 index c1f20ba..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform_lockup.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform_lockup.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform_lockup.svg deleted file mode 100644 index 2f0fdfe..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Google Cloud Platform_lockup.svg +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - GCP_logo_solid - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_lockup.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_lockup.png deleted file mode 100644 index 2d90728..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_lockup.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_lockup.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_lockup.svg deleted file mode 100644 index df139cb..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_lockup.svg +++ /dev/null @@ -1,46 +0,0 @@ - - Asset 1lockup - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_logo.png deleted file mode 100644 index cb41fd3..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_logo.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_logo.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_logo.svg deleted file mode 100644 index a4dacc2..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Forseti_logo.svg +++ /dev/null @@ -1,9 +0,0 @@ - - Asset 1 - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Istio_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Istio_logo.png deleted file mode 100644 index 6d36a4e..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Istio_logo.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Istio_logo.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Istio_logo.svg deleted file mode 100644 index 876f5e9..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Istio_logo.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_logo.png deleted file mode 100644 index cbe1bf1..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_logo.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_logo.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_logo.svg deleted file mode 100644 index bedd3b8..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_logo.svg +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_name.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_name.png deleted file mode 100644 index 272ddb2..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_name.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_name.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_name.svg deleted file mode 100644 index 3756472..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/Kubernetes_name.svg +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_lockup.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_lockup.png deleted file mode 100644 index 048d95b..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_lockup.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_logo.png deleted file mode 100644 index 225f273..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_logo.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_logo.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_logo.svg deleted file mode 100644 index 9dc926a..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Open Source Icons/TensorFlow_logo.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Prediction API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Prediction API.png deleted file mode 100644 index 9eb52c9..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Prediction API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Prediction API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Prediction API.svg deleted file mode 100644 index 1412afe..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Extras/Prediction API.svg +++ /dev/null @@ -1,15 +0,0 @@ - - Prediction-API - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/BeyondCorp.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/BeyondCorp.png deleted file mode 100644 index 198a5a2..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/BeyondCorp.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/BeyondCorp.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/BeyondCorp.svg deleted file mode 100644 index 4ae83ed..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/BeyondCorp.svg +++ /dev/null @@ -1,8 +0,0 @@ - - BeyondCorp - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud IAM.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud IAM.png deleted file mode 100644 index 31e24ba..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud IAM.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud IAM.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud IAM.svg deleted file mode 100644 index 47e45aa..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud IAM.svg +++ /dev/null @@ -1,8 +0,0 @@ - - Cloud IAM - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Resource Manager.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Resource Manager.png deleted file mode 100644 index 31e24ba..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Resource Manager.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Resource Manager.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Resource Manager.svg deleted file mode 100644 index 6620f8a..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Resource Manager.svg +++ /dev/null @@ -1,8 +0,0 @@ - - Cloud Resource Manager - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Command Center.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Command Center.png deleted file mode 100644 index fd93a89..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Command Center.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Command Center.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Command Center.svg deleted file mode 100644 index 6c38e73..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Command Center.svg +++ /dev/null @@ -1 +0,0 @@ -Cloud Security Command Center \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Scanner.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Scanner.png deleted file mode 100644 index fca9bed..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Scanner.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Scanner.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Scanner.svg deleted file mode 100644 index 2587dce..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Cloud Security Scanner.svg +++ /dev/null @@ -1 +0,0 @@ -Cloud Security Scanner \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Data Loss Prevention API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Data Loss Prevention API.png deleted file mode 100644 index 1f4e154..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Data Loss Prevention API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Data Loss Prevention API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Data Loss Prevention API.svg deleted file mode 100644 index d962e1b..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Data Loss Prevention API.svg +++ /dev/null @@ -1,18 +0,0 @@ - - Data Loss Prevention API - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Identity-Aware Proxy.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Identity-Aware Proxy.png deleted file mode 100644 index 722a7f2..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Identity-Aware Proxy.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Identity-Aware Proxy.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Identity-Aware Proxy.svg deleted file mode 100644 index 1c10517..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Identity-Aware Proxy.svg +++ /dev/null @@ -1,14 +0,0 @@ - - Identity-Aware Proxy - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Key Management Service.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Key Management Service.png deleted file mode 100644 index 46edd26..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Key Management Service.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Key Management Service.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Key Management Service.svg deleted file mode 100644 index 751be07..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Key Management Service.svg +++ /dev/null @@ -1,12 +0,0 @@ - - Key Management Service - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Security Key Enforcement.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Security Key Enforcement.png deleted file mode 100644 index 75da211..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Security Key Enforcement.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Security Key Enforcement.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Security Key Enforcement.svg deleted file mode 100644 index 8969840..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Identity & Security/Security Key Enforcement.svg +++ /dev/null @@ -1,7 +0,0 @@ - - Security Key Enforcement - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Internet of Things/Cloud IoT Core.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Internet of Things/Cloud IoT Core.png deleted file mode 100644 index cdb2ab7..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Internet of Things/Cloud IoT Core.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Internet of Things/Cloud IoT Core.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Internet of Things/Cloud IoT Core.svg deleted file mode 100644 index 9ad6718..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Internet of Things/Cloud IoT Core.svg +++ /dev/null @@ -1,11 +0,0 @@ - - Cloud IoT Core - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud APIs.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud APIs.png deleted file mode 100644 index f56c646..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud APIs.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud APIs.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud APIs.svg deleted file mode 100644 index 09728ca..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud APIs.svg +++ /dev/null @@ -1,12 +0,0 @@ - - Cloud APIs - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Billing API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Billing API.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Billing API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Billing API.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Billing API.svg deleted file mode 100644 index 138bf88..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Billing API.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Cloud Billing API - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Console.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Console.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Console.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Console.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Console.svg deleted file mode 100644 index 4e9cc3a..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Console.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Cloud Console - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Deployment Manager.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Deployment Manager.png deleted file mode 100644 index 85243df..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Deployment Manager.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Deployment Manager.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Deployment Manager.svg deleted file mode 100644 index 68c6e0d..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Deployment Manager.svg +++ /dev/null @@ -1,17 +0,0 @@ - - Cloud Deployment Manager - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Mobile App.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Mobile App.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Mobile App.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Mobile App.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Mobile App.svg deleted file mode 100644 index c1f8af4..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Mobile App.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Cloud Mobile App - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Shell.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Shell.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Shell.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Shell.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Shell.svg deleted file mode 100644 index 304cfee..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Cloud Shell.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Cloud Shell - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Debugger.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Debugger.png deleted file mode 100644 index 74418c0..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Debugger.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Debugger.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Debugger.svg deleted file mode 100644 index 1ae9215..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Debugger.svg +++ /dev/null @@ -1,15 +0,0 @@ - - Debugger - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Error Reporting.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Error Reporting.png deleted file mode 100644 index b187414..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Error Reporting.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Error Reporting.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Error Reporting.svg deleted file mode 100644 index 8afe06b..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Error Reporting.svg +++ /dev/null @@ -1,15 +0,0 @@ - - Error Reporting - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Logging.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Logging.png deleted file mode 100644 index 800aa37..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Logging.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Logging.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Logging.svg deleted file mode 100644 index 512dec2..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Logging.svg +++ /dev/null @@ -1,16 +0,0 @@ - - Logging - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Monitoring.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Monitoring.png deleted file mode 100644 index 85243df..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Monitoring.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Monitoring.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Monitoring.svg deleted file mode 100644 index b12cf3d..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Monitoring.svg +++ /dev/null @@ -1,17 +0,0 @@ - - Monitoring - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Stackdriver.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Stackdriver.png deleted file mode 100644 index 614e569..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Stackdriver.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Stackdriver.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Stackdriver.svg deleted file mode 100644 index b7cb5a1..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Stackdriver.svg +++ /dev/null @@ -1,10 +0,0 @@ - - Stackdriver - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Trace.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Trace.png deleted file mode 100644 index 9c90cd4..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Trace.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Trace.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Trace.svg deleted file mode 100644 index 3809757..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Management Tools/Trace.svg +++ /dev/null @@ -1,10 +0,0 @@ - - Trace - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Armor.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Armor.png deleted file mode 100644 index 5cc9bc1..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Armor.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Armor.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Armor.svg deleted file mode 100644 index 0dbfb7a..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Armor.svg +++ /dev/null @@ -1 +0,0 @@ -Cloud Armor \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud CDN.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud CDN.png deleted file mode 100644 index b2ac398..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud CDN.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud CDN.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud CDN.svg deleted file mode 100644 index 0d80004..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud CDN.svg +++ /dev/null @@ -1,12 +0,0 @@ - - Cloud CDN - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud DNS.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud DNS.png deleted file mode 100644 index 2d8c27b..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud DNS.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud DNS.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud DNS.svg deleted file mode 100644 index a50ad0b..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud DNS.svg +++ /dev/null @@ -1,14 +0,0 @@ - - Cloud DNS - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud External IP Addresses.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud External IP Addresses.png deleted file mode 100644 index a3f1b89..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud External IP Addresses.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud External IP Addresses.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud External IP Addresses.svg deleted file mode 100644 index ce153b4..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud External IP Addresses.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Cloud External IP Addresses - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Firewall Rules.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Firewall Rules.png deleted file mode 100644 index ff4a839..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Firewall Rules.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Firewall Rules.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Firewall Rules.svg deleted file mode 100644 index 10966f5..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Firewall Rules.svg +++ /dev/null @@ -1,23 +0,0 @@ - - Cloud Firewall Rules - - - - - - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Load Balancing.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Load Balancing.png deleted file mode 100644 index b245d3c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Load Balancing.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Load Balancing.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Load Balancing.svg deleted file mode 100644 index 4f8addf..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Load Balancing.svg +++ /dev/null @@ -1,15 +0,0 @@ - - Cloud Load Balancing - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Network.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Network.png deleted file mode 100644 index 3dde351..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Network.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Network.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Network.svg deleted file mode 100644 index 25d9c41..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Network.svg +++ /dev/null @@ -1,18 +0,0 @@ - - Cloud Network - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Router.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Router.png deleted file mode 100644 index f00fdf6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Router.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Router.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Router.svg deleted file mode 100644 index bfb5ac9..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Router.svg +++ /dev/null @@ -1,14 +0,0 @@ - - Cloud Router - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Routes.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Routes.png deleted file mode 100644 index 51743c9..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Routes.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Routes.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Routes.svg deleted file mode 100644 index 8a25c1f..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud Routes.svg +++ /dev/null @@ -1,16 +0,0 @@ - - Cloud Routes - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud VPN.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud VPN.png deleted file mode 100644 index ef51194..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud VPN.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud VPN.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud VPN.svg deleted file mode 100644 index 89e142e..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Cloud VPN.svg +++ /dev/null @@ -1,16 +0,0 @@ - - Cloud VPN - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Dedicated Interconnect.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Dedicated Interconnect.png deleted file mode 100644 index d11202d..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Dedicated Interconnect.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Dedicated Interconnect.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Dedicated Interconnect.svg deleted file mode 100644 index ac3acae..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Dedicated Interconnect.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Cloud Interconnect - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Partner Interconnect.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Partner Interconnect.png deleted file mode 100644 index be0e43f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Partner Interconnect.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Partner Interconnect.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Partner Interconnect.svg deleted file mode 100644 index 09c4369..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Partner Interconnect.svg +++ /dev/null @@ -1 +0,0 @@ -Partner Interconnect \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Premium Network Tier.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Premium Network Tier.png deleted file mode 100644 index 5de7b57..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Premium Network Tier.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Premium Network Tier.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Premium Network Tier.svg deleted file mode 100644 index 17934ea..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Premium Network Tier.svg +++ /dev/null @@ -1 +0,0 @@ -Network Service Tiers_Premium \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Standard Network Tier.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Standard Network Tier.png deleted file mode 100644 index 674e95f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Standard Network Tier.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Standard Network Tier.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Standard Network Tier.svg deleted file mode 100644 index 02f1dd8..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Standard Network Tier.svg +++ /dev/null @@ -1 +0,0 @@ -Network Service Tiers_Standard \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Virtual Private Cloud.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Virtual Private Cloud.png deleted file mode 100644 index 7944217..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Virtual Private Cloud.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Virtual Private Cloud.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Virtual Private Cloud.svg deleted file mode 100644 index 0520325..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Networking/Virtual Private Cloud.svg +++ /dev/null @@ -1,15 +0,0 @@ - - Virtual Private Cloud - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/README.md b/forseti-api/dist-forseti-visualizer-ui/Products & Services/README.md deleted file mode 100644 index b7bd579..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Google Cloud Icons - -[Icons URL](https://cloud.google.com/icons/) - -## Uploading files to GCS - -```bash -gsutil mb gs://forseti-visualizer-icons - -``` diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Bigtable.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Bigtable.png deleted file mode 100644 index afce5e0..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Bigtable.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Bigtable.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Bigtable.svg deleted file mode 100644 index 3cd6344..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Bigtable.svg +++ /dev/null @@ -1,24 +0,0 @@ - - Cloud Bigtable - - - - - - - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Datastore.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Datastore.png deleted file mode 100644 index 43a77a8..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Datastore.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Datastore.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Datastore.svg deleted file mode 100644 index 8cddfa0..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Datastore.svg +++ /dev/null @@ -1,11 +0,0 @@ - - Cloud Datastore - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Memorystore.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Memorystore.png deleted file mode 100644 index ceb3b89..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Memorystore.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Memorystore.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Memorystore.svg deleted file mode 100644 index 29f7f52..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Memorystore.svg +++ /dev/null @@ -1 +0,0 @@ -Cloud Memorystore \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud SQL.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud SQL.png deleted file mode 100644 index 9763c55..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud SQL.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud SQL.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud SQL.svg deleted file mode 100644 index 2566744..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud SQL.svg +++ /dev/null @@ -1,10 +0,0 @@ - - Cloud SQL - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Spanner.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Spanner.png deleted file mode 100644 index 88068fb..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Spanner.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Spanner.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Spanner.svg deleted file mode 100644 index c8ba860..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Spanner.svg +++ /dev/null @@ -1,8 +0,0 @@ - - Cloud Spanner - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Storage.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Storage.png deleted file mode 100644 index 3b7bb1a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Storage.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Storage.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Storage.svg deleted file mode 100644 index 55e2d81..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Cloud Storage.svg +++ /dev/null @@ -1,11 +0,0 @@ - - Cloud Storage - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Persistent Disk.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Persistent Disk.png deleted file mode 100644 index 4be2acf..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Persistent Disk.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Persistent Disk.svg b/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Persistent Disk.svg deleted file mode 100644 index 0269161..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/Storage & Databases/Persistent Disk.svg +++ /dev/null @@ -1,10 +0,0 @@ - - Persistent Disk - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/cloud_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/cloud_logo.png deleted file mode 100644 index 43d58bc..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/cloud_logo.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/folder_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/folder_logo.png deleted file mode 100644 index 890c233..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/folder_logo.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/project_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/project_logo.png deleted file mode 100644 index 28adc62..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/_Other_Imported/project_logo.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/API Analytics.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/API Analytics.png deleted file mode 100644 index d830957..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/API Analytics.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/API Monetization.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/API Monetization.png deleted file mode 100644 index d364c4a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/API Monetization.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Advanced Solutions Lab.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Advanced Solutions Lab.png deleted file mode 100644 index d7ddd49..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Advanced Solutions Lab.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Apigee API Platform.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Apigee API Platform.png deleted file mode 100644 index 9022b8a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Apigee API Platform.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Apigee Sense.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Apigee Sense.png deleted file mode 100644 index 6f5fa8f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Apigee Sense.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/App Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/App Engine.png deleted file mode 100644 index b82ddbd..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/App Engine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/App-Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/App-Engine.png deleted file mode 100644 index 444e0cd..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/App-Engine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/BeyondCorp.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/BeyondCorp.png deleted file mode 100644 index 198a5a2..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/BeyondCorp.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/BigQuery.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/BigQuery.png deleted file mode 100644 index a7e0a71..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/BigQuery.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Blue Hexagon.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Blue Hexagon.png deleted file mode 100644 index ead1366..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Blue Hexagon.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud APIs.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud APIs.png deleted file mode 100644 index f56c646..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud APIs.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Armor.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Armor.png deleted file mode 100644 index 5cc9bc1..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Armor.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud AutoML.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud AutoML.png deleted file mode 100644 index b147e07..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud AutoML.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Bigtable.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Bigtable.png deleted file mode 100644 index afce5e0..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Bigtable.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Billing API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Billing API.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Billing API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud CDN.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud CDN.png deleted file mode 100644 index b2ac398..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud CDN.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Composer.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Composer.png deleted file mode 100644 index 1c62a13..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Composer.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Console.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Console.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Console.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud DNS.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud DNS.png deleted file mode 100644 index 2d8c27b..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud DNS.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataflow.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataflow.png deleted file mode 100644 index c53ddf8..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataflow.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Datalab.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Datalab.png deleted file mode 100644 index 9c5ad7d..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Datalab.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataprep.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataprep.png deleted file mode 100644 index 17132f2..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataprep.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataproc.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataproc.png deleted file mode 100644 index eb5ed2c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Dataproc.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Datastore.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Datastore.png deleted file mode 100644 index 43a77a8..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Datastore.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Deployment Manager.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Deployment Manager.png deleted file mode 100644 index 85243df..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Deployment Manager.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Endpoints.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Endpoints.png deleted file mode 100644 index 1502083..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Endpoints.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud External IP Addresses.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud External IP Addresses.png deleted file mode 100644 index a3f1b89..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud External IP Addresses.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Firewall Rules.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Firewall Rules.png deleted file mode 100644 index ff4a839..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Firewall Rules.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Functions.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Functions.png deleted file mode 100644 index 24188a4..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Functions.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud IAM.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud IAM.png deleted file mode 100644 index 31e24ba..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud IAM.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud IoT Core.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud IoT Core.png deleted file mode 100644 index cdb2ab7..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud IoT Core.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Jobs API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Jobs API.png deleted file mode 100644 index 271b502..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Jobs API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Load Balancing.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Load Balancing.png deleted file mode 100644 index b245d3c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Load Balancing.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Machine Learning.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Machine Learning.png deleted file mode 100644 index f85ff7f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Machine Learning.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Memorystore.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Memorystore.png deleted file mode 100644 index ceb3b89..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Memorystore.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Mobile App.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Mobile App.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Mobile App.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Natural Language API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Natural Language API.png deleted file mode 100644 index a8c4308..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Natural Language API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Network.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Network.png deleted file mode 100644 index 3dde351..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Network.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud PubSub.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud PubSub.png deleted file mode 100644 index 5b5610c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud PubSub.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Resource Manager.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Resource Manager.png deleted file mode 100644 index 31e24ba..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Resource Manager.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Router.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Router.png deleted file mode 100644 index f00fdf6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Router.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Routes.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Routes.png deleted file mode 100644 index 51743c9..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Routes.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud SDK.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud SDK.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud SDK.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud SQL.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud SQL.png deleted file mode 100644 index 9763c55..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud SQL.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Security Command Center.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Security Command Center.png deleted file mode 100644 index fd93a89..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Security Command Center.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Security Scanner.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Security Scanner.png deleted file mode 100644 index fca9bed..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Security Scanner.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Shell.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Shell.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Shell.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Source Repositories.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Source Repositories.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Source Repositories.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Spanner.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Spanner.png deleted file mode 100644 index 88068fb..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Spanner.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Speech API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Speech API.png deleted file mode 100644 index fd5ccea..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Speech API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Storage.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Storage.png deleted file mode 100644 index 3b7bb1a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Storage.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud TPU.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud TPU.png deleted file mode 100644 index 158946a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud TPU.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Test Lab.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Test Lab.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Test Lab.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Text-to-Speech.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Text-to-Speech.png deleted file mode 100644 index 5822fa6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Text-to-Speech.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for Android Studio.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for Android Studio.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for Android Studio.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for IntelliJ.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for IntelliJ.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for IntelliJ.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for PowerShell.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for PowerShell.png deleted file mode 100644 index bc2bd2c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for PowerShell.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for Visual Studio.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for Visual Studio.png deleted file mode 100644 index eef3f78..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Tools for Visual Studio.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Translation API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Translation API.png deleted file mode 100644 index 6997d9f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Translation API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud VPN.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud VPN.png deleted file mode 100644 index ef51194..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud VPN.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Video Intelligence API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Video Intelligence API.png deleted file mode 100644 index 1c6e00c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Video Intelligence API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Vision API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Vision API.png deleted file mode 100644 index 28e2d63..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud Vision API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud-Dataflow.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud-Dataflow.png deleted file mode 100644 index 6f2473c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud-Dataflow.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud-Dataproc.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud-Dataproc.png deleted file mode 100644 index 843cf28..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Cloud-Dataproc.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Compute Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Compute Engine.png deleted file mode 100644 index a4b52d9..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Compute Engine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Compute-Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Compute-Engine.png deleted file mode 100644 index 93463fc..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Compute-Engine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Builder.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Builder.png deleted file mode 100644 index d09c343..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Builder.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Engine.png deleted file mode 100644 index 0e434e3..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Engine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Registry.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Registry.png deleted file mode 100644 index e645187..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container Registry.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container-Engine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container-Engine.png deleted file mode 100644 index 3d1434e..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container-Engine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container-Optimized OS.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container-Optimized OS.png deleted file mode 100644 index 67a2504..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Container-Optimized OS.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Data Loss Prevention API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Data Loss Prevention API.png deleted file mode 100644 index 1f4e154..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Data Loss Prevention API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Data Studio.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Data Studio.png deleted file mode 100644 index a930f8e..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Data Studio.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Debugger.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Debugger.png deleted file mode 100644 index 74418c0..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Debugger.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Dedicated Interconnect.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Dedicated Interconnect.png deleted file mode 100644 index d11202d..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Dedicated Interconnect.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Developer Portal.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Developer Portal.png deleted file mode 100644 index 190acb4..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Developer Portal.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Dialogflow Enterprise Edition.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Dialogflow Enterprise Edition.png deleted file mode 100644 index 7166aec..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Dialogflow Enterprise Edition.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Error Reporting.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Error Reporting.png deleted file mode 100644 index b187414..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Error Reporting.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Forseti_lockup.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Forseti_lockup.png deleted file mode 100644 index 2d90728..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Forseti_lockup.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Forseti_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Forseti_logo.png deleted file mode 100644 index cb41fd3..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Forseti_logo.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/GPU.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/GPU.png deleted file mode 100644 index 94a26fd..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/GPU.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Generic GCP.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Generic GCP.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Generic GCP.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Genomics.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Genomics.png deleted file mode 100644 index 3a463ca..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Genomics.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Cloud Platform.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Cloud Platform.png deleted file mode 100644 index 451fa4a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Cloud Platform.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Cloud Platform_lockup.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Cloud Platform_lockup.png deleted file mode 100644 index c1f20ba..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Cloud Platform_lockup.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Plugin for Eclipse.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Plugin for Eclipse.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Google Plugin for Eclipse.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Identity-Aware Proxy.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Identity-Aware Proxy.png deleted file mode 100644 index 722a7f2..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Identity-Aware Proxy.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Istio_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Istio_logo.png deleted file mode 100644 index 6d36a4e..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Istio_logo.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Key Management Service.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Key Management Service.png deleted file mode 100644 index 46edd26..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Key Management Service.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Kubernetes_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Kubernetes_logo.png deleted file mode 100644 index cbe1bf1..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Kubernetes_logo.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Kubernetes_name.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Kubernetes_name.png deleted file mode 100644 index 272ddb2..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Kubernetes_name.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Logging.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Logging.png deleted file mode 100644 index 800aa37..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Logging.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Monitoring.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Monitoring.png deleted file mode 100644 index 85243df..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Monitoring.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Partner Interconnect.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Partner Interconnect.png deleted file mode 100644 index be0e43f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Partner Interconnect.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Persistent Disk.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Persistent Disk.png deleted file mode 100644 index 4be2acf..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Persistent Disk.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Prediction API.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Prediction API.png deleted file mode 100644 index 9eb52c9..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Prediction API.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Premium Network Tier.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Premium Network Tier.png deleted file mode 100644 index 5de7b57..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Premium Network Tier.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Security Key Enforcement.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Security Key Enforcement.png deleted file mode 100644 index 75da211..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Security Key Enforcement.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Stackdriver.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Stackdriver.png deleted file mode 100644 index 614e569..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Stackdriver.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Standard Network Tier.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Standard Network Tier.png deleted file mode 100644 index 674e95f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Standard Network Tier.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/TensorFlow_lockup.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/TensorFlow_lockup.png deleted file mode 100644 index 048d95b..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/TensorFlow_lockup.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/TensorFlow_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/TensorFlow_logo.png deleted file mode 100644 index 225f273..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/TensorFlow_logo.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Trace.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Trace.png deleted file mode 100644 index 9c90cd4..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Trace.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Transfer Appliance.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Transfer Appliance.png deleted file mode 100644 index 8b9cf7a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Transfer Appliance.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Virtual Private Cloud.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Virtual Private Cloud.png deleted file mode 100644 index 7944217..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/Virtual Private Cloud.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/cloud_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/cloud_logo.png deleted file mode 100644 index 43d58bc..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/cloud_logo.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/folder_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/folder_logo.png deleted file mode 100644 index 890c233..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/folder_logo.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_autoscaling.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_autoscaling.png deleted file mode 100644 index cff08c4..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_autoscaling.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_custom-virtual-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_custom-virtual-machine.png deleted file mode 100644 index 9abba86..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_custom-virtual-machine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_high-CPU-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_high-CPU-machine.png deleted file mode 100644 index 744785b..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_high-CPU-machine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_high-memory-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_high-memory-machine.png deleted file mode 100644 index 09cc085..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_high-memory-machine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_preemptable-vm.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_preemptable-vm.png deleted file mode 100644 index 69f0b9f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_preemptable-vm.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_shared-core-machine-F1.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_shared-core-machine-F1.png deleted file mode 100644 index 3a3fa98..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_shared-core-machine-F1.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_shared-core-machine-G1.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_shared-core-machine-G1.png deleted file mode 100644 index 2b968f1..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_shared-core-machine-G1.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_standard-machine.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_standard-machine.png deleted file mode 100644 index 40ac278..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_standard-machine.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_storage.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_storage.png deleted file mode 100644 index 6e59e1a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/modifiers_storage.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/project_logo.png b/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/project_logo.png deleted file mode 100644 index 28adc62..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/Products & Services/public/project_logo.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/Products & Services/upload.sh b/forseti-api/dist-forseti-visualizer-ui/Products & Services/upload.sh deleted file mode 100644 index 8778cc5..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/Products & Services/upload.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -# Copyright 2019 Google LLC -# -# 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. - -export TEMP_DIR="public" -export BUCKET_NAME="gs://forseti-visualizer-icons" - -mkdir $TEMP_DIR - -find . -name "*.png" -exec cp {} $TEMP_DIR \; -print - -gsutil cp -R $TEMP_DIR $BUCKET_NAME - -gsutil iam ch allUsers:objectViewer $BUCKET_NAME diff --git a/forseti-api/dist-forseti-visualizer-ui/dataset1_iamexplainbyuser.json b/forseti-api/dist-forseti-visualizer-ui/dataset1_iamexplainbyuser.json deleted file mode 100644 index 88ba35b..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/dataset1_iamexplainbyuser.json +++ /dev/null @@ -1,73 +0,0 @@ -[{ - "resources": ["organization/358329783625"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/compute.admin" -}, { - "resources": ["organization/358329783625"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/compute.xpnAdmin" -}, { - "resources": ["organization/358329783625"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/iam.organizationRoleAdmin" -}, { - "resources": ["organization/358329783625"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/orgpolicy.policyAdmin" -}, { - "resources": ["organization/358329783625"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/owner" -}, { - "resources": ["organization/358329783625"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/resourcemanager.folderAdmin" -}, { - "resources": ["organization/358329783625"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/resourcemanager.organizationAdmin" -}, { - "resources": ["organization/358329783625"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/resourcemanager.projectCreator" -}, { - "resources": ["organization/358329783625"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/storage.admin" -}, { - "resources": ["folder/379678980128"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/resourcemanager.folderAdmin" -}, { - "resources": ["folder/379678980128"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/resourcemanager.folderEditor" -}, { - "resources": ["folder/631974286168"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/resourcemanager.folderAdmin" -}, { - "resources": ["folder/631974286168"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/resourcemanager.folderEditor" -}, { - "resources": ["project/the-core"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/compute.admin" -}, { - "resources": ["project/the-core"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/editor" -}, { - "resources": ["project/cloud-identity-log-export"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/compute.networkUser" -}, { - "resources": ["project/cloud-identity-log-export"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/owner" -}, { - "resources": ["tf-lb-https-gke"], - "member": "user/garrettwong@mycloud.com", - "role": "roles/container.admin" -}] \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/dataset1_resources.json b/forseti-api/dist-forseti-visualizer-ui/dataset1_resources.json deleted file mode 100644 index 91484a0..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/dataset1_resources.json +++ /dev/null @@ -1,2231 +0,0 @@ -[{ - "id": 1086937, - "resource_type": "organization", - "category": "resource", - "resource_id": "358329783624", - "parent_id": null, - "resource_data_displayname": "mycloud.com", - "resource_data_name": "organizations/358329783624", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087269, - "resource_type": "folder", - "category": "resource", - "resource_id": "379678980128", - "parent_id": 1086937, - "resource_data_displayname": "Machine Learning", - "resource_data_name": "folders/379678980128", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087270, - "resource_type": "folder", - "category": "resource", - "resource_id": "631974286168", - "parent_id": 1086937, - "resource_data_displayname": "Common Services", - "resource_data_name": "folders/631974286168", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087271, - "resource_type": "folder", - "category": "resource", - "resource_id": "95108949912", - "parent_id": 1086937, - "resource_data_displayname": "Next2019", - "resource_data_name": "folders/95108949912", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087272, - "resource_type": "folder", - "category": "resource", - "resource_id": "429021693524", - "parent_id": 1086937, - "resource_data_displayname": "Audit", - "resource_data_name": "folders/429021693524", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087268, - "resource_type": "project", - "category": "resource", - "resource_id": "datadog", - "parent_id": 1086937, - "resource_data_displayname": "", - "resource_data_name": "datadog", - "qq": "DELETE_REQUESTED", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087273, - "resource_type": "project", - "category": "resource", - "resource_id": "actions-codelab2-c23dc", - "parent_id": 1086937, - "resource_data_displayname": "", - "resource_data_name": "actions-codelab2", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087274, - "resource_type": "project", - "category": "resource", - "resource_id": "actions-codelab-2b402", - "parent_id": 1086937, - "resource_data_displayname": "", - "resource_data_name": "actions-codelab", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087275, - "resource_type": "project", - "category": "resource", - "resource_id": "the-core", - "parent_id": 1086937, - "resource_data_displayname": "", - "resource_data_name": "the-core", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087598, - "resource_type": "project", - "category": "resource", - "resource_id": "forsetiviz", - "parent_id": 1087271, - "resource_data_displayname": "", - "resource_data_name": "forsetiviz", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087601, - "resource_type": "project", - "category": "resource", - "resource_id": "machine-learning-space-60f8", - "parent_id": 1087269, - "resource_data_displayname": "", - "resource_data_name": "machine-learning-space", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087457, - "resource_type": "project", - "category": "resource", - "resource_id": "devops-1ca6", - "parent_id": 1087270, - "resource_data_displayname": "", - "resource_data_name": "devops", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087458, - "resource_type": "project", - "category": "resource", - "resource_id": "cloud-identity-log-export-e896", - "parent_id": 1087272, - "resource_data_displayname": "", - "resource_data_name": "cloud-identity-log-export", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087460, - "resource_type": "project", - "category": "resource", - "resource_id": "log-sinks-13e2", - "parent_id": 1087270, - "resource_data_displayname": "", - "resource_data_name": "log-sinks", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087461, - "resource_type": "project", - "category": "resource", - "resource_id": "billing-export-224721", - "parent_id": 1087272, - "resource_data_displayname": "", - "resource_data_name": "billing-export", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087462, - "resource_type": "project", - "category": "resource", - "resource_id": "gwc-service-accounts", - "parent_id": 1087270, - "resource_data_displayname": "", - "resource_data_name": "gwc-service-accounts", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087476, - "resource_type": "project", - "category": "resource", - "resource_id": "forseti-security-1e88", - "parent_id": 1087272, - "resource_data_displayname": "", - "resource_data_name": "forseti-security", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087486, - "resource_type": "project", - "category": "resource", - "resource_id": "sandbox-d24a", - "parent_id": 1087270, - "resource_data_displayname": "", - "resource_data_name": "sandbox", - "qq": "ACTIVE", - "inventory_index_id": 1552609278876965 -}, { - "id": 1087747, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "f870bb1119d03960447cf5607fdc23d983f5cba1", - "parent_id": 1087728, - "resource_data_displayname": "", - "resource_data_name": "projects/sandbox-d24a/serviceAccounts/dialogflow-igjexa@sandbox-d24a.iam.gserviceaccount.com/keys/f870bb1119d03960447cf5607fdc23d983f5cba1", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087748, - "resource_type": "network", - "category": "resource", - "resource_id": "6682783915782212445", - "parent_id": 1087458, - "resource_data_displayname": "", - "resource_data_name": "default", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087749, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "108061090596963688110", - "parent_id": 1087486, - "resource_data_displayname": "App Engine default service account", - "resource_data_name": "projects/sandbox-d24a/serviceAccounts/sandbox-d24a@appspot.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087519, - "resource_type": "dataset", - "category": "resource", - "resource_id": "log-sinks-13e2:billing_dataset", - "parent_id": 1087460, - "resource_data_displayname": "", - "resource_data_name": "", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087520, - "resource_type": "appengine_app", - "category": "resource", - "resource_id": "12895176895115487131", - "parent_id": 1087486, - "resource_data_displayname": "", - "resource_data_name": "apps/sandbox-d24a", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087523, - "resource_type": "dataset", - "category": "resource", - "resource_id": "sandbox-d24a:_a0de8134e431651da41eebdd63aff3d91712bac0", - "parent_id": 1087486, - "resource_data_displayname": "", - "resource_data_name": "", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087526, - "resource_type": "dataset", - "category": "resource", - "resource_id": "sandbox-d24a:_f64394b2e029e57be754bd1289d9c6239a8233a4", - "parent_id": 1087486, - "resource_data_displayname": "", - "resource_data_name": "", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087276, - "resource_type": "appengine_app", - "category": "resource", - "resource_id": "13425635519886651018", - "parent_id": 1087273, - "resource_data_displayname": "", - "resource_data_name": "apps/actions-codelab2-c23dc", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087277, - "resource_type": "appengine_app", - "category": "resource", - "resource_id": "7945097770081965604", - "parent_id": 1087274, - "resource_data_displayname": "", - "resource_data_name": "apps/actions-codelab-2b402", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087533, - "resource_type": "dataset", - "category": "resource", - "resource_id": "sandbox-d24a:demos", - "parent_id": 1087486, - "resource_data_displayname": "", - "resource_data_name": "", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087789, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "103637530803869903316", - "parent_id": 1087462, - "resource_data_displayname": "terraform", - "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/terraform@gwc-service-accounts.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087278, - "resource_type": "appengine_app", - "category": "resource", - "resource_id": "12124268524944363433", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "apps/gwc-core", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087280, - "resource_type": "dataset", - "category": "resource", - "resource_id": "actions-codelab-2b402:_a0de8134e431651da41eebdd63aff3d91712bac0", - "parent_id": 1087274, - "resource_data_displayname": "", - "resource_data_name": "", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087538, - "resource_type": "network", - "category": "resource", - "resource_id": "2367329402438925077", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "cloud-sql-network", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087539, - "resource_type": "network", - "category": "resource", - "resource_id": "8520483207830141801", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "datalab-network", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087540, - "resource_type": "network", - "category": "resource", - "resource_id": "9166398486162884720", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "default", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087541, - "resource_type": "network", - "category": "resource", - "resource_id": "6783578822461276754", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "msad-1-net", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087542, - "resource_type": "network", - "category": "resource", - "resource_id": "3668895297047108157", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "test-vpc", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087297, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "112216796485388173458", - "parent_id": 1087273, - "resource_data_displayname": "App Engine default service account", - "resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/actions-codelab2-c23dc@appspot.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087810, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "181e7ae878a7aa904867465f56c56a1fa09c0aef", - "parent_id": 1087789, - "resource_data_displayname": "", - "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/terraform@gwc-service-accounts.iam.gserviceaccount.com/keys/181e7ae878a7aa904867465f56c56a1fa09c0aef", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087299, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "110926080687946263114", - "parent_id": 1087274, - "resource_data_displayname": "Dialogflow Integrations", - "resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/dialogflow-ldljmb@actions-codelab-2b402.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087811, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "70dadc2b7b6933386b2ec6785c01036a12fd5e5b", - "parent_id": 1087789, - "resource_data_displayname": "", - "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/terraform@gwc-service-accounts.iam.gserviceaccount.com/keys/70dadc2b7b6933386b2ec6785c01036a12fd5e5b", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087812, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "115009270172643806285", - "parent_id": 1087486, - "resource_data_displayname": "firebase-adminsdk", - "resource_data_name": "projects/sandbox-d24a/serviceAccounts/firebase-adminsdk-bzpww@sandbox-d24a.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087813, - "resource_type": "instance", - "category": "resource", - "resource_id": "3594925605044832310", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "forseti-client-vm-586f404", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087302, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "6bdb3d2678f354e7e135a1129bc13df98587bec1", - "parent_id": 1087299, - "resource_data_displayname": "", - "resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/dialogflow-ldljmb@actions-codelab-2b402.iam.gserviceaccount.com/keys/6bdb3d2678f354e7e135a1129bc13df98587bec1", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087814, - "resource_type": "instance", - "category": "resource", - "resource_id": "8486162231495969663", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "forseti-server-vm-586f404", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087303, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "110156228593365405487", - "parent_id": 1087273, - "resource_data_displayname": "firebase-adminsdk", - "resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/firebase-adminsdk-ja904@actions-codelab2-c23dc.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087815, - "resource_type": "instance", - "category": "resource", - "resource_id": "6813813017106770059", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "forseti-viz", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087304, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "116253849059323265974", - "parent_id": 1087274, - "resource_data_displayname": "App Engine default service account", - "resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/actions-codelab-2b402@appspot.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087305, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "117224473281259054462", - "parent_id": 1087273, - "resource_data_displayname": "Dialogflow Integrations", - "resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/dialogflow-vwavgg@actions-codelab2-c23dc.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087306, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "111257885974099395354", - "parent_id": 1087274, - "resource_data_displayname": "firebase-adminsdk", - "resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/firebase-adminsdk-su0if@actions-codelab-2b402.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087307, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "c361c09f92c96d133416fc8cd9be2765ddd5200c", - "parent_id": 1087305, - "resource_data_displayname": "", - "resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/dialogflow-vwavgg@actions-codelab2-c23dc.iam.gserviceaccount.com/keys/c361c09f92c96d133416fc8cd9be2765ddd5200c", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087309, - "resource_type": "dataset", - "category": "resource", - "resource_id": "gwc-core:_4784c839abe01535aeb06117b4eadd1bdff4d036", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087822, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "107406175416283934817", - "parent_id": 1087462, - "resource_data_displayname": "Compute Engine default service account", - "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/724908491897-compute@developer.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087316, - "resource_type": "dataset", - "category": "resource", - "resource_id": "gwc-core:_a0de8134e431651da41eebdd63aff3d91712bac0", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087319, - "resource_type": "dataset", - "category": "resource", - "resource_id": "gwc-core:audit_logs", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087838, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "114644472468659911846", - "parent_id": 1087461, - "resource_data_displayname": "Compute Engine default service account", - "resource_data_name": "projects/billing-export-224721/serviceAccounts/821978887269-compute@developer.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087839, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "103052378991472800101", - "parent_id": 1087486, - "resource_data_displayname": "Sandbox Service Account", - "resource_data_name": "projects/sandbox-d24a/serviceAccounts/sandbox-sa@sandbox-d24a.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087841, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "101412755338781731808", - "parent_id": 1087462, - "resource_data_displayname": "deployment-sa", - "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/deployment-sa@gwc-service-accounts.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087844, - "resource_type": "network", - "category": "resource", - "resource_id": "8529250661964401263", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "default", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087589, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "114673245419123644810", - "parent_id": 1087275, - "resource_data_displayname": "cloud-identity-sa", - "resource_data_name": "projects/gwc-core/serviceAccounts/cloud-identity-sa@gwc-core.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087845, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "112584810090416955649", - "parent_id": 1087458, - "resource_data_displayname": "Compute Engine default service account", - "resource_data_name": "projects/cloud-identity-log-export-e896/serviceAccounts/716672103529-compute@developer.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087590, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "3b229bf74cc286f7cb7ecc5cac711c4f29f157b6", - "parent_id": 1087589, - "resource_data_displayname": "", - "resource_data_name": "projects/gwc-core/serviceAccounts/cloud-identity-sa@gwc-core.iam.gserviceaccount.com/keys/3b229bf74cc286f7cb7ecc5cac711c4f29f157b6", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087846, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "77983d81a130c15f09463ad216945ef586fa07ed", - "parent_id": 1087841, - "resource_data_displayname": "", - "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/deployment-sa@gwc-service-accounts.iam.gserviceaccount.com/keys/77983d81a130c15f09463ad216945ef586fa07ed", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087591, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2", - "parent_id": 1087589, - "resource_data_displayname": "", - "resource_data_name": "projects/gwc-core/serviceAccounts/cloud-identity-sa@gwc-core.iam.gserviceaccount.com/keys/619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087592, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "105851209756305009829", - "parent_id": 1087275, - "resource_data_displayname": "Compute Engine default service account", - "resource_data_name": "projects/gwc-core/serviceAccounts/1012227841684-compute@developer.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087848, - "resource_type": "instance", - "category": "resource", - "resource_id": "1284527881802702040", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "gke-tf-lb-https-gke-default-pool-25a75700-1cjx", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087593, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "113724968357944586915", - "parent_id": 1087275, - "resource_data_displayname": "App Engine default service account", - "resource_data_name": "projects/gwc-core/serviceAccounts/gwc-core@appspot.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087849, - "resource_type": "instance", - "category": "resource", - "resource_id": "1365024326368058543", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "gke-tf-lb-https-gke-default-pool-25a75700-bn9k", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087594, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "115923635699569204829", - "parent_id": 1087275, - "resource_data_displayname": "Terraform service account", - "resource_data_name": "projects/gwc-core/serviceAccounts/terraform-sa@gwc-core.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087850, - "resource_type": "instance", - "category": "resource", - "resource_id": "1191788173398596818", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "gke-tf-lb-https-gke-default-pool-25a75700-wzfq", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087595, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "6fbe7d606eee666ef72a93fbe5904ccd9a82c689", - "parent_id": 1087594, - "resource_data_displayname": "", - "resource_data_name": "projects/gwc-core/serviceAccounts/terraform-sa@gwc-core.iam.gserviceaccount.com/keys/6fbe7d606eee666ef72a93fbe5904ccd9a82c689", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087596, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "116560305678240202448", - "parent_id": 1087275, - "resource_data_displayname": "deployment-sa", - "resource_data_name": "projects/gwc-core/serviceAccounts/deployment-sa@gwc-core.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087597, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "7e5d46ce5ed70b5efb0f6d5e7403f2f847019c4d", - "parent_id": 1087596, - "resource_data_displayname": "", - "resource_data_name": "projects/gwc-core/serviceAccounts/deployment-sa@gwc-core.iam.gserviceaccount.com/keys/7e5d46ce5ed70b5efb0f6d5e7403f2f847019c4d", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087599, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "117038248974815894357", - "parent_id": 1087275, - "resource_data_displayname": "Vault Admin", - "resource_data_name": "projects/gwc-core/serviceAccounts/vault-admin@gwc-core.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087600, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "3bea3132931ff03185fe8c176cde8cc99dfbd977", - "parent_id": 1087599, - "resource_data_displayname": "", - "resource_data_name": "projects/gwc-core/serviceAccounts/vault-admin@gwc-core.iam.gserviceaccount.com/keys/3bea3132931ff03185fe8c176cde8cc99dfbd977", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087602, - "resource_type": "appengine_app", - "category": "resource", - "resource_id": "7406181609418660989", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "apps/machine-learning-space-60f8", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087605, - "resource_type": "bucket", - "category": "resource", - "resource_id": "forseti-viz-icons", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "forseti-viz-icons", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087606, - "resource_type": "bucket", - "category": "resource", - "resource_id": "garrettwong-buckettest", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "garrettwong-buckettest", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087609, - "resource_type": "bucket", - "category": "resource", - "resource_id": "gwc-core-cloud-identity-bucket", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "gwc-core-cloud-identity-bucket", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087610, - "resource_type": "bucket", - "category": "resource", - "resource_id": "gwc-core-terraform", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "gwc-core-terraform", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087866, - "resource_type": "instance", - "category": "resource", - "resource_id": "5659742664575713443", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "gke-cl-cluster-default-pool-9f8e83ea-5m8f", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087611, - "resource_type": "bucket", - "category": "resource", - "resource_id": "gwc-core-txf", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "gwc-core-txf", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087612, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1260466199391954455", - "parent_id": 1087457, - "resource_data_displayname": "", - "resource_data_name": "allow-nat", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087868, - "resource_type": "instance", - "category": "resource", - "resource_id": "1305210344048197795", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "gke-cl-cluster-default-pool-9f8e83ea-lprx", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087613, - "resource_type": "firewall", - "category": "resource", - "resource_id": "8408436723735118928", - "parent_id": 1087457, - "resource_data_displayname": "", - "resource_data_name": "default-allow-icmp", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087614, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1879006215180436560", - "parent_id": 1087457, - "resource_data_displayname": "", - "resource_data_name": "default-allow-internal", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087870, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "105374360607252435374", - "parent_id": 1087458, - "resource_data_displayname": "Cloud Identity Service Account", - "resource_data_name": "projects/cloud-identity-log-export-e896/serviceAccounts/cloud-identity-sa@cloud-identity-log-export-e896.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087615, - "resource_type": "firewall", - "category": "resource", - "resource_id": "6104720101290067024", - "parent_id": 1087457, - "resource_data_displayname": "", - "resource_data_name": "default-allow-rdp", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087871, - "resource_type": "instance", - "category": "resource", - "resource_id": "8716914576440459428", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "gke-cl-cluster-default-pool-9f8e83ea-w0gl", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087616, - "resource_type": "firewall", - "category": "resource", - "resource_id": "2846317778922947664", - "parent_id": 1087457, - "resource_data_displayname": "", - "resource_data_name": "default-allow-ssh", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087617, - "resource_type": "firewall", - "category": "resource", - "resource_id": "8190585790517272077", - "parent_id": 1087457, - "resource_data_displayname": "", - "resource_data_name": "deny-nat-egress", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087873, - "resource_type": "instance", - "category": "resource", - "resource_id": "1349542120304269820", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "gke-forsetiviz-cluster-default-pool-d1b8ab4a-l9gq", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087618, - "resource_type": "firewall", - "category": "resource", - "resource_id": "4681437096951735725", - "parent_id": 1087457, - "resource_data_displayname": "", - "resource_data_name": "deny-to-nat", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087619, - "resource_type": "bucket", - "category": "resource", - "resource_id": "gwc-core-vault", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "gwc-core-vault", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087620, - "resource_type": "bucket", - "category": "resource", - "resource_id": "gwc-core-vault-assets", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "gwc-core-vault-assets", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087621, - "resource_type": "bucket", - "category": "resource", - "resource_id": "gwc-core.appspot.com", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "gwc-core.appspot.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087622, - "resource_type": "bucket", - "category": "resource", - "resource_id": "staging.gwc-core.appspot.com", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "staging.gwc-core.appspot.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087623, - "resource_type": "bucket", - "category": "resource", - "resource_id": "us.artifacts.gwc-core.appspot.com", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "us.artifacts.gwc-core.appspot.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087879, - "resource_type": "network", - "category": "resource", - "resource_id": "7819493649714347229", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "default", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087624, - "resource_type": "firewall", - "category": "resource", - "resource_id": "8840757871121191570", - "parent_id": 1087462, - "resource_data_displayname": "", - "resource_data_name": "default-allow-icmp", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087880, - "resource_type": "network", - "category": "resource", - "resource_id": "6625292033309551567", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "tf-lb-https-gke", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087625, - "resource_type": "firewall", - "category": "resource", - "resource_id": "154428764001587858", - "parent_id": 1087462, - "resource_data_displayname": "", - "resource_data_name": "default-allow-internal", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087626, - "resource_type": "firewall", - "category": "resource", - "resource_id": "4730986369469043346", - "parent_id": 1087462, - "resource_data_displayname": "", - "resource_data_name": "default-allow-rdp", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087627, - "resource_type": "firewall", - "category": "resource", - "resource_id": "3213663656032785042", - "parent_id": 1087462, - "resource_data_displayname": "", - "resource_data_name": "default-allow-ssh", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087883, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "6a1f60f162aff5348c3013658a524610904a67ef", - "parent_id": 1087870, - "resource_data_displayname": "", - "resource_data_name": "projects/cloud-identity-log-export-e896/serviceAccounts/cloud-identity-sa@cloud-identity-log-export-e896.iam.gserviceaccount.com/keys/6a1f60f162aff5348c3013658a524610904a67ef", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087628, - "resource_type": "instance", - "category": "resource", - "resource_id": "2637731837486884872", - "parent_id": 1087457, - "resource_data_displayname": "", - "resource_data_name": "nat-instance", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087629, - "resource_type": "firewall", - "category": "resource", - "resource_id": "4959239979711782591", - "parent_id": 1087461, - "resource_data_displayname": "", - "resource_data_name": "default-allow-icmp", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087885, - "resource_type": "network", - "category": "resource", - "resource_id": "5858401807007079739", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "default", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087630, - "resource_type": "instance", - "category": "resource", - "resource_id": "623843538070989298", - "parent_id": 1087457, - "resource_data_displayname": "", - "resource_data_name": "natted-instance", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087886, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "113912014131861751716", - "parent_id": 1087460, - "resource_data_displayname": "log-sinks Project Service Account", - "resource_data_name": "projects/log-sinks-13e2/serviceAccounts/project-service-account@log-sinks-13e2.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087631, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1802803161659006655", - "parent_id": 1087461, - "resource_data_displayname": "", - "resource_data_name": "default-allow-internal", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087632, - "resource_type": "firewall", - "category": "resource", - "resource_id": "6936203938477825727", - "parent_id": 1087461, - "resource_data_displayname": "", - "resource_data_name": "default-allow-rdp", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087633, - "resource_type": "firewall", - "category": "resource", - "resource_id": "4085155770665197247", - "parent_id": 1087461, - "resource_data_displayname": "", - "resource_data_name": "default-allow-ssh", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087634, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1474260097917291323", - "parent_id": 1087458, - "resource_data_displayname": "", - "resource_data_name": "default-allow-icmp", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087635, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1870970434454063931", - "parent_id": 1087458, - "resource_data_displayname": "", - "resource_data_name": "default-allow-internal", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087636, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1981283667269684027", - "parent_id": 1087458, - "resource_data_displayname": "", - "resource_data_name": "default-allow-rdp", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087637, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1723232115046517563", - "parent_id": 1087458, - "resource_data_displayname": "", - "resource_data_name": "default-allow-ssh", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087638, - "resource_type": "network", - "category": "resource", - "resource_id": "5586891510912435277", - "parent_id": 1087457, - "resource_data_displayname": "", - "resource_data_name": "default", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087639, - "resource_type": "cloudsqlinstance", - "category": "resource", - "resource_id": "2949407881675395326", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "forseti-server-db-586f404", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087645, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "112534036763134582613", - "parent_id": 1087486, - "resource_data_displayname": "cloud-identity-sa", - "resource_data_name": "projects/sandbox-d24a/serviceAccounts/cloud-identity-sa@sandbox-d24a.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087906, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "110382659820927879347", - "parent_id": 1087476, - "resource_data_displayname": "Compute Engine default service account", - "resource_data_name": "projects/forseti-security-1e88/serviceAccounts/521541240037-compute@developer.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087919, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "eb6651a1fdaff077959a5ede567614cabc9137b7", - "parent_id": 1087906, - "resource_data_displayname": "", - "resource_data_name": "projects/forseti-security-1e88/serviceAccounts/521541240037-compute@developer.gserviceaccount.com/keys/eb6651a1fdaff077959a5ede567614cabc9137b7", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087921, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "be66264f720a23f37ac32f847c9e28e57a0b9821", - "parent_id": 1087906, - "resource_data_displayname": "", - "resource_data_name": "projects/forseti-security-1e88/serviceAccounts/521541240037-compute@developer.gserviceaccount.com/keys/be66264f720a23f37ac32f847c9e28e57a0b9821", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087669, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "9167572ee699c606085ee658d0f2856b40c165a3", - "parent_id": 1087645, - "resource_data_displayname": "", - "resource_data_name": "projects/sandbox-d24a/serviceAccounts/cloud-identity-sa@sandbox-d24a.iam.gserviceaccount.com/keys/9167572ee699c606085ee658d0f2856b40c165a3", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087671, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "7e42a7c738ec078a05533980ecad4173578d22d8", - "parent_id": 1087645, - "resource_data_displayname": "", - "resource_data_name": "projects/sandbox-d24a/serviceAccounts/cloud-identity-sa@sandbox-d24a.iam.gserviceaccount.com/keys/7e42a7c738ec078a05533980ecad4173578d22d8", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087674, - "resource_type": "firewall", - "category": "resource", - "resource_id": "3559637054228243367", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "app-fw", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087930, - "resource_type": "bucket", - "category": "resource", - "resource_id": "artifacts.sandbox-d24a.appspot.com", - "parent_id": 1087486, - "resource_data_displayname": "", - "resource_data_name": "artifacts.sandbox-d24a.appspot.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087675, - "resource_type": "firewall", - "category": "resource", - "resource_id": "3658969782248009627", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "block85", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087676, - "resource_type": "firewall", - "category": "resource", - "resource_id": "5419153792255191193", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "default-allow-http", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087677, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1918152733254722973", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "default-allow-http-8080", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087678, - "resource_type": "firewall", - "category": "resource", - "resource_id": "2451771014981675160", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "default-allow-https", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087679, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "100197118367544255719", - "parent_id": 1087486, - "resource_data_displayname": "Compute Engine default service account", - "resource_data_name": "projects/sandbox-d24a/serviceAccounts/147925056168-compute@developer.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087680, - "resource_type": "firewall", - "category": "resource", - "resource_id": "797528068453578342", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "express-fw", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087681, - "resource_type": "firewall", - "category": "resource", - "resource_id": "5789176365957240934", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "firewall-rules-grpc", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087682, - "resource_type": "firewall", - "category": "resource", - "resource_id": "2367746070100265389", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "forseti-client-allow-ssh-external-586f404", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087683, - "resource_type": "firewall", - "category": "resource", - "resource_id": "6869999435676862902", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "forseti-client-deny-all-586f404", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087684, - "resource_type": "firewall", - "category": "resource", - "resource_id": "6347185470600334096", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "forseti-server-allow-grpc-586f404", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087685, - "resource_type": "firewall", - "category": "resource", - "resource_id": "5794008895649695996", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "forseti-server-allow-ssh-external-586f404", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087686, - "resource_type": "firewall", - "category": "resource", - "resource_id": "8354713138199218974", - "parent_id": 1087476, - "resource_data_displayname": "", - "resource_data_name": "forseti-server-deny-all-586f404", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087942, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "113486930990684019570", - "parent_id": 1087476, - "resource_data_displayname": "forseti-server-gcp-586f404", - "resource_data_name": "projects/forseti-security-1e88/serviceAccounts/forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087687, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "d6e2676e4cd6e279cc9d26db08a8b3f1853d1ffd", - "parent_id": 1087679, - "resource_data_displayname": "", - "resource_data_name": "projects/sandbox-d24a/serviceAccounts/147925056168-compute@developer.gserviceaccount.com/keys/d6e2676e4cd6e279cc9d26db08a8b3f1853d1ffd", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087943, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "113107835673196937238", - "parent_id": 1087601, - "resource_data_displayname": "firebase-adminsdk", - "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/firebase-adminsdk-2gg81@machine-learning-space-60f8.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087688, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "106791106999041034442", - "parent_id": 1087457, - "resource_data_displayname": "Dev Ops Service Account", - "resource_data_name": "projects/devops-1ca6/serviceAccounts/devops-sa@devops-1ca6.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087944, - "resource_type": "bucket", - "category": "resource", - "resource_id": "eu-bucket-gcs", - "parent_id": 1087486, - "resource_data_displayname": "", - "resource_data_name": "eu-bucket-gcs", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087689, - "resource_type": "firewall", - "category": "resource", - "resource_id": "6561904487888682171", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "default-allow-icmp", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087690, - "resource_type": "network", - "category": "resource", - "resource_id": "2258776410475385487", - "parent_id": 1087462, - "resource_data_displayname": "", - "resource_data_name": "default", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087691, - "resource_type": "firewall", - "category": "resource", - "resource_id": "5061568228366081308", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "default-allow-icmp", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087692, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "115085871534648005204", - "parent_id": 1087486, - "resource_data_displayname": "my translation lab service account", - "resource_data_name": "projects/sandbox-d24a/serviceAccounts/my-video-int-sa@sandbox-d24a.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087948, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "103741238050124993901", - "parent_id": 1087598, - "resource_data_displayname": "Compute Engine default service account", - "resource_data_name": "projects/forsetiviz/serviceAccounts/656666665848-compute@developer.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087693, - "resource_type": "firewall", - "category": "resource", - "resource_id": "770007614534024379", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "default-allow-internal", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087949, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "117226999893450872731", - "parent_id": 1087476, - "resource_data_displayname": "forseti-client-gcp-586f404", - "resource_data_name": "projects/forseti-security-1e88/serviceAccounts/forseti-client-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087694, - "resource_type": "firewall", - "category": "resource", - "resource_id": "8319158338057788701", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "default-allow-internal", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087950, - "resource_type": "bucket", - "category": "resource", - "resource_id": "sandbox-d24a-lb-assets-9c8b", - "parent_id": 1087486, - "resource_data_displayname": "", - "resource_data_name": "sandbox-d24a-lb-assets-9c8b", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087695, - "resource_type": "firewall", - "category": "resource", - "resource_id": "7186315676718824635", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "default-allow-rdp", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087696, - "resource_type": "firewall", - "category": "resource", - "resource_id": "7513218054359735580", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "default-allow-rdp", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087697, - "resource_type": "firewall", - "category": "resource", - "resource_id": "2702390912279215291", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "default-allow-ssh", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087698, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1603709377119378717", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "default-allow-ssh", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087954, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "105521825310981536781", - "parent_id": 1087601, - "resource_data_displayname": "Cloud Identity Service Account", - "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/cloud-identity-sa@machine-learning-space-60f8.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087699, - "resource_type": "firewall", - "category": "resource", - "resource_id": "3803766427012574135", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "gke-tf-lb-https-gke-aa62a218-all", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087700, - "resource_type": "firewall", - "category": "resource", - "resource_id": "8591193285889392857", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "gke-cl-cluster-044938d7-all", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087956, - "resource_type": "bucket", - "category": "resource", - "resource_id": "sandbox-d24a-txf", - "parent_id": 1087486, - "resource_data_displayname": "", - "resource_data_name": "sandbox-d24a-txf", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087701, - "resource_type": "firewall", - "category": "resource", - "resource_id": "285018743533480888", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "gke-tf-lb-https-gke-aa62a218-ssh", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087702, - "resource_type": "firewall", - "category": "resource", - "resource_id": "4479623730538512602", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "gke-cl-cluster-044938d7-ssh", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087958, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "817321bb30aa63c7ba5688e5308c1e597016eb60", - "parent_id": 1087954, - "resource_data_displayname": "", - "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/cloud-identity-sa@machine-learning-space-60f8.iam.gserviceaccount.com/keys/817321bb30aa63c7ba5688e5308c1e597016eb60", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087703, - "resource_type": "firewall", - "category": "resource", - "resource_id": "927533043422604215", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "gke-tf-lb-https-gke-aa62a218-vms", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087959, - "resource_type": "bucket", - "category": "resource", - "resource_id": "sandbox-d24a.appspot.com", - "parent_id": 1087486, - "resource_data_displayname": "", - "resource_data_name": "sandbox-d24a.appspot.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087448, - "resource_type": "dataset", - "category": "resource", - "resource_id": "gwc-core:demos", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087704, - "resource_type": "firewall", - "category": "resource", - "resource_id": "273566788756209882", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "gke-cl-cluster-044938d7-vms", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087960, - "resource_type": "kubernetes_cluster", - "category": "resource", - "resource_id": "6359115376722877353", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "cl-cluster", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087705, - "resource_type": "network", - "category": "resource", - "resource_id": "5928899249887698626", - "parent_id": 1087461, - "resource_data_displayname": "", - "resource_data_name": "default", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087961, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "104261382341648333601", - "parent_id": 1087601, - "resource_data_displayname": "Dialogflow Integrations", - "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/dialogflow-viuvwl@machine-learning-space-60f8.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087706, - "resource_type": "firewall", - "category": "resource", - "resource_id": "4834178662425487078", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "k8s-542aec7db3ea1d72-node-http-hc", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087962, - "resource_type": "bucket", - "category": "resource", - "resource_id": "staging.sandbox-d24a.appspot.com", - "parent_id": 1087486, - "resource_data_displayname": "", - "resource_data_name": "staging.sandbox-d24a.appspot.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087707, - "resource_type": "firewall", - "category": "resource", - "resource_id": "8187257422791432676", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "gke-forsetiviz-cluster-f293571b-all", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087963, - "resource_type": "kubernetes_cluster", - "category": "resource", - "resource_id": "10556751157192063221", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "forsetiviz-cluster", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087708, - "resource_type": "firewall", - "category": "resource", - "resource_id": "4288703620966606167", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "k8s-8c74983584882cf4-node-http-hc", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087964, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "630a2263e95a102deacbcaccf97fb53c6e6dc038", - "parent_id": 1087961, - "resource_data_displayname": "", - "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/dialogflow-viuvwl@machine-learning-space-60f8.iam.gserviceaccount.com/keys/630a2263e95a102deacbcaccf97fb53c6e6dc038", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087453, - "resource_type": "bucket", - "category": "resource", - "resource_id": "actions-codelab2-c23dc.appspot.com", - "parent_id": 1087273, - "resource_data_displayname": "", - "resource_data_name": "actions-codelab2-c23dc.appspot.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087965, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "118339782968778270113", - "parent_id": 1087601, - "resource_data_displayname": "Compute Engine default service account", - "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/428092455983-compute@developer.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087454, - "resource_type": "bucket", - "category": "resource", - "resource_id": "staging.actions-codelab2-c23dc.appspot.com", - "parent_id": 1087273, - "resource_data_displayname": "", - "resource_data_name": "staging.actions-codelab2-c23dc.appspot.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087710, - "resource_type": "firewall", - "category": "resource", - "resource_id": "2321420806240459236", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "gke-forsetiviz-cluster-f293571b-ssh", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087966, - "resource_type": "kubernetes_cluster", - "category": "resource", - "resource_id": "12655547366249308525", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "tf-lb-https-gke", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087455, - "resource_type": "bucket", - "category": "resource", - "resource_id": "actions-codelab-2b402.appspot.com", - "parent_id": 1087274, - "resource_data_displayname": "", - "resource_data_name": "actions-codelab-2b402.appspot.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087711, - "resource_type": "firewall", - "category": "resource", - "resource_id": "8604191622166802776", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "k8s-923f70a0fe8acf4d-node-http-hc", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087967, - "resource_type": "bucket", - "category": "resource", - "resource_id": "artifacts.forsetiviz.appspot.com", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "artifacts.forsetiviz.appspot.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087712, - "resource_type": "firewall", - "category": "resource", - "resource_id": "4851948630043122148", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "gke-forsetiviz-cluster-f293571b-vms", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087968, - "resource_type": "bucket", - "category": "resource", - "resource_id": "forsetiviz_cloudbuild", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "forsetiviz_cloudbuild", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087713, - "resource_type": "firewall", - "category": "resource", - "resource_id": "3266144110484138376", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "tf-lb-https-gke-hc-0", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087714, - "resource_type": "firewall", - "category": "resource", - "resource_id": "6211942447999168195", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "k8s-95a374b364bdb4ad-node-http-hc", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087970, - "resource_type": "bucket", - "category": "resource", - "resource_id": "artifacts.machine-learning-space-60f8.appspot.com", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "artifacts.machine-learning-space-60f8.appspot.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087459, - "resource_type": "bucket", - "category": "resource", - "resource_id": "staging.actions-codelab-2b402.appspot.com", - "parent_id": 1087274, - "resource_data_displayname": "", - "resource_data_name": "staging.actions-codelab-2b402.appspot.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087715, - "resource_type": "firewall", - "category": "resource", - "resource_id": "7867525312654377360", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "k8s-de802f70d972df6f-node-http-hc", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087971, - "resource_type": "bucket", - "category": "resource", - "resource_id": "machine-learning-space-60f8-lb-assets-19ff", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "machine-learning-space-60f8-lb-assets-19ff", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087716, - "resource_type": "firewall", - "category": "resource", - "resource_id": "4379855750536135066", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "k8s-fw-a1658c9ab435411e9b70d42010a80006", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087972, - "resource_type": "bucket", - "category": "resource", - "resource_id": "machine-learning-space-60f8.appspot.com", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "machine-learning-space-60f8.appspot.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087717, - "resource_type": "firewall", - "category": "resource", - "resource_id": "7026258630888983571", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "k8s-fw-a5bb0df4e430011e9b5e142010a8a006", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087973, - "resource_type": "bucket", - "category": "resource", - "resource_id": "mls-bucket", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "mls-bucket", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087718, - "resource_type": "firewall", - "category": "resource", - "resource_id": "4551384873048813262", - "parent_id": 1087598, - "resource_data_displayname": "", - "resource_data_name": "k8s-fw-a930c138442eb11e9b5e142010a8a006", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087463, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1951856080361073130", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "allow-example-internal", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087719, - "resource_type": "serviceaccount_key", - "category": "resource", - "resource_id": "9a76c99c5ea3f67c397291befa3b0594fabd3312", - "parent_id": 1087692, - "resource_data_displayname": "", - "resource_data_name": "projects/sandbox-d24a/serviceAccounts/my-video-int-sa@sandbox-d24a.iam.gserviceaccount.com/keys/9a76c99c5ea3f67c397291befa3b0594fabd3312", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087464, - "resource_type": "firewall", - "category": "resource", - "resource_id": "2480342816767322119", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "allow-example-ssh", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087465, - "resource_type": "firewall", - "category": "resource", - "resource_id": "994587516002990895", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "datalab-network-allow-ssh", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087721, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "105806508553642215035", - "parent_id": 1087457, - "resource_data_displayname": "Compute Engine default service account", - "resource_data_name": "projects/devops-1ca6/serviceAccounts/168499148573-compute@developer.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087466, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1131391913826196724", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "default-allow-http", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087467, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1506291513080683763", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "default-allow-https", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087468, - "resource_type": "firewall", - "category": "resource", - "resource_id": "9157225028724115540", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "default-allow-icmp", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087469, - "resource_type": "firewall", - "category": "resource", - "resource_id": "4568142173340092500", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "default-allow-internal", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087470, - "resource_type": "firewall", - "category": "resource", - "resource_id": "5856217382399952980", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "default-allow-rdp", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087471, - "resource_type": "firewall", - "category": "resource", - "resource_id": "2810349476565928020", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "default-allow-ssh", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087472, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1257583069503706716", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "gke-standard-cluster-2-3beda741-all", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087728, - "resource_type": "serviceaccount", - "category": "resource", - "resource_id": "113878897713821412398", - "parent_id": 1087486, - "resource_data_displayname": "Dialogflow Integrations", - "resource_data_name": "projects/sandbox-d24a/serviceAccounts/dialogflow-igjexa@sandbox-d24a.iam.gserviceaccount.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087473, - "resource_type": "firewall", - "category": "resource", - "resource_id": "3820051603014047324", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "gke-standard-cluster-2-3beda741-ssh", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087474, - "resource_type": "firewall", - "category": "resource", - "resource_id": "642963830582826588", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "gke-standard-cluster-2-3beda741-vms", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087475, - "resource_type": "firewall", - "category": "resource", - "resource_id": "6266273573893066929", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "gke-standard-cluster-3-d2bbade1-all", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087477, - "resource_type": "firewall", - "category": "resource", - "resource_id": "6918141359070138545", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "gke-standard-cluster-3-d2bbade1-ssh", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087478, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1342946987620716720", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "gke-standard-cluster-3-d2bbade1-vms", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087479, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1831428783725186312", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "istio-multicluster-test-pods", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087480, - "resource_type": "firewall", - "category": "resource", - "resource_id": "8023956336684351714", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "ldap-389", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087481, - "resource_type": "firewall", - "category": "resource", - "resource_id": "8636955595501126196", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "msad-1-allow-internal-ports", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087482, - "resource_type": "firewall", - "category": "resource", - "resource_id": "863440702458741300", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "msad-1-tcp-3389", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087994, - "resource_type": "bucket", - "category": "resource", - "resource_id": "staging.machine-learning-space-60f8.appspot.com", - "parent_id": 1087601, - "resource_data_displayname": "", - "resource_data_name": "staging.machine-learning-space-60f8.appspot.com", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087483, - "resource_type": "firewall", - "category": "resource", - "resource_id": "2263909467577623833", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "natfirewall", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087484, - "resource_type": "firewall", - "category": "resource", - "resource_id": "1333156223082357601", - "parent_id": 1087275, - "resource_data_displayname": "", - "resource_data_name": "vault-us-central1-vm-ssh", - "qq": null, - "inventory_index_id": 1552609278876965 -}, { - "id": 1087485, - "resource_type": "dataset", - "category": "resource", - "resource_id": "log-sinks-13e2:_a0de8134e431651da41eebdd63aff3d91712bac0", - "parent_id": 1087460, - "resource_data_displayname": "", - "resource_data_name": "", - "qq": null, - "inventory_index_id": 1552609278876965 -}] \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/dataset1_violations.json b/forseti-api/dist-forseti-visualizer-ui/dataset1_violations.json deleted file mode 100644 index b503f03..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/dataset1_violations.json +++ /dev/null @@ -1 +0,0 @@ -[{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8676,"created_at_datetime":"2019-03-09T02:22:31.000Z","full_name":"organization/358329783625/folder/429021693524/project/forseti-security-1e88/cloudsqlinstance/2949407881675395326/","resource_data":"{\"authorizedNetworks\": [{\"kind\": \"sql#aclEntry\", \"name\": \"default\", \"value\": \"0.0.0.0/0\"}], \"ipv4Enabled\": true, \"requireSsl\": false}","resource_name":"forseti-server-db-586f404","resource_id":"forseti-server-db-586f404","resource_type":"cloudsqlinstance","rule_index":0,"rule_name":"Cloud SQL rule to search for publicly exposed instances","violation_data":"{\"authorized_networks\": [\"0.0.0.0/0\"], \"full_name\": \"organization/358329783625/folder/429021693524/project/forseti-security-1e88/cloudsqlinstance/2949407881675395326/\", \"instance_name\": \"forseti-server-db-586f404\", \"project_id\": \"forseti-server-db-586f404\", \"require_ssl\": false}","violation_hash":"d4cae72704e2afdd2eb7350694319518ac687ad6e5bd991eea2c7e2655cf3644d1a3237cab9bffbc1cbd87deb079c8a184ca8bc45681e916790f2ad31dbae237","violation_type":"CLOUD_SQL_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8677,"created_at_datetime":"2019-03-09T02:22:32.000Z","full_name":"organization/358329783625/folder/379678980128/project/machine-learning-space-60f8/firewall/3803766427012574135/","resource_data":"{\"allowed\": [{\"IPProtocol\": \"ah\"}, {\"IPProtocol\": \"esp\"}, {\"IPProtocol\": \"icmp\"}, {\"IPProtocol\": \"sctp\"}, {\"IPProtocol\": \"tcp\"}, {\"IPProtocol\": \"udp\"}], \"direction\": \"INGRESS\", \"name\": \"gke-tf-lb-https-gke-aa62a218-all\", \"network\": \"https://www.googleapis.com/compute/v1/projects/machine-learning-space-60f8/global/networks/tf-lb-https-gke\", \"priority\": 1000, \"sourceRanges\": [\"10.32.0.0/14\"], \"targetTags\": [\"gke-tf-lb-https-gke-aa62a218-node\"]}","resource_name":"gke-tf-lb-https-gke-aa62a218-all","resource_id":"machine-learning-space-60f8","resource_type":"firewall","rule_index":1,"rule_name":"disallow_all_ports","violation_data":"{\"policy_names\": [\"gke-tf-lb-https-gke-aa62a218-all\"], \"recommended_actions\": {\"DELETE_FIREWALL_RULES\": [\"gke-tf-lb-https-gke-aa62a218-all\"]}}","violation_hash":"2a1d9ec788a4cf1ada6b12aa5a11d6cde2c68fa505e0a7bc684b534e182af3935f2dd19df316ccfaa18360f146e79950ef7018526c60c386c5c981b30a405966","violation_type":"FIREWALL_BLACKLIST_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8678,"created_at_datetime":"2019-03-09T02:22:32.000Z","full_name":"organization/358329783625/project/gwc-core/firewall/1257583069503706716/","resource_data":"{\"allowed\": [{\"IPProtocol\": \"ah\"}, {\"IPProtocol\": \"esp\"}, {\"IPProtocol\": \"icmp\"}, {\"IPProtocol\": \"sctp\"}, {\"IPProtocol\": \"tcp\"}, {\"IPProtocol\": \"udp\"}], \"direction\": \"INGRESS\", \"name\": \"gke-standard-cluster-2-3beda741-all\", \"network\": \"https://www.googleapis.com/compute/v1/projects/gwc-core/global/networks/datalab-network\", \"priority\": 1000, \"sourceRanges\": [\"10.20.0.0/19\"], \"targetTags\": [\"gke-standard-cluster-2-3beda741-node\"]}","resource_name":"gke-standard-cluster-2-3beda741-all","resource_id":"gwc-core","resource_type":"firewall","rule_index":1,"rule_name":"disallow_all_ports","violation_data":"{\"policy_names\": [\"gke-standard-cluster-2-3beda741-all\"], \"recommended_actions\": {\"DELETE_FIREWALL_RULES\": [\"gke-standard-cluster-2-3beda741-all\"]}}","violation_hash":"27643d9e702b282897ed98df24dd0e9c1b86f558f49041832682909c3de5337866d34f6cf4744bdd87e54dcb3ffe8697c0a722de1dfb3bb38c52081b74261150","violation_type":"FIREWALL_BLACKLIST_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8679,"created_at_datetime":"2019-03-09T02:22:32.000Z","full_name":"organization/358329783625/project/gwc-core/firewall/1831428783725186312/","resource_data":"{\"allowed\": [{\"IPProtocol\": \"ah\"}, {\"IPProtocol\": \"esp\"}, {\"IPProtocol\": \"icmp\"}, {\"IPProtocol\": \"sctp\"}, {\"IPProtocol\": \"tcp\"}, {\"IPProtocol\": \"udp\"}], \"direction\": \"INGRESS\", \"name\": \"istio-multicluster-test-pods\", \"network\": \"https://www.googleapis.com/compute/v1/projects/gwc-core/global/networks/default\", \"priority\": 900, \"sourceRanges\": [\"10.12.0.0/14\", \"10.40.0.0/14\", \"10.8.0.0/14\"], \"targetTags\": [\"bar\", \"datalab\", \"gke-cluster-1-04c3f62e-node\", \"gke-cluster-2-2de9b5d0-node\", \"gke-standard-cluster-1-058b1890-node\"]}","resource_name":"istio-multicluster-test-pods","resource_id":"gwc-core","resource_type":"firewall","rule_index":1,"rule_name":"disallow_all_ports","violation_data":"{\"policy_names\": [\"istio-multicluster-test-pods\"], \"recommended_actions\": {\"DELETE_FIREWALL_RULES\": [\"istio-multicluster-test-pods\"]}}","violation_hash":"19eaa154b5080f3e211ad0f817c98e73902a733030ed79c684289f355a202e7d6082f1745236a0f41d7c92c6bc8463e04dad8112ca7ed89265fb086d76d25d2c","violation_type":"FIREWALL_BLACKLIST_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8680,"created_at_datetime":"2019-03-09T02:22:32.000Z","full_name":"organization/358329783625/project/gwc-core/firewall/6266273573893066929/","resource_data":"{\"allowed\": [{\"IPProtocol\": \"ah\"}, {\"IPProtocol\": \"esp\"}, {\"IPProtocol\": \"icmp\"}, {\"IPProtocol\": \"sctp\"}, {\"IPProtocol\": \"tcp\"}, {\"IPProtocol\": \"udp\"}], \"direction\": \"INGRESS\", \"name\": \"gke-standard-cluster-3-d2bbade1-all\", \"network\": \"https://www.googleapis.com/compute/v1/projects/gwc-core/global/networks/datalab-network\", \"priority\": 1000, \"sourceRanges\": [\"10.252.0.0/19\"], \"targetTags\": [\"gke-standard-cluster-3-d2bbade1-node\"]}","resource_name":"gke-standard-cluster-3-d2bbade1-all","resource_id":"gwc-core","resource_type":"firewall","rule_index":1,"rule_name":"disallow_all_ports","violation_data":"{\"policy_names\": [\"gke-standard-cluster-3-d2bbade1-all\"], \"recommended_actions\": {\"DELETE_FIREWALL_RULES\": [\"gke-standard-cluster-3-d2bbade1-all\"]}}","violation_hash":"014bdd882568d4ee67895a0b113865b66f9c1def99ce894a055e0e38752f0bdf150acbfb9b84e02110ac4ce4b93a391418210d4f9ffe3cdd109ff66e135be12e","violation_type":"FIREWALL_BLACKLIST_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8681,"created_at_datetime":"2019-03-09T02:22:32.000Z","full_name":"organization/358329783625/project/gwc-core/bucket/forseti-visualizer-icons/","resource_data":"{\"bindings\": [{\"members\": [\"projectEditor:gwc-core\", \"projectOwner:gwc-core\"], \"role\": \"roles/storage.legacyBucketOwner\"}, {\"members\": [\"projectViewer:gwc-core\"], \"role\": \"roles/storage.legacyBucketReader\"}, {\"members\": [\"allUsers\"], \"role\": \"roles/storage.objectViewer\"}], \"etag\": \"CAI=\", \"kind\": \"storage#policy\", \"resourceId\": \"projects/_/buckets/forseti-visualizer-icons\"}","resource_name":"allUsers:None","resource_id":"forseti-visualizer-icons","resource_type":"bucket","rule_index":1,"rule_name":"Prevent public users from having access to buckets via IAM","violation_data":"{\"full_name\": \"organization/358329783625/project/gwc-core/bucket/forseti-visualizer-icons/\", \"member\": \"allUsers:None\", \"role\": \"roles/storage.objectViewer\"}","violation_hash":"932c5d0e5b59489894d0063ee83fc07258380d4191bd60e5a82d4a9eb4ee147fa0c64417cc650001ad896c32b347f29da12c8b8a034aa1e69ce8a6848788de08","violation_type":"IAM_POLICY_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8682,"created_at_datetime":"2019-03-09T02:22:32.000Z","full_name":"organization/358329783625/","resource_data":"{\"auditConfigs\": [{\"auditLogConfigs\": [{\"logType\": \"ADMIN_READ\"}], \"service\": \"iam.googleapis.com\"}], \"bindings\": [{\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/appengine.appViewer\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\"], \"role\": \"roles/bigquery.admin\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/bigquery.dataViewer\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@gcpawesomedemos.com\"], \"role\": \"roles/billing.admin\"}, {\"members\": [\"domain:mycloud.com\"], \"role\": \"roles/billing.creator\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/browser\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/cloudasset.viewer\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/cloudsql.viewer\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/compute.admin\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/compute.networkViewer\"}, {\"members\": [\"user:garrettwong@gcpawesomedemos.com\", \"user:ghaleb@google.com\", \"user:milindp@google.com\", \"user:smalasani@google.com\"], \"role\": \"roles/compute.osLoginExternalUser\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/compute.securityAdmin\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/compute.xpnAdmin\"}, {\"members\": [\"domain:mycloud.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/iam.organizationRoleAdmin\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\"], \"role\": \"roles/iam.organizationRoleViewer\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/iam.securityReviewer\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\"], \"role\": \"roles/iam.serviceAccountAdmin\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\"], \"role\": \"roles/iam.serviceAccountKeyAdmin\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\"], \"role\": \"roles/iam.serviceAccountUser\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\"], \"role\": \"roles/logging.admin\"}, {\"members\": [\"user:garrettwong@gcpawesomedemos.com\"], \"role\": \"roles/monitoring.admin\"}, {\"members\": [\"domain:mycloud.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/orgpolicy.policyAdmin\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/orgpolicy.policyViewer\"}, {\"members\": [\"user:garrettwong@gcpawesomedemos.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/owner\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/resourcemanager.folderAdmin\"}, {\"members\": [\"user:garrettwong@gcpawesomedemos.com\", \"user:milindp@google.com\"], \"role\": \"roles/resourcemanager.folderViewer\"}, {\"members\": [\"user:garrettwong@gcpawesomedemos.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/resourcemanager.organizationAdmin\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@gcpawesomedemos.com\", \"user:milindp@google.com\"], \"role\": \"roles/resourcemanager.organizationViewer\"}, {\"members\": [\"domain:mycloud.com\", \"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/resourcemanager.projectCreator\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@gcpawesomedemos.com\"], \"role\": \"roles/resourcemanager.projectIamAdmin\"}, {\"members\": [\"serviceAccount:service-org-358329783625@security-center-api.iam.gserviceaccount.com\"], \"role\": \"roles/securitycenter.serviceAgent\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/servicemanagement.quotaViewer\"}, {\"members\": [\"serviceAccount:forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-bd13a2b@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-cb3e593@forseti-shared-vpc-b99a.iam.gserviceaccount.com\", \"serviceAccount:forseti-server-gcp-e502402@forseti-shared-vpc-b99a.iam.gserviceaccount.com\"], \"role\": \"roles/serviceusage.serviceUsageConsumer\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"user:garrettwong@mycloud.com\"], \"role\": \"roles/storage.admin\"}, {\"members\": [\"serviceAccount:terraform@gwc-service-accounts.iam.gserviceaccount.com\"], \"role\": \"roles/storage.objectAdmin\"}], \"etag\": \"BwWCHzj4Klo=\"}","resource_name":"user:garrettwong@gcpawesomedemos.com","resource_id":"358329783625","resource_type":"organization","rule_index":0,"rule_name":"Allow only IAM members in my domain to be an OrgAdmin","violation_data":"{\"full_name\": \"organization/358329783625/\", \"member\": \"user:garrettwong@gcpawesomedemos.com\", \"role\": \"roles/resourcemanager.organizationAdmin\"}","violation_hash":"5e6bc56aeaec657a6c11ef720476d32a5163ba5b03861afacd9075596980c17d14d4ec2312da59fd5f9f0cfc9a56e32556f256b9f62bfaf97503e7d6c892f87f","violation_type":"IAM_POLICY_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8683,"created_at_datetime":"2019-03-09T02:22:33.000Z","full_name":"organization/358329783625/folder/631974286168/project/sandbox-d24a/bucket/eu-bucket-gcs/","resource_data":"{\"acl\": [{\"bucket\": \"eu-bucket-gcs\", \"entity\": \"project-owners-147925056168\", \"etag\": \"CAE=\", \"id\": \"eu-bucket-gcs/project-owners-147925056168\", \"kind\": \"storage#bucketAccessControl\", \"projectTeam\": {\"projectNumber\": \"147925056168\", \"team\": \"owners\"}, \"role\": \"OWNER\", \"selfLink\": \"https://www.googleapis.com/storage/v1/b/eu-bucket-gcs/acl/project-owners-147925056168\"}, {\"bucket\": \"eu-bucket-gcs\", \"entity\": \"project-editors-147925056168\", \"etag\": \"CAE=\", \"id\": \"eu-bucket-gcs/project-editors-147925056168\", \"kind\": \"storage#bucketAccessControl\", \"projectTeam\": {\"projectNumber\": \"147925056168\", \"team\": \"editors\"}, \"role\": \"OWNER\", \"selfLink\": \"https://www.googleapis.com/storage/v1/b/eu-bucket-gcs/acl/project-editors-147925056168\"}, {\"bucket\": \"eu-bucket-gcs\", \"entity\": \"project-viewers-147925056168\", \"etag\": \"CAE=\", \"id\": \"eu-bucket-gcs/project-viewers-147925056168\", \"kind\": \"storage#bucketAccessControl\", \"projectTeam\": {\"projectNumber\": \"147925056168\", \"team\": \"viewers\"}, \"role\": \"READER\", \"selfLink\": \"https://www.googleapis.com/storage/v1/b/eu-bucket-gcs/acl/project-viewers-147925056168\"}], \"defaultObjectAcl\": [{\"entity\": \"project-owners-147925056168\", \"etag\": \"CAE=\", \"kind\": \"storage#objectAccessControl\", \"projectTeam\": {\"projectNumber\": \"147925056168\", \"team\": \"owners\"}, \"role\": \"OWNER\"}, {\"entity\": \"project-editors-147925056168\", \"etag\": \"CAE=\", \"kind\": \"storage#objectAccessControl\", \"projectTeam\": {\"projectNumber\": \"147925056168\", \"team\": \"editors\"}, \"role\": \"OWNER\"}, {\"entity\": \"project-viewers-147925056168\", \"etag\": \"CAE=\", \"kind\": \"storage#objectAccessControl\", \"projectTeam\": {\"projectNumber\": \"147925056168\", \"team\": \"viewers\"}, \"role\": \"READER\"}], \"etag\": \"CAE=\", \"iamConfiguration\": {\"bucketPolicyOnly\": {\"enabled\": false}}, \"id\": \"eu-bucket-gcs\", \"kind\": \"storage#bucket\", \"location\": \"EUROPE-WEST2\", \"metageneration\": \"1\", \"name\": \"eu-bucket-gcs\", \"owner\": {\"entity\": \"project-owners-147925056168\"}, \"projectNumber\": \"147925056168\", \"selfLink\": \"https://www.googleapis.com/storage/v1/b/eu-bucket-gcs\", \"storageClass\": \"REGIONAL\", \"timeCreated\": \"2019-03-08T04:48:48.198Z\", \"updated\": \"2019-03-08T04:48:48.198Z\"}","resource_name":"","resource_id":"eu-bucket-gcs","resource_type":"bucket","rule_index":0,"rule_name":"All buckets in organization must be in the US.","violation_data":"\"[u'EUROPE-WEST2']\"","violation_hash":"0ef6293eeace71a13b214e87b36ec02468a47eefd90fadd47f869a6662c511f2ecc1e802a3282eb9744b7740944a606d4e16b03ed899bf1f39e6ccc9cb6faaa0","violation_type":"LOCATION_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8684,"created_at_datetime":"2019-03-09T02:22:33.000Z","full_name":"organization/358329783625/project/gwc-service-accounts/serviceaccount/103637530803869903316/serviceaccount_key/181e7ae878a7aa904867465f56c56a1fa09c0aef/","resource_data":"{\"full_name\": \"organization/358329783625/project/gwc-service-accounts/serviceaccount/103637530803869903316/serviceaccount_key/181e7ae878a7aa904867465f56c56a1fa09c0aef/\", \"key_algorithm\": \"KEY_ALG_RSA_2048\", \"key_id\": \"181e7ae878a7aa904867465f56c56a1fa09c0aef\", \"valid_after_time\": \"2018-10-11T14:05:28Z\", \"valid_before_time\": \"2028-10-08T14:05:28Z\"}","resource_name":"terraform@gwc-service-accounts.iam.gserviceaccount.com","resource_id":"terraform@gwc-service-accounts.iam.gserviceaccount.com","resource_type":"serviceaccount_key","rule_index":0,"rule_name":"Service account keys not rotated (older than 100 days)","violation_data":"{\"key_created_time\": \"2018-10-11T14:05:28Z\", \"key_id\": \"181e7ae878a7aa904867465f56c56a1fa09c0aef\", \"project_id\": \"gwc-service-accounts\", \"service_account_id\": \"terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"service_account_name\": \"terraform\", \"violation_reason\": \"Key ID 181e7ae878a7aa904867465f56c56a1fa09c0aef not rotated since 2018-10-11T14:05:28Z.\"}","violation_hash":"9942e4893576d9b6bcfedfc7349e4f9564e6fbd16a74e7f27cfa164b6f83af6dae0512112e174a86e6bfcaa3ef2bd70689caa8baa574d8ae91ac80b3a3fc63d6","violation_type":"SERVICE_ACCOUNT_KEY_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8685,"created_at_datetime":"2019-03-09T02:22:33.000Z","full_name":"organization/358329783625/project/gwc-service-accounts/serviceaccount/103637530803869903316/serviceaccount_key/70dadc2b7b6933386b2ec6785c01036a12fd5e5b/","resource_data":"{\"full_name\": \"organization/358329783625/project/gwc-service-accounts/serviceaccount/103637530803869903316/serviceaccount_key/70dadc2b7b6933386b2ec6785c01036a12fd5e5b/\", \"key_algorithm\": \"KEY_ALG_RSA_2048\", \"key_id\": \"70dadc2b7b6933386b2ec6785c01036a12fd5e5b\", \"valid_after_time\": \"2018-10-11T14:06:48Z\", \"valid_before_time\": \"2028-10-08T14:06:48Z\"}","resource_name":"terraform@gwc-service-accounts.iam.gserviceaccount.com","resource_id":"terraform@gwc-service-accounts.iam.gserviceaccount.com","resource_type":"serviceaccount_key","rule_index":0,"rule_name":"Service account keys not rotated (older than 100 days)","violation_data":"{\"key_created_time\": \"2018-10-11T14:06:48Z\", \"key_id\": \"70dadc2b7b6933386b2ec6785c01036a12fd5e5b\", \"project_id\": \"gwc-service-accounts\", \"service_account_id\": \"terraform@gwc-service-accounts.iam.gserviceaccount.com\", \"service_account_name\": \"terraform\", \"violation_reason\": \"Key ID 70dadc2b7b6933386b2ec6785c01036a12fd5e5b not rotated since 2018-10-11T14:06:48Z.\"}","violation_hash":"1afca5846d03cf21f87294b3ee38b9be2ef2ecdedbf51cbbffa0af17d72079765bc204978503c06dc4fe00c3de33f57e77e0fdb6b6ae2f14d9d2f801a2d15d96","violation_type":"SERVICE_ACCOUNT_KEY_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8686,"created_at_datetime":"2019-03-09T02:22:33.000Z","full_name":"organization/358329783625/project/gwc-core/serviceaccount/114673245419123644810/serviceaccount_key/3b229bf74cc286f7cb7ecc5cac711c4f29f157b6/","resource_data":"{\"full_name\": \"organization/358329783625/project/gwc-core/serviceaccount/114673245419123644810/serviceaccount_key/3b229bf74cc286f7cb7ecc5cac711c4f29f157b6/\", \"key_algorithm\": \"KEY_ALG_RSA_2048\", \"key_id\": \"3b229bf74cc286f7cb7ecc5cac711c4f29f157b6\", \"valid_after_time\": \"2018-10-18T03:43:43Z\", \"valid_before_time\": \"2028-10-15T03:43:43Z\"}","resource_name":"cloud-identity-sa@gwc-core.iam.gserviceaccount.com","resource_id":"cloud-identity-sa@gwc-core.iam.gserviceaccount.com","resource_type":"serviceaccount_key","rule_index":0,"rule_name":"Service account keys not rotated (older than 100 days)","violation_data":"{\"key_created_time\": \"2018-10-18T03:43:43Z\", \"key_id\": \"3b229bf74cc286f7cb7ecc5cac711c4f29f157b6\", \"project_id\": \"gwc-core\", \"service_account_id\": \"cloud-identity-sa@gwc-core.iam.gserviceaccount.com\", \"service_account_name\": \"cloud-identity-sa\", \"violation_reason\": \"Key ID 3b229bf74cc286f7cb7ecc5cac711c4f29f157b6 not rotated since 2018-10-18T03:43:43Z.\"}","violation_hash":"88974b603fe9503354c5dc588f34be086b12a93e53da73201944339d95032217018caeeaab011e110f3cf6c52b1b0580dd526a923945e0921597c9d9284648ab","violation_type":"SERVICE_ACCOUNT_KEY_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8687,"created_at_datetime":"2019-03-09T02:22:33.000Z","full_name":"organization/358329783625/project/gwc-core/serviceaccount/114673245419123644810/serviceaccount_key/619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2/","resource_data":"{\"full_name\": \"organization/358329783625/project/gwc-core/serviceaccount/114673245419123644810/serviceaccount_key/619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2/\", \"key_algorithm\": \"KEY_ALG_RSA_2048\", \"key_id\": \"619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2\", \"valid_after_time\": \"2018-10-18T04:00:49Z\", \"valid_before_time\": \"2028-10-15T04:00:49Z\"}","resource_name":"cloud-identity-sa@gwc-core.iam.gserviceaccount.com","resource_id":"cloud-identity-sa@gwc-core.iam.gserviceaccount.com","resource_type":"serviceaccount_key","rule_index":0,"rule_name":"Service account keys not rotated (older than 100 days)","violation_data":"{\"key_created_time\": \"2018-10-18T04:00:49Z\", \"key_id\": \"619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2\", \"project_id\": \"gwc-core\", \"service_account_id\": \"cloud-identity-sa@gwc-core.iam.gserviceaccount.com\", \"service_account_name\": \"cloud-identity-sa\", \"violation_reason\": \"Key ID 619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2 not rotated since 2018-10-18T04:00:49Z.\"}","violation_hash":"366a2e7488f81d630e9cd77c6e9bd224316a5ae2a50f09bae0c278f23858ee81457e62a6eaf992cd8e4a41c4324fa0191d3ebf008244ae86f3e530b50b113c55","violation_type":"SERVICE_ACCOUNT_KEY_VIOLATION"},{"inventory_index_id":1552069279134340,"scanner_index_id":1552069350604831,"id":8688,"created_at_datetime":"2019-03-09T02:22:33.000Z","full_name":"organization/358329783625/project/gwc-core/serviceaccount/115923635699569204829/serviceaccount_key/6fbe7d606eee666ef72a93fbe5904ccd9a82c689/","resource_data":"{\"full_name\": \"organization/358329783625/project/gwc-core/serviceaccount/115923635699569204829/serviceaccount_key/6fbe7d606eee666ef72a93fbe5904ccd9a82c689/\", \"key_algorithm\": \"KEY_ALG_RSA_2048\", \"key_id\": \"6fbe7d606eee666ef72a93fbe5904ccd9a82c689\", \"valid_after_time\": \"2018-11-11T02:24:54Z\", \"valid_before_time\": \"2028-11-08T02:24:54Z\"}","resource_name":"terraform-sa@gwc-core.iam.gserviceaccount.com","resource_id":"terraform-sa@gwc-core.iam.gserviceaccount.com","resource_type":"serviceaccount_key","rule_index":0,"rule_name":"Service account keys not rotated (older than 100 days)","violation_data":"{\"key_created_time\": \"2018-11-11T02:24:54Z\", \"key_id\": \"6fbe7d606eee666ef72a93fbe5904ccd9a82c689\", \"project_id\": \"gwc-core\", \"service_account_id\": \"terraform-sa@gwc-core.iam.gserviceaccount.com\", \"service_account_name\": \"Terraform service account\", \"violation_reason\": \"Key ID 6fbe7d606eee666ef72a93fbe5904ccd9a82c689 not rotated since 2018-11-11T02:24:54Z.\"}","violation_hash":"739b2945fc7aab641d28c38d8d4b743c985d8027d7f83c78683c34bb263773d6a7baf955ef00ea6399410fad5ed709cb7160f45469b5288b88fba6c263631833","violation_type":"SERVICE_ACCOUNT_KEY_VIOLATION"}] \ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/favicon.ico b/forseti-api/dist-forseti-visualizer-ui/favicon.ico deleted file mode 100644 index 550aa69..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/favicon.ico and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.4b115e11.woff2 b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.4b115e11.woff2 deleted file mode 100644 index b5a9567..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.4b115e11.woff2 and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.b90365bc.woff b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.b90365bc.woff deleted file mode 100644 index c64755a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.b90365bc.woff and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.c39278f7.ttf b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.c39278f7.ttf deleted file mode 100644 index 5f72e91..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.c39278f7.ttf and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.d9d17590.eot b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.d9d17590.eot deleted file mode 100644 index da7bd5e..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-brands-400.d9d17590.eot and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.414ff5da.eot b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.414ff5da.eot deleted file mode 100644 index 55085ca..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.414ff5da.eot and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.5dd3976c.woff b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.5dd3976c.woff deleted file mode 100644 index 2578261..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.5dd3976c.woff and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.65779ebc.woff2 b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.65779ebc.woff2 deleted file mode 100644 index 3ef9c3e..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.65779ebc.woff2 and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.f6c6f6c8.ttf b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.f6c6f6c8.ttf deleted file mode 100644 index a309313..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-regular-400.f6c6f6c8.ttf and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.46280631.woff2 b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.46280631.woff2 deleted file mode 100644 index 71b07ce..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.46280631.woff2 and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.61969d43.woff b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.61969d43.woff deleted file mode 100644 index a892a7a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.61969d43.woff and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.b5596f4d.eot b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.b5596f4d.eot deleted file mode 100644 index 68c010a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.b5596f4d.eot and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.b70cea03.ttf b/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.b70cea03.ttf deleted file mode 100644 index 7ece328..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/fonts/fa-solid-900.b70cea03.ttf and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/API Analytics.ee44cb2a.png b/forseti-api/dist-forseti-visualizer-ui/img/API Analytics.ee44cb2a.png deleted file mode 100644 index d830957..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/API Analytics.ee44cb2a.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/API Monetization.cd372fe2.png b/forseti-api/dist-forseti-visualizer-ui/img/API Monetization.cd372fe2.png deleted file mode 100644 index d364c4a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/API Monetization.cd372fe2.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Advanced Solutions Lab.784c0014.png b/forseti-api/dist-forseti-visualizer-ui/img/Advanced Solutions Lab.784c0014.png deleted file mode 100644 index d7ddd49..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Advanced Solutions Lab.784c0014.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Apigee API Platform.7e13edca.png b/forseti-api/dist-forseti-visualizer-ui/img/Apigee API Platform.7e13edca.png deleted file mode 100644 index 9022b8a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Apigee API Platform.7e13edca.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Apigee Sense.4efd4267.png b/forseti-api/dist-forseti-visualizer-ui/img/Apigee Sense.4efd4267.png deleted file mode 100644 index 6f5fa8f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Apigee Sense.4efd4267.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/App Engine.e310f50b.png b/forseti-api/dist-forseti-visualizer-ui/img/App Engine.e310f50b.png deleted file mode 100644 index b82ddbd..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/App Engine.e310f50b.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/BeyondCorp.e6c3a7ad.png b/forseti-api/dist-forseti-visualizer-ui/img/BeyondCorp.e6c3a7ad.png deleted file mode 100644 index 198a5a2..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/BeyondCorp.e6c3a7ad.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/BigQuery.300c1719.png b/forseti-api/dist-forseti-visualizer-ui/img/BigQuery.300c1719.png deleted file mode 100644 index a7e0a71..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/BigQuery.300c1719.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud APIs.acbdd6fa.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud APIs.acbdd6fa.png deleted file mode 100644 index f56c646..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud APIs.acbdd6fa.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Armor.fb9ba623.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Armor.fb9ba623.png deleted file mode 100644 index 5cc9bc1..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Armor.fb9ba623.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud AutoML.10f9b4d3.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud AutoML.10f9b4d3.png deleted file mode 100644 index b147e07..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud AutoML.10f9b4d3.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Bigtable.46b88388.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Bigtable.46b88388.png deleted file mode 100644 index afce5e0..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Bigtable.46b88388.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Billing API.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Billing API.b81b50ff.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Billing API.b81b50ff.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud CDN.5b96bf57.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud CDN.5b96bf57.png deleted file mode 100644 index b2ac398..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud CDN.5b96bf57.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Console.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Console.b81b50ff.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Console.b81b50ff.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud DNS.8a3845eb.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud DNS.8a3845eb.png deleted file mode 100644 index 2d8c27b..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud DNS.8a3845eb.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataflow.4bac8214.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataflow.4bac8214.png deleted file mode 100644 index c53ddf8..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataflow.4bac8214.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Datalab.d51c67a9.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Datalab.d51c67a9.png deleted file mode 100644 index 9c5ad7d..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Datalab.d51c67a9.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataprep.30091c43.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataprep.30091c43.png deleted file mode 100644 index 17132f2..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataprep.30091c43.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataproc.0b9f28e0.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataproc.0b9f28e0.png deleted file mode 100644 index eb5ed2c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Dataproc.0b9f28e0.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Datastore.eb733c06.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Datastore.eb733c06.png deleted file mode 100644 index 43a77a8..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Datastore.eb733c06.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Deployment Manager.99266882.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Deployment Manager.99266882.png deleted file mode 100644 index 85243df..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Deployment Manager.99266882.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Endpoints.6a07f2e5.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Endpoints.6a07f2e5.png deleted file mode 100644 index 1502083..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Endpoints.6a07f2e5.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Firewall Rules.b3b62bbf.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Firewall Rules.b3b62bbf.png deleted file mode 100644 index ff4a839..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Firewall Rules.b3b62bbf.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Functions.0cb67576.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Functions.0cb67576.png deleted file mode 100644 index 24188a4..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Functions.0cb67576.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud IAM.e415766f.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud IAM.e415766f.png deleted file mode 100644 index 31e24ba..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud IAM.e415766f.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud IoT Core.c093c250.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud IoT Core.c093c250.png deleted file mode 100644 index cdb2ab7..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud IoT Core.c093c250.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Jobs API.bf693b58.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Jobs API.bf693b58.png deleted file mode 100644 index 271b502..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Jobs API.bf693b58.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Machine Learning.92adf67a.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Machine Learning.92adf67a.png deleted file mode 100644 index f85ff7f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Machine Learning.92adf67a.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Memorystore.406b07df.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Memorystore.406b07df.png deleted file mode 100644 index ceb3b89..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Memorystore.406b07df.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Mobile App.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Mobile App.b81b50ff.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Mobile App.b81b50ff.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Network.041dcb0c.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Network.041dcb0c.png deleted file mode 100644 index 3dde351..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Network.041dcb0c.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud PubSub.3bfcff4e.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud PubSub.3bfcff4e.png deleted file mode 100644 index 5b5610c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud PubSub.3bfcff4e.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Resource Manager.e415766f.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Resource Manager.e415766f.png deleted file mode 100644 index 31e24ba..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Resource Manager.e415766f.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Router.7778f8cf.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Router.7778f8cf.png deleted file mode 100644 index f00fdf6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Router.7778f8cf.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Routes.25531046.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Routes.25531046.png deleted file mode 100644 index 51743c9..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Routes.25531046.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud SDK.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud SDK.b81b50ff.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud SDK.b81b50ff.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud SQL.ec69a19f.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud SQL.ec69a19f.png deleted file mode 100644 index 9763c55..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud SQL.ec69a19f.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Security Command Center.adf1b319.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Security Command Center.adf1b319.png deleted file mode 100644 index fd93a89..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Security Command Center.adf1b319.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Security Scanner.884c42d0.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Security Scanner.884c42d0.png deleted file mode 100644 index fca9bed..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Security Scanner.884c42d0.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Shell.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Shell.b81b50ff.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Shell.b81b50ff.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Source Repositories.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Source Repositories.b81b50ff.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Source Repositories.b81b50ff.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Spanner.a7a3e39d.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Spanner.a7a3e39d.png deleted file mode 100644 index 88068fb..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Spanner.a7a3e39d.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Storage.087cef47.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Storage.087cef47.png deleted file mode 100644 index 3b7bb1a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Storage.087cef47.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud TPU.9baf83f1.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud TPU.9baf83f1.png deleted file mode 100644 index 158946a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud TPU.9baf83f1.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Test Lab.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Test Lab.b81b50ff.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Test Lab.b81b50ff.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Text-to-Speech.9f72e5c6.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Text-to-Speech.9f72e5c6.png deleted file mode 100644 index 5822fa6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Text-to-Speech.9f72e5c6.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for Android Studio.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for Android Studio.b81b50ff.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for Android Studio.b81b50ff.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for IntelliJ.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for IntelliJ.b81b50ff.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for IntelliJ.b81b50ff.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for PowerShell.4b32a658.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for PowerShell.4b32a658.png deleted file mode 100644 index bc2bd2c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for PowerShell.4b32a658.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for Visual Studio.a7a9bc35.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for Visual Studio.a7a9bc35.png deleted file mode 100644 index eef3f78..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Tools for Visual Studio.a7a9bc35.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Translation API.d0686f3b.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Translation API.d0686f3b.png deleted file mode 100644 index 6997d9f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Translation API.d0686f3b.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud VPN.160a248a.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud VPN.160a248a.png deleted file mode 100644 index ef51194..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud VPN.160a248a.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Video Intelligence API.af58c9cb.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Video Intelligence API.af58c9cb.png deleted file mode 100644 index 1c6e00c..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Video Intelligence API.af58c9cb.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Vision API.98495555.png b/forseti-api/dist-forseti-visualizer-ui/img/Cloud Vision API.98495555.png deleted file mode 100644 index 28e2d63..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Cloud Vision API.98495555.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Compute Engine.239b71be.png b/forseti-api/dist-forseti-visualizer-ui/img/Compute Engine.239b71be.png deleted file mode 100644 index a4b52d9..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Compute Engine.239b71be.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Container Builder.13cccade.png b/forseti-api/dist-forseti-visualizer-ui/img/Container Builder.13cccade.png deleted file mode 100644 index d09c343..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Container Builder.13cccade.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Container Engine.bd9f9c60.png b/forseti-api/dist-forseti-visualizer-ui/img/Container Engine.bd9f9c60.png deleted file mode 100644 index 0e434e3..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Container Engine.bd9f9c60.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Container Registry.14df9133.png b/forseti-api/dist-forseti-visualizer-ui/img/Container Registry.14df9133.png deleted file mode 100644 index e645187..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Container Registry.14df9133.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Container-Optimized OS.da263129.png b/forseti-api/dist-forseti-visualizer-ui/img/Container-Optimized OS.da263129.png deleted file mode 100644 index 67a2504..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Container-Optimized OS.da263129.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Data Loss Prevention API.d26cda4b.png b/forseti-api/dist-forseti-visualizer-ui/img/Data Loss Prevention API.d26cda4b.png deleted file mode 100644 index 1f4e154..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Data Loss Prevention API.d26cda4b.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Data Studio.72bee5ed.png b/forseti-api/dist-forseti-visualizer-ui/img/Data Studio.72bee5ed.png deleted file mode 100644 index a930f8e..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Data Studio.72bee5ed.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Debugger.fe7cb4a9.png b/forseti-api/dist-forseti-visualizer-ui/img/Debugger.fe7cb4a9.png deleted file mode 100644 index 74418c0..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Debugger.fe7cb4a9.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Developer Portal.0a47d40a.png b/forseti-api/dist-forseti-visualizer-ui/img/Developer Portal.0a47d40a.png deleted file mode 100644 index 190acb4..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Developer Portal.0a47d40a.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Dialogflow Enterprise Edition.32314a3a.png b/forseti-api/dist-forseti-visualizer-ui/img/Dialogflow Enterprise Edition.32314a3a.png deleted file mode 100644 index 7166aec..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Dialogflow Enterprise Edition.32314a3a.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Error Reporting.89937de5.png b/forseti-api/dist-forseti-visualizer-ui/img/Error Reporting.89937de5.png deleted file mode 100644 index b187414..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Error Reporting.89937de5.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Forseti_lockup.c6d1248d.png b/forseti-api/dist-forseti-visualizer-ui/img/Forseti_lockup.c6d1248d.png deleted file mode 100644 index 2d90728..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Forseti_lockup.c6d1248d.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/GPU.c011ec1f.png b/forseti-api/dist-forseti-visualizer-ui/img/GPU.c011ec1f.png deleted file mode 100644 index 94a26fd..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/GPU.c011ec1f.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Generic GCP.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Generic GCP.b81b50ff.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Generic GCP.b81b50ff.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Genomics.fd7d1612.png b/forseti-api/dist-forseti-visualizer-ui/img/Genomics.fd7d1612.png deleted file mode 100644 index 3a463ca..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Genomics.fd7d1612.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Google Cloud Platform.75db0567.png b/forseti-api/dist-forseti-visualizer-ui/img/Google Cloud Platform.75db0567.png deleted file mode 100644 index 451fa4a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Google Cloud Platform.75db0567.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Google Cloud Platform_lockup.a0826ca3.png b/forseti-api/dist-forseti-visualizer-ui/img/Google Cloud Platform_lockup.a0826ca3.png deleted file mode 100644 index c1f20ba..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Google Cloud Platform_lockup.a0826ca3.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Google Plugin for Eclipse.b81b50ff.png b/forseti-api/dist-forseti-visualizer-ui/img/Google Plugin for Eclipse.b81b50ff.png deleted file mode 100644 index 1ff83f6..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Google Plugin for Eclipse.b81b50ff.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Identity-Aware Proxy.8e7e8206.png b/forseti-api/dist-forseti-visualizer-ui/img/Identity-Aware Proxy.8e7e8206.png deleted file mode 100644 index 722a7f2..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Identity-Aware Proxy.8e7e8206.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Istio_logo.bd5f7615.png b/forseti-api/dist-forseti-visualizer-ui/img/Istio_logo.bd5f7615.png deleted file mode 100644 index 6d36a4e..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Istio_logo.bd5f7615.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Key Management Service.aea63042.png b/forseti-api/dist-forseti-visualizer-ui/img/Key Management Service.aea63042.png deleted file mode 100644 index 46edd26..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Key Management Service.aea63042.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Kubernetes_logo.0aac84a3.png b/forseti-api/dist-forseti-visualizer-ui/img/Kubernetes_logo.0aac84a3.png deleted file mode 100644 index cbe1bf1..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Kubernetes_logo.0aac84a3.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Kubernetes_name.23f51604.png b/forseti-api/dist-forseti-visualizer-ui/img/Kubernetes_name.23f51604.png deleted file mode 100644 index 272ddb2..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Kubernetes_name.23f51604.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Monitoring.99266882.png b/forseti-api/dist-forseti-visualizer-ui/img/Monitoring.99266882.png deleted file mode 100644 index 85243df..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Monitoring.99266882.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Prediction API.92af5971.png b/forseti-api/dist-forseti-visualizer-ui/img/Prediction API.92af5971.png deleted file mode 100644 index 9eb52c9..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Prediction API.92af5971.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Premium Network Tier.5f1903d5.png b/forseti-api/dist-forseti-visualizer-ui/img/Premium Network Tier.5f1903d5.png deleted file mode 100644 index 5de7b57..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Premium Network Tier.5f1903d5.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Security Key Enforcement.1d2c0294.png b/forseti-api/dist-forseti-visualizer-ui/img/Security Key Enforcement.1d2c0294.png deleted file mode 100644 index 75da211..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Security Key Enforcement.1d2c0294.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Stackdriver.fd99f868.png b/forseti-api/dist-forseti-visualizer-ui/img/Stackdriver.fd99f868.png deleted file mode 100644 index 614e569..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Stackdriver.fd99f868.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Standard Network Tier.a3d0ae6a.png b/forseti-api/dist-forseti-visualizer-ui/img/Standard Network Tier.a3d0ae6a.png deleted file mode 100644 index 674e95f..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Standard Network Tier.a3d0ae6a.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/TensorFlow_lockup.03781d2f.png b/forseti-api/dist-forseti-visualizer-ui/img/TensorFlow_lockup.03781d2f.png deleted file mode 100644 index 048d95b..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/TensorFlow_lockup.03781d2f.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/TensorFlow_logo.2c27470e.png b/forseti-api/dist-forseti-visualizer-ui/img/TensorFlow_logo.2c27470e.png deleted file mode 100644 index 225f273..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/TensorFlow_logo.2c27470e.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/Transfer Appliance.5eb95f20.png b/forseti-api/dist-forseti-visualizer-ui/img/Transfer Appliance.5eb95f20.png deleted file mode 100644 index 8b9cf7a..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/Transfer Appliance.5eb95f20.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/cloud_logo.625b8d4b.png b/forseti-api/dist-forseti-visualizer-ui/img/cloud_logo.625b8d4b.png deleted file mode 100644 index 43d58bc..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/cloud_logo.625b8d4b.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/fa-brands-400.80533988.svg b/forseti-api/dist-forseti-visualizer-ui/img/fa-brands-400.80533988.svg deleted file mode 100644 index caa8cc4..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/img/fa-brands-400.80533988.svg +++ /dev/null @@ -1,3296 +0,0 @@ - - - - -Created by FontForge 20190112 at Tue Feb 12 10:24:59 2019 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/img/fa-regular-400.e7e957c8.svg b/forseti-api/dist-forseti-visualizer-ui/img/fa-regular-400.e7e957c8.svg deleted file mode 100644 index bba5446..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/img/fa-regular-400.e7e957c8.svg +++ /dev/null @@ -1,799 +0,0 @@ - - - - -Created by FontForge 20190112 at Tue Feb 12 10:24:59 2019 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/img/fa-solid-900.82905d8d.svg b/forseti-api/dist-forseti-visualizer-ui/img/fa-solid-900.82905d8d.svg deleted file mode 100644 index 4ef85aa..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/img/fa-solid-900.82905d8d.svg +++ /dev/null @@ -1,4516 +0,0 @@ - - - - -Created by FontForge 20190112 at Tue Feb 12 10:24:59 2019 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/forseti-api/dist-forseti-visualizer-ui/img/folder_logo.2f34c202.png b/forseti-api/dist-forseti-visualizer-ui/img/folder_logo.2f34c202.png deleted file mode 100644 index 890c233..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/folder_logo.2f34c202.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/img/project_logo.e9b6b118.png b/forseti-api/dist-forseti-visualizer-ui/img/project_logo.e9b6b118.png deleted file mode 100644 index 28adc62..0000000 Binary files a/forseti-api/dist-forseti-visualizer-ui/img/project_logo.e9b6b118.png and /dev/null differ diff --git a/forseti-api/dist-forseti-visualizer-ui/index.html b/forseti-api/dist-forseti-visualizer-ui/index.html deleted file mode 100644 index 823fabb..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/index.html +++ /dev/null @@ -1 +0,0 @@ -Forseti-Visualizer
\ No newline at end of file diff --git a/forseti-api/dist-forseti-visualizer-ui/resources.csv b/forseti-api/dist-forseti-visualizer-ui/resources.csv deleted file mode 100644 index 12b2788..0000000 --- a/forseti-api/dist-forseti-visualizer-ui/resources.csv +++ /dev/null @@ -1,8 +0,0 @@ -1,"organization","resource","organizations/123",,"mycloud.com","organizations/123","ACTIVE" -2,"folder","resource","folders/24242421",1,"GWC Folder","folders/24242421","ACTIVE" -5,"project","resource","gwc-infra",2,"gwc-infra","gwc-infra-d603","ACTIVE" -6,"project","resource","gwc-app",2,"gwc-app","gwc-app-9c1f","ACTIVE" -7,"project","resource","gwc-db",2,"gwc-db","gwc-db-0c8b","ACTIVE" -8,"project","resource","gwc-network",2,"gwc-network","gwc-network-0c8b","ACTIVE" -9,"bucket","resource","gwc-bucket",5,"gwc-bucket","gwc-bucket-0c8b","ACTIVE" -10,"firewall","resource","gwc-fw",8,"gwc-fw","gwc-fw-0c8b","ACTIVE" \ No newline at end of file diff --git a/forseti-api/dist/server.js b/forseti-api/dist/server.js deleted file mode 100644 index 05694bd..0000000 --- a/forseti-api/dist/server.js +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2019 Google LLC -// -// 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. - -'use strict'; - -// express 4.0 - -var express = require('express'); - -var api = require('./server/api'); - -// Constants -var PORT = 8080; -var HOST = '0.0.0.0'; - -// App -var app = express(); -app.set('view engine', 'pug'); -app.use(express.static('public')); // images,css,etc. - - -app.get('/', function (req, res) { - var name = 'Test'; - res.render('index', { - title: 'Hi ' + name - }); -}); - -app.get('/home', function (req, res) { - res.send('GET: ' + req.url); -}); - -app.post('/home', function (req, res) { - res.send('POST: ' + req.url); -}); - -app.get('/q', function (req, res) { - var name = getRandomName(); - res.send('Hello ' + name); -}); - -app.get('/q/:id', function (req, res) { - var id = req.params.id; - res.send('Hello Q' + id); -}); - -app.listen(PORT, HOST); -console.log('Running on http://' + HOST + ':' + PORT); -//# sourceMappingURL=server.js.map \ No newline at end of file diff --git a/forseti-api/dist/server.js.map b/forseti-api/dist/server.js.map deleted file mode 100644 index 52abb7b..0000000 --- a/forseti-api/dist/server.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../server.js"],"names":["express","require","api","console","log","PORT","HOST","app","set","use","static","getRandomId","randomDouble","Math","random","randomInt","floor","getRandomName","randomId","get","req","res","name","render","title","send","url","post","id","params","listen"],"mappings":"AAAA;;AAEA;;AACA,IAAMA,UAAUC,QAAQ,SAAR,CAAhB;;AAEA,IAAMC,MAAMD,QAAQ,cAAR,CAAZ;;AAEAE,QAAQC,GAAR,CAAYF,GAAZ;;AAEA;AACA,IAAMG,OAAO,IAAb;AACA,IAAMC,OAAO,SAAb;;AAEA;AACA,IAAMC,MAAMP,SAAZ;AACAO,IAAIC,GAAJ,CAAQ,aAAR,EAAuB,KAAvB;AACAD,IAAIE,GAAJ,CAAQT,QAAQU,MAAR,CAAe,QAAf,CAAR,E,CAAmC;;;AAGnC,SAASC,WAAT,GAAuB;AACrB,MAAIC,eAAgBC,KAAKC,MAAL,KAAgB,CAAjB,GAAsB,CAAzC,CADqB,CACuB;AAC5C,MAAIC,YAAYF,KAAKG,KAAL,CAAWJ,YAAX,CAAhB;;AAEA,SAAOG,SAAP;AACD;AACD,SAASE,aAAT,GAAyB;AACvB,MAAIC,WAAWP,aAAf;AACA,MAAIO,aAAa,CAAjB,EAAoB,OAAO,OAAP;AACpB,MAAIA,aAAa,CAAjB,EAAoB,OAAO,MAAP,CAApB,KACK,aAAWA,QAAX;AACN;;AAEDX,IAAIY,GAAJ,CAAQ,GAAR,EAAa,UAACC,GAAD,EAAMC,GAAN,EAAc;AACzB,MAAIC,OAAOL,eAAX;AACAI,MAAIE,MAAJ,CAAW,OAAX,EAAoB;AAClBC,mBAAaF;AADK,GAApB;AAGD,CALD;;AAOAf,IAAIY,GAAJ,CAAQ,OAAR,EAAiB,UAAUC,GAAV,EAAeC,GAAf,EAAoB;AACnCA,MAAII,IAAJ,CAAS,UAAUL,IAAIM,GAAvB;AACD,CAFD;;AAIAnB,IAAIoB,IAAJ,CAAS,OAAT,EAAkB,UAAUP,GAAV,EAAeC,GAAf,EAAoB;AACpCA,MAAII,IAAJ,CAAS,WAAWL,IAAIM,GAAxB;AACD,CAFD;;AAIAnB,IAAIY,GAAJ,CAAQ,IAAR,EAAc,UAAUC,GAAV,EAAeC,GAAf,EAAoB;AAChC,MAAIC,OAAOL,eAAX;AACAI,MAAII,IAAJ,YAAkBH,IAAlB;AACD,CAHD;;AAKAf,IAAIY,GAAJ,CAAQ,QAAR,EAAkB,UAAUC,GAAV,EAAeC,GAAf,EAAoB;AACpC,MAAIO,KAAKR,IAAIS,MAAJ,CAAWD,EAApB;AACAP,MAAII,IAAJ,aAAmBG,EAAnB;AACD,CAHD;;AAMArB,IAAIuB,MAAJ,CAAWzB,IAAX,EAAiBC,IAAjB;AACAH,QAAQC,GAAR,wBAAiCE,IAAjC,SAAyCD,IAAzC","file":"server.js","sourcesContent":["'use strict';\n\n// express 4.0\nconst express = require('express');\n\nconst api = require('./server/api');\n\nconsole.log(api);\n\n// Constants\nconst PORT = 8080;\nconst HOST = '0.0.0.0';\n\n// App\nconst app = express();\napp.set('view engine', 'pug');\napp.use(express.static('public')); // images,css,etc.\n\n\nfunction getRandomId() {\n let randomDouble = (Math.random() * 5) + 1; // generate between [1,5] inclusive\n let randomInt = Math.floor(randomDouble);\n \n return randomInt;\n}\nfunction getRandomName() {\n let randomId = getRandomId();\n if (randomId === 1) return 'Mommy';\n if (randomId === 5) return 'SeQi';\n else return `Q${randomId}`;\n}\n\napp.get('/', (req, res) => {\n let name = getRandomName();\n res.render('index', {\n title: `Hi ${name}`\n });\n});\n\napp.get('/home', function (req, res) {\n res.send('GET: ' + req.url);\n});\n\napp.post('/home', function (req, res) {\n res.send('POST: ' + req.url);\n});\n\napp.get('/q', function (req, res) {\n var name = getRandomName();\n res.send(`Hello ${name}`);\n});\n\napp.get('/q/:id', function (req, res) {\n let id = req.params.id;\n res.send(`Hello Q${id}`);\n});\n\n\napp.listen(PORT, HOST);\nconsole.log(`Running on http://${HOST}:${PORT}`);"]} \ No newline at end of file diff --git a/forseti-api/orginal.env b/forseti-api/orginal.env deleted file mode 100644 index 6441fd9..0000000 --- a/forseti-api/orginal.env +++ /dev/null @@ -1,6 +0,0 @@ -CLOUDSQL_HOSTNAME=104.197.52.78 -CLOUDSQL_USERNAME=root -CLOUDSQL_PASSWORD=testPassword1 -CLOUDSQL_SCHEMA=forseti_security -FORSETI_SERVER_VM_CHANNEL=35.232.32.159:50051 -FORSETI_DATA_MODEL_HANDLE=21254f1de747879237a95cb552e80828 \ No newline at end of file diff --git a/forseti-api/package-lock.json b/forseti-api/package-lock.json index 37e91ee..04c9576 100644 --- a/forseti-api/package-lock.json +++ b/forseti-api/package-lock.json @@ -1,9 +1,56 @@ { "name": "forseti-visualizer-api", - "version": "1.0.1", + "version": "1.0.2", "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/cli": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.7.0.tgz", + "integrity": "sha512-jECEqAq6Ngf3pOhLSg7od9WKyrIacyh1oNNYtRXNn+ummSHCTXBamGywOAtiae34Vk7zKuQNnLvo2BKTMCoV4A==", + "dev": true, + "requires": { + "chokidar": "^2.1.8", + "commander": "^2.8.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + } + } + }, "@babel/code-frame": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", @@ -13,6 +60,330 @@ "@babel/highlight": "^7.0.0" } }, + "@babel/core": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.0.tgz", + "integrity": "sha512-Bb1NjZCaiwTQC/ARL+MwDpgocdnwWDCaugvkGt6cxfBzQa8Whv1JybBoUEiBDKl8Ni3H3c7Fykwk7QChUsHRlg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.7.0", + "@babel/helpers": "^7.7.0", + "@babel/parser": "^7.7.0", + "@babel/template": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.0.tgz", + "integrity": "sha512-1wdJ6UxHyL1XoJQ119JmvuRX27LRih7iYStMPZOWAjQqeAabFg3dYXKMpgihma+to+0ADsTVVt6oRyUxWZw6Mw==", + "dev": true, + "requires": { + "@babel/types": "^7.7.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.0.tgz", + "integrity": "sha512-k50CQxMlYTYo+GGyUGFwpxKVtxVJi9yh61sXZji3zYHccK9RYliZGSTOgci85T+r+0VFN2nWbGM04PIqwfrpMg==", + "dev": true, + "requires": { + "@babel/types": "^7.7.0" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.0.tgz", + "integrity": "sha512-Cd8r8zs4RKDwMG/92lpZcnn5WPQ3LAMQbCw42oqUh4s7vsSN5ANUZjMel0OOnxDLq57hoDDbai+ryygYfCTOsw==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.7.0", + "@babel/types": "^7.7.0" + } + }, + "@babel/helper-call-delegate": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.7.0.tgz", + "integrity": "sha512-Su0Mdq7uSSWGZayGMMQ+z6lnL00mMCnGAbO/R0ZO9odIdB/WNU/VfQKqMQU0fdIsxQYbRjDM4BixIa93SQIpvw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.0.tgz", + "integrity": "sha512-ZhagAAVGD3L6MPM9/zZi7RRteonfBFLVUz3kjsnYsMAtr9hOJCKI9BAKIMpqn3NyWicPieoX779UL+7/3BEAOA==", + "dev": true, + "requires": { + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.6.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "regexpu-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + } + } + }, + "@babel/helper-define-map": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.7.0.tgz", + "integrity": "sha512-kPKWPb0dMpZi+ov1hJiwse9dWweZsz3V9rP4KdytnX1E7z3cTNmFGglwklzFPuqIcHLIY3bgKSs4vkwXXdflQA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.7.0", + "@babel/types": "^7.7.0", + "lodash": "^4.17.13" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.0.tgz", + "integrity": "sha512-CDs26w2shdD1urNUAji2RJXyBFCaR+iBEGnFz3l7maizMkQe3saVw9WtjG1tz8CwbjvlFnaSLVhgnu1SWaherg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0" + } + }, + "@babel/helper-function-name": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz", + "integrity": "sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.7.0", + "@babel/template": "^7.7.0", + "@babel/types": "^7.7.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz", + "integrity": "sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw==", + "dev": true, + "requires": { + "@babel/types": "^7.7.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.0.tgz", + "integrity": "sha512-LUe/92NqsDAkJjjCEWkNe+/PcpnisvnqdlRe19FahVapa4jndeuJ+FBiTX1rcAKWKcJGE+C3Q3tuEuxkSmCEiQ==", + "dev": true, + "requires": { + "@babel/types": "^7.7.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz", + "integrity": "sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA==", + "dev": true, + "requires": { + "@babel/types": "^7.7.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.0.tgz", + "integrity": "sha512-Dv3hLKIC1jyfTkClvyEkYP2OlkzNvWs5+Q8WgPbxM5LMeorons7iPP91JM+DU7tRbhqA1ZeooPaMFvQrn23RHw==", + "dev": true, + "requires": { + "@babel/types": "^7.7.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.0.tgz", + "integrity": "sha512-rXEefBuheUYQyX4WjV19tuknrJFwyKw0HgzRwbkyTbB+Dshlq7eqkWbyjzToLrMZk/5wKVKdWFluiAsVkHXvuQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.7.0", + "@babel/helper-simple-access": "^7.7.0", + "@babel/helper-split-export-declaration": "^7.7.0", + "@babel/template": "^7.7.0", + "@babel/types": "^7.7.0", + "lodash": "^4.17.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz", + "integrity": "sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg==", + "dev": true, + "requires": { + "@babel/types": "^7.7.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", + "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", + "dev": true, + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.0.tgz", + "integrity": "sha512-pHx7RN8X0UNHPB/fnuDnRXVZ316ZigkO8y8D835JlZ2SSdFKb6yH9MIYRU4fy/KPe5sPHDFOPvf8QLdbAGGiyw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.7.0", + "@babel/helper-wrap-function": "^7.7.0", + "@babel/template": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz", + "integrity": "sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.7.0", + "@babel/helper-optimise-call-expression": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.7.0.tgz", + "integrity": "sha512-AJ7IZD7Eem3zZRuj5JtzFAptBw7pMlS3y8Qv09vaBWoFsle0d1kAn5Wq6Q9MyBXITPOKnxwkZKoAm4bopmv26g==", + "dev": true, + "requires": { + "@babel/template": "^7.7.0", + "@babel/types": "^7.7.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz", + "integrity": "sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA==", + "dev": true, + "requires": { + "@babel/types": "^7.7.0" + } + }, + "@babel/helper-wrap-function": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.0.tgz", + "integrity": "sha512-sd4QjeMgQqzshSjecZjOp8uKfUtnpmCyQhKQrVJBBgeHAB/0FPi33h3AbVlVp07qQtMD4QgYSzaMI7VwncNK/w==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.7.0", + "@babel/template": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0" + } + }, + "@babel/helpers": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.0.tgz", + "integrity": "sha512-VnNwL4YOhbejHb7x/b5F39Zdg5vIQpUUNzJwx0ww1EcVRt41bbGRZWhAURrfY32T5zTT3qwNOQFWpn+P0i0a2g==", + "dev": true, + "requires": { + "@babel/template": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0" + } + }, "@babel/highlight": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", @@ -61,1618 +432,1422 @@ } } }, - "@google-cloud/bigtable": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@google-cloud/bigtable/-/bigtable-0.15.0.tgz", - "integrity": "sha512-A1znbWIsfThKYFz0EGfEzQPhbcnF8/PPkPyS8LDgsglO9z99FhsTqNv3TpytpF7YwsVsP+NMX7Nygp93eB7lAw==", - "requires": { - "@google-cloud/common-grpc": "^0.7.1", - "arrify": "^1.0.0", - "concat-stream": "^1.5.0", - "create-error-class": "^3.0.2", - "dot-prop": "^4.2.0", - "escape-string-regexp": "^1.0.5", - "extend": "^3.0.0", - "google-auth-library": "^1.6.1", - "google-gax": "^0.17.1", - "is": "^3.0.1", - "is-utf8": "^0.2.1", - "lodash.flatten": "^4.2.0", - "lodash.merge": "^4.6.0", - "lodash.snakecase": "^4.1.1", - "lodash.union": "^4.6.0", - "long": "^4.0.0", - "prop-assign": "^1.0.0", - "protobufjs": "^6.8.0", - "pumpify": "^1.3.3", - "retry-request": "^4.0.0", - "stream-events": "^1.0.2", - "string-format-obj": "^1.0.0", - "through2": "^2.0.3" - } - }, - "@google-cloud/common": { - "version": "0.20.3", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.20.3.tgz", - "integrity": "sha512-jt8/R4EqDTQccv5WA9AEaS65llM5+mlxsuWu57G5Os8HTIpgPbcsOVMUeIvmTrBuPUYSoRIMW8d/pvv/95n0+g==", + "@babel/node": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.7.0.tgz", + "integrity": "sha512-CZFTjfCGysChOJ90ksndqct5bXkByzV5Ef8YgYS3A513MhyFQgsXJMRu2QyGOlfoP3hBZ3AmDd37ARyv/L1Zvw==", + "dev": true, "requires": { - "@types/duplexify": "^3.5.0", - "@types/request": "^2.47.0", - "arrify": "^1.0.1", - "axios": "^0.18.0", - "duplexify": "^3.6.0", - "ent": "^2.2.0", - "extend": "^3.0.1", - "google-auth-library": "^1.6.0", - "is": "^3.2.1", - "pify": "^3.0.0", - "request": "^2.87.0", - "retry-request": "^4.0.0", - "split-array-stream": "^2.0.0", - "stream-events": "^1.0.4", - "through2": "^2.0.3" + "@babel/register": "^7.7.0", + "commander": "^2.8.1", + "core-js": "^3.2.1", + "lodash": "^4.17.13", + "node-environment-flags": "^1.0.5", + "regenerator-runtime": "^0.13.3", + "v8flags": "^3.1.1" }, "dependencies": { - "axios": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz", - "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==", - "requires": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" - } + "core-js": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.3.6.tgz", + "integrity": "sha512-u4oM8SHwmDuh5mWZdDg9UwNVq5s1uqq6ZDLLIs07VY+VJU91i3h4f3K/pgFvtUQPGdeStrZ+odKyfyt4EnKHfA==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "dev": true } } }, - "@google-cloud/common-grpc": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@google-cloud/common-grpc/-/common-grpc-0.7.1.tgz", - "integrity": "sha512-VK2X6rLRJIQMmkTS3p483up/Vb8zZHLoMFSmo17iiqebgaAoDpOhBiXXy4thtfabk02Nu5QtYT0QwM49OeU/ew==", + "@babel/parser": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.0.tgz", + "integrity": "sha512-GqL+Z0d7B7ADlQBMXlJgvXEbtt5qlqd1YQ5fr12hTSfh7O/vgrEIvJxU2e7aSVrEUn75zTZ6Nd0s8tthrlZnrQ==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.0.tgz", + "integrity": "sha512-ot/EZVvf3mXtZq0Pd0+tSOfGWMizqmOohXmNZg6LNFjHOV+wOPv7BvVYh8oPR8LhpIP3ye8nNooKL50YRWxpYA==", + "dev": true, "requires": { - "@google-cloud/common": "^0.20.0", - "@grpc/proto-loader": "^0.1.0", - "dot-prop": "^4.2.0", - "duplexify": "^3.6.0", - "extend": "^3.0.1", - "grpc": "^1.12.3", - "is": "^3.2.1", - "retry-request": "^4.0.0", - "through2": "^2.0.3" - }, - "dependencies": { - "@grpc/proto-loader": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.1.0.tgz", - "integrity": "sha512-GHoZBR5N+65AWazsCiJDxeMSbUpp2qNYbjeD3mP27L2PT25+GvIupIIJiCgULH87NAiAd9SmWMRBVz+uSiHpgA==", - "requires": { - "@types/lodash": "^4.14.104", - "@types/node": "^9.4.6", - "lodash": "^4.17.5", - "protobufjs": "^6.8.6" - } - }, - "@types/node": { - "version": "9.6.49", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.49.tgz", - "integrity": "sha512-YY0Okyn4QXC4ugJI+Kng5iWjK8A6eIHiQVaGIhJkyn0YL6Iqo0E0tBC8BuhvYcBK87vykBijM5FtMnCqaa5anA==" - } + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.7.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" } }, - "@google-cloud/kms": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@google-cloud/kms/-/kms-0.4.0.tgz", - "integrity": "sha512-aiIlnGrO7taze4c3/kv070c7UFdRzVzwPJXg9XE6Ns4Dnuzg+ge5HtdsSGyFjf8sz7j+IL4rYGauxwjpaIVX8g==", + "@babel/plugin-proposal-dynamic-import": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.0.tgz", + "integrity": "sha512-7poL3Xi+QFPC7sGAzEIbXUyYzGJwbc2+gSD0AkiC5k52kH2cqHdqxm5hNFfLW3cRSTcx9bN0Fl7/6zWcLLnKAQ==", + "dev": true, "requires": { - "google-gax": "^0.25.0", - "lodash.merge": "^4.6.0" - }, - "dependencies": { - "gcp-metadata": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-1.0.0.tgz", - "integrity": "sha512-Q6HrgfrCQeEircnNP3rCcEgiDv7eF9+1B+1MMgpE190+/+0mjQR8PxeOaRgxZWmdDAF9EIryHB9g1moPiw1SbQ==", - "requires": { - "gaxios": "^1.0.2", - "json-bigint": "^0.3.0" - } - }, - "google-auth-library": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-3.1.2.tgz", - "integrity": "sha512-cDQMzTotwyWMrg5jRO7q0A4TL/3GWBgO7I7q5xGKNiiFf9SmGY/OJ1YsLMgI2MVHHsEGyrqYnbnmV1AE+Z6DnQ==", - "requires": { - "base64-js": "^1.3.0", - "fast-text-encoding": "^1.0.0", - "gaxios": "^1.2.1", - "gcp-metadata": "^1.0.0", - "gtoken": "^2.3.2", - "https-proxy-agent": "^2.2.1", - "jws": "^3.1.5", - "lru-cache": "^5.0.0", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" - } - } - }, - "google-gax": { - "version": "0.25.6", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-0.25.6.tgz", - "integrity": "sha512-+CVtOSLQt42mwVvJJirhBiAvWsp8zKeb9zW5Wy3wyvb3VG9OugHzZpwvYO9D4yNPPspe7L9CpIs80I5nUJlS8w==", - "requires": { - "@grpc/grpc-js": "^0.3.0", - "@grpc/proto-loader": "^0.4.0", - "duplexify": "^3.6.0", - "google-auth-library": "^3.0.0", - "google-proto-files": "^0.20.0", - "grpc": "^1.16.0", - "grpc-gcp": "^0.1.1", - "is-stream-ended": "^0.1.4", - "lodash.at": "^4.6.0", - "lodash.has": "^4.5.2", - "protobufjs": "^6.8.8", - "retry-request": "^4.0.0", - "semver": "^6.0.0", - "walkdir": "^0.3.2" - } - }, - "google-proto-files": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.20.0.tgz", - "integrity": "sha512-ORU+XhOeDv/UPtnCYLkO1ItmfhRCRPR3ZoeVQ7GfVzEs7PVitPIhsYlY5ZzG8XXnsdmtK27ENurfQ1jhAWpZHg==", - "requires": { - "@google-cloud/promisify": "^0.4.0", - "protobufjs": "^6.8.0", - "walkdir": "^0.3.0" - } - }, - "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" - } - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" - } + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0" } }, - "@google-cloud/promisify": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-0.4.0.tgz", - "integrity": "sha512-4yAHDC52TEMCNcMzVC8WlqnKKKq+Ssi2lXoUg9zWWkZ6U6tq9ZBRYLHHCRdfU+EU9YJsVmivwGcKYCjRGjnf4Q==" + "@babel/plugin-proposal-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" + } }, - "@grpc/grpc-js": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-0.3.6.tgz", - "integrity": "sha512-SmLNuPGlUur64bNS9aHZguqWDVQ8+Df1CGn+xsh7l6T2wiP5ArOMlywZ3TZo6z/rwKtGQgUJY9ZrPYUmHEXd/Q==", + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz", + "integrity": "sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==", + "dev": true, "requires": { - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" - } + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" } }, - "@grpc/proto-loader": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.4.0.tgz", - "integrity": "sha512-Jm6o+75uWT7E6+lt8edg4J1F/9+BedOjaMgwE14pxS/AO43/0ZqK+rCLVVrXLoExwSAZvgvOD2B0ivy3Spsspw==", + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "dev": true, "requires": { - "lodash.camelcase": "^4.3.0", - "protobufjs": "^6.8.6" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" } }, - "@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==", + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.0.tgz", + "integrity": "sha512-mk34H+hp7kRBWJOOAR0ZMGCydgKMD4iN9TpDRp3IIcbunltxEY89XSimc6WbtSLCDrwcdy/EEw7h5CFCzxTchw==", + "dev": true, "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" + "@babel/helper-create-regexp-features-plugin": "^7.7.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "@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==" + "@babel/plugin-syntax-async-generators": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + "@babel/plugin-syntax-dynamic-import": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", + "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + "@babel/plugin-syntax-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "@babel/plugin-syntax-top-level-await": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.0.tgz", + "integrity": "sha512-hi8FUNiFIY1fnUI2n1ViB1DR0R4QeK4iHcTlW6aJkrPoTdb8Rf1EMQ6GT3f67DDkYyWgew9DFoOZ6gOoEsdzTA==", + "dev": true, "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + "@babel/plugin-transform-arrow-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + "@babel/plugin-transform-async-to-generator": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.0.tgz", + "integrity": "sha512-vLI2EFLVvRBL3d8roAMqtVY0Bm9C1QzLkdS57hiKrjUBSqsQYrBsMCeOg/0KK7B0eK9V71J5mWcha9yyoI2tZw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.7.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.7.0" + } }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + "@babel/plugin-transform-block-scoping": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz", + "integrity": "sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.13" + } }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + "@babel/plugin-transform-classes": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.0.tgz", + "integrity": "sha512-/b3cKIZwGeUesZheU9jNYcwrEA7f/Bo4IdPmvp7oHgvks2majB5BoT5byAql44fiNQYOPzhk2w8DbgfuafkMoA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.7.0", + "@babel/helper-define-map": "^7.7.0", + "@babel/helper-function-name": "^7.7.0", + "@babel/helper-optimise-call-expression": "^7.7.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.7.0", + "@babel/helper-split-export-declaration": "^7.7.0", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } + } }, - "@types/babel-types": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz", - "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==" + "@babel/plugin-transform-computed-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "@types/babylon": { - "version": "6.16.5", - "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz", - "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==", + "@babel/plugin-transform-destructuring": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz", + "integrity": "sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==", + "dev": true, "requires": { - "@types/babel-types": "*" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "@types/caseless": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz", - "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==" + "@babel/plugin-transform-dotall-regex": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.0.tgz", + "integrity": "sha512-3QQlF7hSBnSuM1hQ0pS3pmAbWLax/uGNCbPBND9y+oJ4Y776jsyujG2k0Sn2Aj2a0QwVOiOFL5QVPA7spjvzSA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.7.0", + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "@types/duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-5zOA53RUlzN74bvrSGwjudssD9F3a797sDZQkiYpUOxW+WHaXTCPz4/d5Dgi6FKnOqZ2CpaTo0DhgIfsXAOE/A==", + "@babel/plugin-transform-duplicate-keys": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz", + "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==", + "dev": true, "requires": { - "@types/node": "*" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "@types/form-data": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", - "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "dev": true, "requires": { - "@types/node": "*" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "@types/lodash": { - "version": "4.14.134", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.134.tgz", - "integrity": "sha512-2/O0khFUCFeDlbi7sZ7ZFRCcT812fAeOLm7Ev4KbwASkZ575TDrDcY7YyaoHdTOzKcNbfiwLYZqPmoC4wadrsw==" + "@babel/plugin-transform-for-of": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz", + "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "@types/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz", - "integrity": "sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q==" + "@babel/plugin-transform-function-name": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.0.tgz", + "integrity": "sha512-P5HKu0d9+CzZxP5jcrWdpe7ZlFDe24bmqP6a6X8BHEBl/eizAsY8K6LX8LASZL0Jxdjm5eEfzp+FIrxCm/p8bA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.7.0", + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "@types/node": { - "version": "12.0.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.7.tgz", - "integrity": "sha512-1YKeT4JitGgE4SOzyB9eMwO0nGVNkNEsm9qlIt1Lqm/tG2QEiSMTD4kS3aO6L+w5SClLVxALmIBESK6Mk5wX0A==" + "@babel/plugin-transform-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "@types/request": { - "version": "2.48.1", - "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.1.tgz", - "integrity": "sha512-ZgEZ1TiD+KGA9LiAAPPJL68Id2UWfeSO62ijSXZjFJArVV+2pKcsVHmrcu+1oiE3q6eDGiFiSolRc4JHoerBBg==", + "@babel/plugin-transform-member-expression-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz", + "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==", + "dev": true, "requires": { - "@types/caseless": "*", - "@types/form-data": "*", - "@types/node": "*", - "@types/tough-cookie": "*" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "@types/tough-cookie": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.5.tgz", - "integrity": "sha512-SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg==" + "@babel/plugin-transform-modules-amd": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz", + "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" + } }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "@babel/plugin-transform-modules-commonjs": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.0.tgz", + "integrity": "sha512-KEMyWNNWnjOom8vR/1+d+Ocz/mILZG/eyHHO06OuBQ2aNhxT62fr4y6fGOplRx+CxCSp3IFwesL8WdINfY/3kg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.7.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.7.0", + "babel-plugin-dynamic-import-node": "^2.3.0" + } }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "@babel/plugin-transform-modules-systemjs": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.0.tgz", + "integrity": "sha512-ZAuFgYjJzDNv77AjXRqzQGlQl4HdUM6j296ee4fwKVZfhDR9LAGxfvXjBkb06gNETPnN0sLqRm9Gxg4wZH6dXg==", + "dev": true, "requires": { - "event-target-shim": "^5.0.0" + "@babel/helper-hoist-variables": "^7.7.0", + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" } }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "@babel/plugin-transform-modules-umd": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.0.tgz", + "integrity": "sha512-u7eBA03zmUswQ9LQ7Qw0/ieC1pcAkbp5OQatbWUzY1PaBccvuJXUkYzoN1g7cqp7dbTu6Dp9bXyalBvD04AANA==", + "dev": true, "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "@babel/helper-module-transforms": "^7.7.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.0.tgz", + "integrity": "sha512-+SicSJoKouPctL+j1pqktRVCgy+xAch1hWWTMy13j0IflnyNjaoskj+DwRQFimHbLqO3sq2oN2CXMvXq3Bgapg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.7.0" + } }, - "acorn-es7-plugin": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz", - "integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s=" + "@babel/plugin-transform-new-target": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz", + "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "@babel/plugin-transform-object-super": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz", + "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==", + "dev": true, "requires": { - "acorn": "^4.0.4" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.5.5" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz", + "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.4.4", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz", + "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.0.tgz", + "integrity": "sha512-AXmvnC+0wuj/cFkkS/HFHIojxH3ffSXE+ttulrqWjZZRaUOonfJc60e1wSNT4rV8tIunvu/R3wCp71/tLAa9xg==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.0" }, "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" + "regenerator-transform": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "dev": true, + "requires": { + "private": "^0.1.6" + } } } }, - "acorn-jsx": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", - "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", - "dev": true + "@babel/plugin-transform-reserved-words": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz", + "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "@babel/plugin-transform-shorthand-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "dev": true, "requires": { - "es6-promisify": "^5.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "@babel/plugin-transform-spread": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz", + "integrity": "sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==", + "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "@babel/plugin-transform-sticky-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz", + "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.0.tgz", + "integrity": "sha512-RrThb0gdrNwFAqEAAx9OWgtx6ICK69x7i9tCnMdVrxQwSDp/Abu9DXFU5Hh16VP33Rmxh04+NGW28NsIkFvFKA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.7.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/preset-env": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.1.tgz", + "integrity": "sha512-/93SWhi3PxcVTDpSqC+Dp4YxUu3qZ4m7I76k0w73wYfn7bGVuRIO4QUz95aJksbS+AD1/mT1Ie7rbkT0wSplaA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.7.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.7.0", + "@babel/plugin-proposal-dynamic-import": "^7.7.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.6.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.7.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-syntax-top-level-await": "^7.7.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.7.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.6.3", + "@babel/plugin-transform-classes": "^7.7.0", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.6.0", + "@babel/plugin-transform-dotall-regex": "^7.7.0", + "@babel/plugin-transform-duplicate-keys": "^7.5.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.4.4", + "@babel/plugin-transform-function-name": "^7.7.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-member-expression-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.5.0", + "@babel/plugin-transform-modules-commonjs": "^7.7.0", + "@babel/plugin-transform-modules-systemjs": "^7.7.0", + "@babel/plugin-transform-modules-umd": "^7.7.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.0", + "@babel/plugin-transform-new-target": "^7.4.4", + "@babel/plugin-transform-object-super": "^7.5.5", + "@babel/plugin-transform-parameters": "^7.4.4", + "@babel/plugin-transform-property-literals": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.7.0", + "@babel/plugin-transform-reserved-words": "^7.2.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.6.2", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.4.4", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.7.0", + "@babel/types": "^7.7.1", + "browserslist": "^4.6.0", + "core-js-compat": "^3.1.1", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.5.0" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "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" - } + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "@babel/register": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.7.0.tgz", + "integrity": "sha512-HV3GJzTvSoyOMWGYn2TAh6uL6g+gqKTgEZ99Q3+X9UURT1VPT/WcU46R61XftIc5rXytcOHZ4Z0doDlsjPomIg==", "dev": true, "requires": { - "string-width": "^2.0.0" + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "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==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } } } }, - "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==", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "@babel/template": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.0.tgz", + "integrity": "sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/types": "^7.7.0" + } }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "@babel/traverse": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.0.tgz", + "integrity": "sha512-ea/3wRZc//e/uwCpuBX2itrhI0U9l7+FsrKWyKGNyvWbuMcCG7ATKY2VI4wlg2b2TA39HHwIxnvmXvtiKsyn7w==", "dev": true, - "optional": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.7.0", + "@babel/helper-function-name": "^7.7.0", + "@babel/helper-split-export-declaration": "^7.7.0", + "@babel/parser": "^7.7.0", + "@babel/types": "^7.7.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" }, "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "optional": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true, - "optional": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "optional": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "optional": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", "dev": true, - "optional": true, "requires": { - "is-extglob": "^1.0.0" + "@babel/highlight": "^7.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true, - "optional": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true, - "optional": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, - "optional": true, "requires": { - "is-extglob": "^1.0.0" + "ms": "^2.1.1" } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - } + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "@babel/types": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.1.tgz", + "integrity": "sha512-kN/XdANDab9x1z5gcjDc9ePpxexkt+1EQ2MQUiM4XnMvQfvp87/+6kY4Ko2maLXH+tei/DgJ/ybFITeqqRwDiA==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "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=", + "dev": true + } } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "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-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": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "@google-cloud/bigtable": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@google-cloud/bigtable/-/bigtable-0.15.0.tgz", + "integrity": "sha512-A1znbWIsfThKYFz0EGfEzQPhbcnF8/PPkPyS8LDgsglO9z99FhsTqNv3TpytpF7YwsVsP+NMX7Nygp93eB7lAw==", "requires": { - "array-uniq": "^1.0.1" + "@google-cloud/common-grpc": "^0.7.1", + "arrify": "^1.0.0", + "concat-stream": "^1.5.0", + "create-error-class": "^3.0.2", + "dot-prop": "^4.2.0", + "escape-string-regexp": "^1.0.5", + "extend": "^3.0.0", + "google-auth-library": "^1.6.1", + "google-gax": "^0.17.1", + "is": "^3.0.1", + "is-utf8": "^0.2.1", + "lodash.flatten": "^4.2.0", + "lodash.merge": "^4.6.0", + "lodash.snakecase": "^4.1.1", + "lodash.union": "^4.6.0", + "long": "^4.0.0", + "prop-assign": "^1.0.0", + "protobufjs": "^6.8.0", + "pumpify": "^1.3.3", + "retry-request": "^4.0.0", + "stream-events": "^1.0.2", + "string-format-obj": "^1.0.0", + "through2": "^2.0.3" } }, - "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=" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "ascli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz", - "integrity": "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=", + "@google-cloud/common": { + "version": "0.20.3", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.20.3.tgz", + "integrity": "sha512-jt8/R4EqDTQccv5WA9AEaS65llM5+mlxsuWu57G5Os8HTIpgPbcsOVMUeIvmTrBuPUYSoRIMW8d/pvv/95n0+g==", "requires": { - "colour": "~0.7.1", - "optjs": "~3.2.2" + "@types/duplexify": "^3.5.0", + "@types/request": "^2.47.0", + "arrify": "^1.0.1", + "axios": "^0.18.0", + "duplexify": "^3.6.0", + "ent": "^2.2.0", + "extend": "^3.0.1", + "google-auth-library": "^1.6.0", + "is": "^3.2.1", + "pify": "^3.0.0", + "request": "^2.87.0", + "retry-request": "^4.0.0", + "split-array-stream": "^2.0.0", + "stream-events": "^1.0.4", + "through2": "^2.0.3" + }, + "dependencies": { + "axios": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz", + "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==", + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + } + } } }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "@google-cloud/common-grpc": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@google-cloud/common-grpc/-/common-grpc-0.7.1.tgz", + "integrity": "sha512-VK2X6rLRJIQMmkTS3p483up/Vb8zZHLoMFSmo17iiqebgaAoDpOhBiXXy4thtfabk02Nu5QtYT0QwM49OeU/ew==", "requires": { - "safer-buffer": "~2.1.0" + "@google-cloud/common": "^0.20.0", + "@grpc/proto-loader": "^0.1.0", + "dot-prop": "^4.2.0", + "duplexify": "^3.6.0", + "extend": "^3.0.1", + "grpc": "^1.12.3", + "is": "^3.2.1", + "retry-request": "^4.0.0", + "through2": "^2.0.3" + }, + "dependencies": { + "@grpc/proto-loader": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.1.0.tgz", + "integrity": "sha512-GHoZBR5N+65AWazsCiJDxeMSbUpp2qNYbjeD3mP27L2PT25+GvIupIIJiCgULH87NAiAd9SmWMRBVz+uSiHpgA==", + "requires": { + "@types/lodash": "^4.14.104", + "@types/node": "^9.4.6", + "lodash": "^4.17.5", + "protobufjs": "^6.8.6" + } + }, + "@types/node": { + "version": "9.6.49", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.49.tgz", + "integrity": "sha512-YY0Okyn4QXC4ugJI+Kng5iWjK8A6eIHiQVaGIhJkyn0YL6Iqo0E0tBC8BuhvYcBK87vykBijM5FtMnCqaa5anA==" + } } }, - "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=" - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "asynckit": { + "@google-cloud/kms": { "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==" - }, - "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.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" - }, - "axios": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", - "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", - "requires": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" - } - }, - "babel-cli": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", - "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" - } - }, - "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=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, + "resolved": "https://registry.npmjs.org/@google-cloud/kms/-/kms-0.4.0.tgz", + "integrity": "sha512-aiIlnGrO7taze4c3/kv070c7UFdRzVzwPJXg9XE6Ns4Dnuzg+ge5HtdsSGyFjf8sz7j+IL4rYGauxwjpaIVX8g==", "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" + "google-gax": "^0.25.0", + "lodash.merge": "^4.6.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, + "gcp-metadata": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-1.0.0.tgz", + "integrity": "sha512-Q6HrgfrCQeEircnNP3rCcEgiDv7eF9+1B+1MMgpE190+/+0mjQR8PxeOaRgxZWmdDAF9EIryHB9g1moPiw1SbQ==", "requires": { - "ms": "2.0.0" + "gaxios": "^1.0.2", + "json-bigint": "^0.3.0" + } + }, + "google-auth-library": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-3.1.2.tgz", + "integrity": "sha512-cDQMzTotwyWMrg5jRO7q0A4TL/3GWBgO7I7q5xGKNiiFf9SmGY/OJ1YsLMgI2MVHHsEGyrqYnbnmV1AE+Z6DnQ==", + "requires": { + "base64-js": "^1.3.0", + "fast-text-encoding": "^1.0.0", + "gaxios": "^1.2.1", + "gcp-metadata": "^1.0.0", + "gtoken": "^2.3.2", + "https-proxy-agent": "^2.2.1", + "jws": "^3.1.5", + "lru-cache": "^5.0.0", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + } + } + }, + "google-gax": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-0.25.6.tgz", + "integrity": "sha512-+CVtOSLQt42mwVvJJirhBiAvWsp8zKeb9zW5Wy3wyvb3VG9OugHzZpwvYO9D4yNPPspe7L9CpIs80I5nUJlS8w==", + "requires": { + "@grpc/grpc-js": "^0.3.0", + "@grpc/proto-loader": "^0.4.0", + "duplexify": "^3.6.0", + "google-auth-library": "^3.0.0", + "google-proto-files": "^0.20.0", + "grpc": "^1.16.0", + "grpc-gcp": "^0.1.1", + "is-stream-ended": "^0.1.4", + "lodash.at": "^4.6.0", + "lodash.has": "^4.5.2", + "protobufjs": "^6.8.8", + "retry-request": "^4.0.0", + "semver": "^6.0.0", + "walkdir": "^0.3.2" } + }, + "google-proto-files": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.20.0.tgz", + "integrity": "sha512-ORU+XhOeDv/UPtnCYLkO1ItmfhRCRPR3ZoeVQ7GfVzEs7PVitPIhsYlY5ZzG8XXnsdmtK27ENurfQ1jhAWpZHg==", + "requires": { + "@google-cloud/promisify": "^0.4.0", + "protobufjs": "^6.8.0", + "walkdir": "^0.3.0" + } + }, + "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" + } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" } } }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } + "@google-cloud/promisify": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-0.4.0.tgz", + "integrity": "sha512-4yAHDC52TEMCNcMzVC8WlqnKKKq+Ssi2lXoUg9zWWkZ6U6tq9ZBRYLHHCRdfU+EU9YJsVmivwGcKYCjRGjnf4Q==" }, - "babel-helper-bindify-decorators": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", - "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", - "dev": true, + "@grpc/grpc-js": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-0.3.6.tgz", + "integrity": "sha512-SmLNuPGlUur64bNS9aHZguqWDVQ8+Df1CGn+xsh7l6T2wiP5ArOMlywZ3TZo6z/rwKtGQgUJY9ZrPYUmHEXd/Q==", "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + } } }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, + "@grpc/proto-loader": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.4.0.tgz", + "integrity": "sha512-Jm6o+75uWT7E6+lt8edg4J1F/9+BedOjaMgwE14pxS/AO43/0ZqK+rCLVVrXLoExwSAZvgvOD2B0ivy3Spsspw==", "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "lodash.camelcase": "^4.3.0", + "protobufjs": "^6.8.6" } }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, + "@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": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } + "@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==" }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" }, - "babel-helper-explode-class": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", - "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", - "dev": true, - "requires": { - "babel-helper-bindify-decorators": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" } }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, - "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "@sinonjs/commons": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.6.0.tgz", + "integrity": "sha512-w4/WHG7C4WWFyE5geCieFJF6MZkbW4VAriol5KlmQXpAQdxvV0p26sqNZOW6Qyw6Y0l9K4g+cHvvczR2sEEpqg==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "type-detect": "4.0.8" } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "@sinonjs/formatio": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz", + "integrity": "sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@sinonjs/commons": "^1", + "@sinonjs/samsam": "^3.1.0" } }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "@sinonjs/samsam": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz", + "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@sinonjs/commons": "^1.3.0", + "array-from": "^2.1.1", + "lodash": "^4.17.15" } }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true - }, - "babel-plugin-syntax-async-generators": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", - "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", + "@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, - "babel-plugin-syntax-class-constructor-call": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", - "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=", - "dev": true + "@types/babel-types": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz", + "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==" }, - "babel-plugin-syntax-class-properties": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", - "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", - "dev": true + "@types/babylon": { + "version": "6.16.5", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz", + "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==", + "requires": { + "@types/babel-types": "*" + } }, - "babel-plugin-syntax-decorators": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", - "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", - "dev": true + "@types/caseless": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz", + "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==" }, - "babel-plugin-syntax-do-expressions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz", - "integrity": "sha1-V0d1YTmqJtOQ0JQQsDdEugfkeW0=", + "@types/chai": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.5.tgz", + "integrity": "sha512-YvbLiIc0DbbhiANrfVObdkLEHJksQZVq0Uvfg550SRAKVYaEJy+V70j65BVe2WNp6E3HtKsUczeijHFCjba3og==", "dev": true }, - "babel-plugin-syntax-dynamic-import": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", - "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", + "@types/cookiejar": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.1.tgz", + "integrity": "sha512-aRnpPa7ysx3aNW60hTiCtLHlQaIFsXFCgQlpakNgDNVFzbtusSY8PwjAQgRWfSk0ekNoBjO51eQRB6upA9uuyw==", "dev": true }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true + "@types/duplexify": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.0.tgz", + "integrity": "sha512-5zOA53RUlzN74bvrSGwjudssD9F3a797sDZQkiYpUOxW+WHaXTCPz4/d5Dgi6FKnOqZ2CpaTo0DhgIfsXAOE/A==", + "requires": { + "@types/node": "*" + } }, - "babel-plugin-syntax-export-extensions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", - "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", - "dev": true + "@types/form-data": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", + "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", + "requires": { + "@types/node": "*" + } }, - "babel-plugin-syntax-function-bind": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz", - "integrity": "sha1-SMSV8Xe98xqYHnMvVa3AvdJgH0Y=", - "dev": true + "@types/lodash": { + "version": "4.14.134", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.134.tgz", + "integrity": "sha512-2/O0khFUCFeDlbi7sZ7ZFRCcT812fAeOLm7Ev4KbwASkZ575TDrDcY7YyaoHdTOzKcNbfiwLYZqPmoC4wadrsw==" }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", - "dev": true + "@types/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz", + "integrity": "sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q==" }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true + "@types/node": { + "version": "12.0.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.7.tgz", + "integrity": "sha512-1YKeT4JitGgE4SOzyB9eMwO0nGVNkNEsm9qlIt1Lqm/tG2QEiSMTD4kS3aO6L+w5SClLVxALmIBESK6Mk5wX0A==" }, - "babel-plugin-transform-async-generator-functions": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", - "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", - "dev": true, + "@types/request": { + "version": "2.48.1", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.1.tgz", + "integrity": "sha512-ZgEZ1TiD+KGA9LiAAPPJL68Id2UWfeSO62ijSXZjFJArVV+2pKcsVHmrcu+1oiE3q6eDGiFiSolRc4JHoerBBg==", "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-generators": "^6.5.0", - "babel-runtime": "^6.22.0" + "@types/caseless": "*", + "@types/form-data": "*", + "@types/node": "*", + "@types/tough-cookie": "*" } }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "@types/superagent": { + "version": "3.8.7", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-3.8.7.tgz", + "integrity": "sha512-9KhCkyXv268A2nZ1Wvu7rQWM+BmdYUVkycFeNnYrUL5Zwu7o8wPQ3wBfW59dDP+wuoxw0ww8YKgTNv8j/cgscA==", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "@types/cookiejar": "*", + "@types/node": "*" } }, - "babel-plugin-transform-class-constructor-call": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", - "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", - "dev": true, - "requires": { - "babel-plugin-syntax-class-constructor-call": "^6.18.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } + "@types/tough-cookie": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.5.tgz", + "integrity": "sha512-SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg==" }, - "babel-plugin-transform-class-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", - "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-plugin-syntax-class-properties": "^6.8.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true }, - "babel-plugin-transform-decorators": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", - "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", - "dev": true, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "requires": { - "babel-helper-explode-class": "^6.24.1", - "babel-plugin-syntax-decorators": "^6.13.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-types": "^6.24.1" + "event-target-shim": "^5.0.0" } }, - "babel-plugin-transform-do-expressions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz", - "integrity": "sha1-KMyvkoEtlJws0SgfaQyP3EaK6bs=", - "dev": true, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "requires": { - "babel-plugin-syntax-do-expressions": "^6.8.0", - "babel-runtime": "^6.22.0" + "mime-types": "~2.1.24", + "negotiator": "0.6.2" } }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "acorn-es7-plugin": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz", + "integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s=" }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, + "acorn-globals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "acorn": "^4.0.4" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" + } } }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } + "acorn-jsx": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", + "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", + "dev": true }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "es6-promisify": "^5.0.0" } }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, + "ajv": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", "requires": { - "babel-runtime": "^6.22.0" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "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" + } + } } }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "string-width": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "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=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "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==", + "dev": true }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, + "optional": true, "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } } }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "sprintf-js": "~1.0.2" } }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } + "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==" }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } + "array-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", + "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } + "array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=", + "dev": true }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "babel-runtime": "^6.22.0" + "array-uniq": "^1.0.1" } }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, - "babel-plugin-transform-export-extensions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", - "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", - "dev": true, - "requires": { - "babel-plugin-syntax-export-extensions": "^6.8.0", - "babel-runtime": "^6.22.0" - } + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, - "babel-plugin-transform-function-bind": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz", - "integrity": "sha1-xvuOlqwpajELjPjqQBRiQH3fapc=", - "dev": true, + "ascli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz", + "integrity": "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=", "requires": { - "babel-plugin-syntax-function-bind": "^6.8.0", - "babel-runtime": "^6.22.0" + "colour": "~0.7.1", + "optjs": "~3.2.2" } }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "dev": true, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" + "safer-buffer": "~2.1.0" } }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "requires": { - "regenerator-transform": "^0.10.0" - } + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, - "babel-preset-es2015": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" - } + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true }, - "babel-preset-stage-0": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz", - "integrity": "sha1-VkLRUEL5E4TX5a+LyIsduVsDnmo=", - "dev": true, - "requires": { - "babel-plugin-transform-do-expressions": "^6.22.0", - "babel-plugin-transform-function-bind": "^6.22.0", - "babel-preset-stage-1": "^6.24.1" - } + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true }, - "babel-preset-stage-1": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", - "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", - "dev": true, - "requires": { - "babel-plugin-transform-class-constructor-call": "^6.24.1", - "babel-plugin-transform-export-extensions": "^6.22.0", - "babel-preset-stage-2": "^6.24.1" - } + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "babel-preset-stage-2": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", - "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", - "dev": true, - "requires": { - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-transform-class-properties": "^6.24.1", - "babel-plugin-transform-decorators": "^6.24.1", - "babel-preset-stage-3": "^6.24.1" - } + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, - "babel-preset-stage-3": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", - "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", - "dev": true, - "requires": { - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-generator-functions": "^6.24.1", - "babel-plugin-transform-async-to-generator": "^6.24.1", - "babel-plugin-transform-exponentiation-operator": "^6.24.1", - "babel-plugin-transform-object-rest-spread": "^6.22.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=" }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, - "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=", + "axios": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" } }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "object.assign": "^4.1.0" } }, - "babel-traverse": { + "babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-types": { @@ -1939,6 +2114,23 @@ } } }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserslist": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.2.tgz", + "integrity": "sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001004", + "electron-to-chromium": "^1.3.295", + "node-releases": "^1.1.38" + } + }, "buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", @@ -2006,6 +2198,12 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" }, + "caniuse-lite": { + "version": "1.0.30001008", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001008.tgz", + "integrity": "sha512-b8DJyb+VVXZGRgJUa30cbk8gKHZ3LOZTBLaUEEVr2P4xpmFigOCc62CO4uzquW641Ouq1Rm9N+rWLWdSYDaDIw==", + "dev": true + }, "capture-stack-trace": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", @@ -2025,17 +2223,33 @@ "lazy-cache": "^1.0.3" } }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + } + }, + "chai-http": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/chai-http/-/chai-http-4.3.0.tgz", + "integrity": "sha512-zFTxlN7HLMv+7+SPXZdkd5wUlK+KxH6Q7bIEMiEx0FK3zuuMqL7cwICAQ0V1+yYRozBburYuxN1qZstgHpFZQg==", "dev": true, "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" + "@types/chai": "4", + "@types/superagent": "^3.8.3", + "cookiejar": "^2.1.1", + "is-ip": "^2.0.0", + "methods": "^1.1.2", + "qs": "^6.5.1", + "superagent": "^3.7.0" } }, "character-parser": { @@ -2052,51 +2266,31 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "optional": true, "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", + "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": "^2.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true, - "optional": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^1.0.0" - } - } + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, "ci-info": { @@ -2220,6 +2414,12 @@ "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", "dev": true }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -2330,9 +2530,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "dev": true, "requires": { "safe-buffer": "~5.1.1" @@ -2348,6 +2548,12 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", + "dev": true + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -2358,6 +2564,24 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==" }, + "core-js-compat": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.3.6.tgz", + "integrity": "sha512-YnwZG/+0/f7Pf6Lr3jxtVAFjtGBW9lsLYcqrxhYJai1GfvrP8DEyEpnNzj/FRQfIkOOfk1j5tTBvPBLWVVJm4A==", + "dev": true, + "requires": { + "browserslist": "^4.7.2", + "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==", + "dev": true + } + } + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -2433,6 +2657,15 @@ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -2505,14 +2738,11 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true }, "diff-match-patch": { "version": "1.0.4", @@ -2594,6 +2824,12 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, + "electron-to-chromium": { + "version": "1.3.304", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.304.tgz", + "integrity": "sha512-a5mqa13jCdBc+Crgk3Gyr7vpXCiFWfFq23YDCEmrPYeiDOQKZDVE6EX/Q4Xdv97n3XkcjiSBDOY0IS19yP2yeA==", + "dev": true + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -2636,6 +2872,35 @@ "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" }, + "es-abstract": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", + "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.0", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-inspect": "^1.6.0", + "object-keys": "^1.1.1", + "string.prototype.trimleft": "^2.1.0", + "string.prototype.trimright": "^2.1.0" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", @@ -2944,69 +3209,6 @@ } } }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^2.1.0" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true, - "optional": true - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "optional": true, - "requires": { - "isarray": "1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -3245,13 +3447,6 @@ "flat-cache": "^2.0.1" } }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true, - "optional": true - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -3297,6 +3492,59 @@ } } }, + "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==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + } + }, "flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", @@ -3327,16 +3575,6 @@ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "optional": true, - "requires": { - "for-in": "^1.0.1" - } - }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -3352,6 +3590,12 @@ "mime-types": "^2.1.12" } }, + "formidable": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", + "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==", + "dev": true + }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -3982,6 +4226,18 @@ } } }, + "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==", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", @@ -4014,46 +4270,6 @@ "path-is-absolute": "^1.0.0" } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "optional": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true, - "optional": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^1.0.0" - } - } - } - }, "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", @@ -4087,12 +4303,6 @@ "ini": "^1.3.4" } }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, "globby": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", @@ -4200,6 +4410,12 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, "grpc": { "version": "1.21.1", "resolved": "https://registry.npmjs.org/grpc/-/grpc-1.21.1.tgz", @@ -4682,21 +4898,18 @@ "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=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -4731,14 +4944,19 @@ } } }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "parse-passwd": "^1.0.0" } }, "http-errors": { @@ -4764,11 +4982,11 @@ } }, "https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "requires": { - "agent-base": "^4.1.0", + "agent-base": "^4.3.0", "debug": "^3.1.0" } }, @@ -4953,6 +5171,12 @@ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, "ipaddr.js": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", @@ -5000,6 +5224,12 @@ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, "is-ci": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", @@ -5032,6 +5262,12 @@ } } }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -5045,25 +5281,8 @@ "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-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true, - "optional": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "optional": true, - "requires": { - "is-primitive": "^2.0.0" + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } } }, "is-expression": { @@ -5092,15 +5311,6 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, "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", @@ -5127,6 +5337,15 @@ "is-path-inside": "^1.0.0" } }, + "is-ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-2.0.0.tgz", + "integrity": "sha1-aO6gfooKCpTC0IDdZ0xzGrKkYas=", + "dev": true, + "requires": { + "ip-regex": "^2.0.0" + } + }, "is-npm": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", @@ -5178,20 +5397,6 @@ "isobject": "^3.0.1" } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true, - "optional": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true, - "optional": true - }, "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", @@ -5228,6 +5433,15 @@ "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -5264,6 +5478,12 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, "js-stringify": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", @@ -5290,12 +5510,6 @@ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, "json-bigint": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.0.tgz", @@ -5326,10 +5540,21 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } }, "jsonfile": { "version": "4.0.0", @@ -5359,6 +5584,12 @@ "promise": "^7.0.1" } }, + "just-extend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz", + "integrity": "sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==", + "dev": true + }, "jwa": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", @@ -5415,6 +5646,16 @@ "type-check": "~0.3.2" } }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", @@ -5465,6 +5706,52 @@ "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "lolex": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz", + "integrity": "sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==", + "dev": true + }, "long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", @@ -5521,13 +5808,6 @@ "object-visit": "^1.0.0" } }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "dev": true, - "optional": true - }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -5634,6 +5914,164 @@ "minimist": "0.0.8" } }, + "mocha": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.2.tgz", + "integrity": "sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A==", + "dev": true, + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "ms": "2.1.1", + "node-environment-flags": "1.0.5", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.0", + "yargs-parser": "13.1.1", + "yargs-unparser": "1.6.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==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "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" + } + }, + "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=", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "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==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "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==", + "dev": true + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "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.1" + } + } + } + }, "morgan": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", @@ -5718,6 +6156,54 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "nise": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.2.tgz", + "integrity": "sha512-/6RhOUlicRCbE9s+94qCUsyE+pKlVJ5AhIv+jEE7ESKwnbXqulKZ1FYU+XAtHHWE9TinYvAxDUJAb912PwPoWA==", + "dev": true, + "requires": { + "@sinonjs/formatio": "^3.2.1", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "lolex": "^4.1.0", + "path-to-regexp": "^1.7.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true, + "requires": { + "isarray": "0.0.1" + } + } + } + }, + "node-environment-flags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", + "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "node-fetch": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", @@ -5728,6 +6214,29 @@ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.8.4.tgz", "integrity": "sha512-UOfdpxivIYY4g5tqp5FNRNgROVNxRACUxxJREntJLFaJr1E0UEqFtUIk0F/jYx/E+Y6sVXd0KDi/m5My0yGCVw==" }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true + }, + "node-releases": { + "version": "1.1.39", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.39.tgz", + "integrity": "sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA==", + "dev": true, + "requires": { + "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==", + "dev": true + } + } + }, "nodemon": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.19.1.tgz", @@ -5849,14 +6358,11 @@ } }, "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } + "optional": true }, "npm-run-path": { "version": "2.0.2", @@ -5920,6 +6426,12 @@ } } }, + "object-inspect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", + "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", + "dev": true + }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -5933,15 +6445,26 @@ "isobject": "^3.0.0" } }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", "dev": true, - "optional": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" } }, "object.pick": { @@ -6009,12 +6532,6 @@ "resolved": "https://registry.npmjs.org/optjs/-/optjs-3.2.2.tgz", "integrity": "sha1-aabOicRCpEQDFBrS+bNwvVu29O4=" }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, "os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", @@ -6029,21 +6546,34 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, - "output-file-sync": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", - "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "dev": true, + "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==", "dev": true, "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" + "p-limit": "^2.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-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "package-json": { @@ -6075,37 +6605,11 @@ "callsites": "^3.0.0" } }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "optional": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "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=", - "dev": true, - "optional": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^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=", + "dev": true }, "parseurl": { "version": "1.3.3", @@ -6156,6 +6660,12 @@ "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=", + "dev": true + }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -6191,6 +6701,12 @@ "pify": "^3.0.0" } }, + "pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + }, "pause": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", @@ -6206,6 +6722,24 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -6332,13 +6866,6 @@ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true, - "optional": true - }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -6569,27 +7096,6 @@ "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "optional": true - } - } - }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -6657,31 +7163,19 @@ "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", "dev": true }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", "dev": true, "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" + "regenerate": "^1.4.0" } }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "optional": true, - "requires": { - "is-equal-shallow": "^0.1.3" - } + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" }, "regex-not": { "version": "1.0.2", @@ -6698,17 +7192,6 @@ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, "registry-auth-token": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", @@ -6728,29 +7211,6 @@ "rc": "^1.0.1" } }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "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=", - "dev": true - } - } - }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -6767,15 +7227,6 @@ "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=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, "request": { "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", @@ -6803,6 +7254,18 @@ "uuid": "^3.3.2" } }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "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==", + "dev": true + }, "resolve": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", @@ -7005,6 +7468,12 @@ "write-file-atomic": "1.3.1" } }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -7052,6 +7521,27 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, + "sinon": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.5.0.tgz", + "integrity": "sha512-AoD0oJWerp0/rY9czP/D6hDTTUYGpObhZjMpd7Cl/A6+j0xBE+ayL/ldfggkBXUs0IkvIiM1ljM8+WkOc5k78Q==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.4.0", + "@sinonjs/formatio": "^3.2.1", + "@sinonjs/samsam": "^3.3.3", + "diff": "^3.5.0", + "lolex": "^4.2.0", + "nise": "^1.5.2", + "supports-color": "^5.5.0" + } + }, + "sinon-chai": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.3.0.tgz", + "integrity": "sha512-r2JhDY7gbbmh5z3Q62pNbrjxZdOAjpsqW/8yxAZRSqLZqowmfGZPGUZPFf3UX36NLis0cv8VEM5IJh9HgkSOAA==", + "dev": true + }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", @@ -7217,15 +7707,6 @@ "urix": "^0.1.0" } }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", @@ -7326,6 +7807,26 @@ "strip-ansi": "^3.0.0" } }, + "string.prototype.trimleft": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", + "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", + "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -7369,11 +7870,40 @@ "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" }, + "superagent": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", + "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", + "dev": true, + "requires": { + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.2.0", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.3.5" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + } + } + }, "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } }, "table": { "version": "5.4.0", @@ -7554,12 +8084,6 @@ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, "tslib": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", @@ -7588,6 +8112,12 @@ "prelude-ls": "~1.1.2" } }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -7689,6 +8219,34 @@ } } }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true + }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -7853,12 +8411,6 @@ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -7875,12 +8427,12 @@ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz", + "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==", "dev": true, "requires": { - "user-home": "^1.1.1" + "homedir-polyfill": "^1.0.1" } }, "vary": { @@ -7917,6 +8469,21 @@ "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=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, "widest-line": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", @@ -8052,6 +8619,124 @@ "window-size": "^0.1.4", "y18n": "^3.2.0" } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.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==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "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=", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "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==", + "dev": true + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "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.1" + } + } + } } } } diff --git a/forseti-api/package.json b/forseti-api/package.json index 2519a1d..e9c0b16 100644 --- a/forseti-api/package.json +++ b/forseti-api/package.json @@ -1,15 +1,16 @@ { "name": "forseti-visualizer-api", - "version": "1.0.2", + "version": "2.0.0", "description": "Forseti Visualizer API to serve Forseti Based GCP content", "author": "Garrett Wong", "main": "server.js", "scripts": { - "dev": "nodemon -w src --exec \"babel-node server --presets es2015,stage-0\"", - "build": "babel src -s -D -d dist --presets es2015,stage-0", - "serve": "nodemon -w src --exec \"babel-node server --presets es2015,stage-0\"", + "dev": "nodemon -w server --exec \"babel-node server", + "build": "babel server -s -D -d dist", + "serve": "nodemon -w server --exec \"babel-node server\"", "start": "npm run serve", - "test": "eslint src" + "test": "babel server.js -d dist && mocha --recursive --exit --require @babel/register", + "babel-version": "babel --version" }, "eslintConfig": { "extends": "eslint:recommended", @@ -55,12 +56,18 @@ "url": "https://github.com/npm/npm.git" }, "devDependencies": { - "babel-cli": "^6.26.0", - "babel-core": "^6.26.3", - "babel-preset-es2015": "^6.24.1", - "babel-preset-stage-0": "^6.24.1", + "@babel/cli": "^7.7.0", + "@babel/core": "^7.7.0", + "@babel/node": "^7.7.0", + "@babel/preset-env": "^7.7.1", + "@babel/register": "^7.7.0", + "chai": "^4.2.0", + "chai-http": "^4.3.0", "eslint": "^5.3.0", "js-yaml": ">=3.13.1", - "nodemon": "^1.18.3" + "mocha": "^6.2.2", + "nodemon": "^1.18.3", + "sinon": "^7.5.0", + "sinon-chai": "^3.3.0" } } diff --git a/forseti-api/public/scripts/q-modal.js b/forseti-api/public/scripts/q-modal.js deleted file mode 100644 index 1d1d3f0..0000000 --- a/forseti-api/public/scripts/q-modal.js +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2019 Google LLC -// -// 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. - -let modalInstances = []; - -document.addEventListener('DOMContentLoaded', function () { - - modalInstances = initializeModals(); - - - initSubmitText(); -}); - -function initializeModals() { - var elems = document.querySelectorAll('.modal'); - let options = { - onOpenStart: function(a, b) { - console.log(a, b); - - let href = b.getAttribute('href'); - - console.log(href); - - let qNumReplaced = href.replace('#!/Q/', ''); - - document.getElementById('q-num').innerText = qNumReplaced; - } - }; - - var instances = M.Modal.init(elems, options); - - return instances; -} - - -function initSubmitText() { - let submitTextBtn = document.getElementById('submit-text'); - submitTextBtn.addEventListener('click', function(event) { - console.log(event); - let textToAssociate = document.getElementById('text-to-associate').value; - console.log(textToAssociate); - - let modalInstance = M.Modal.getInstance($('.modal')); - - alert(textToAssociate); - - if (textToAssociate !== '') { - modalInstance.close(); - } - }); -} \ No newline at end of file diff --git a/forseti-api/server.js b/forseti-api/server.js index 6731642..9844891 100644 --- a/forseti-api/server.js +++ b/forseti-api/server.js @@ -66,7 +66,7 @@ const passport = require('passport'); const sessionConfig = { resave: false, saveUninitialized: false, - secret: config.SECRET, + secret: config.randomString, signed: true }; @@ -89,7 +89,7 @@ app.use(session(sessionConfig)); app.use(passport.initialize()); app.use(passport.session()); -app.use(require('./server/services/oauth2').router); +app.use(require('./server/services/oauth2').router); //auth /* END AUTH */ diff --git a/forseti-api/server/api/forseti.js b/forseti-api/server/api/forseti.js index e2aa643..f9e3b98 100644 --- a/forseti-api/server/api/forseti.js +++ b/forseti-api/server/api/forseti.js @@ -25,13 +25,16 @@ export default ({ let forsetiApi = Router(); forsetiApi.all('*', cors()); - + /** * @desc returns .json file content */ forsetiApi.get('/', function (req, res) { ForsetiService.getResourcesJson(function (error, results) { - if (error) throw error; + if (error) { + console.log(error); + // throw error; + } let json = results; res.json(json); }); @@ -40,9 +43,16 @@ export default ({ /** * @desc returns resources */ - forsetiApi.get('/resources', function (req, res) { - ForsetiService.getResources(function (error, results) { - if (error) throw error; + forsetiApi.get('/resources/:parentId?', function (req, res) { + console.log(req.params.parentId); + + let parentId = req.params.parentId ? req.params.parentId : null; + + ForsetiService.getResources(parentId, function (error, results) { + if (error) { + console.log(error); + // throw error; + } let json = results; res.json(json); }); @@ -83,7 +93,7 @@ export default ({ console.log('Error: ', error); else { console.log(results); - + // TODO: res.json(results.accesses); @@ -98,7 +108,12 @@ export default ({ let inventoryIndexId = req.params.inventoryIndexId; ForsetiService.getViolations(inventoryIndexId, function (error, results) { - if (error) throw error; + if (error) { + console.log(error); + // throw error; + } + console.log('getViolations() results:', results) + let json = results; res.json(json); }); diff --git a/forseti-api/server/api/index.js b/forseti-api/server/api/index.js index c45e82f..8b85192 100644 --- a/forseti-api/server/api/index.js +++ b/forseti-api/server/api/index.js @@ -19,8 +19,7 @@ import { Router } from 'express'; import forseti from './forseti'; - -import CryptoService from '../services/crypto-service'; +import user from './user'; export default ({ config, @@ -33,11 +32,12 @@ export default ({ config, db })); - - // api.use('/auth', auth({ - // config, - // db - // })); + + // mount resources + api.use('/user', user({ + config, + db + })); // perhaps expose some API metadata at the root api.get('/', (req, res) => { @@ -48,30 +48,5 @@ export default ({ }); }); - - /* Testing */ - - // perhaps expose some API metadata at the root - api.get('/enc', async (req, res) => { - // enc / dec - let textToEncrypt = "Haha"; - - let encryptedText = await CryptoService.encrypt( - '/Users/garrettwong/Git/forseti-visualizer/forseti-api/dockersource.env', 'asdf.env.enc'); - - res.json({ - encryptedText - }); - }); - - // perhaps expose some API metadata at the root - api.get('/dec', async (req, res) => { - let decryptedText = await CryptoService.decrypt('asdf.env.enc', 'orginal.env'); - - res.json({ - decryptedText - }); - }); - return api; } \ No newline at end of file diff --git a/forseti-api/server/api/user.js b/forseti-api/server/api/user.js new file mode 100644 index 0000000..55a191c --- /dev/null +++ b/forseti-api/server/api/user.js @@ -0,0 +1,58 @@ +// Copyright 2019 Google LLC +// +// 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. + +import { + Router +} from 'express'; +import ForsetiService from '../services/forseti-service'; +import cors from 'cors'; + +export default ({ + config, + db +}) => { + let userApi = Router(); + + userApi.all('*', cors()); + + /** + * @desc returns the username + */ + userApi.get('/', function (req, res) { + res.json({ + username: 'Me' + }); + }); + + /** + * @desc returns the username + */ + userApi.get('/AuthenticatedUser', ensureAuthenticated, function (req, res) { + console.log(req.user) + res.json('access granted'); + }); + + return userApi; +} + +function ensureAuthenticated(req, res, next) { + if (req.isAuthenticated()) { + // req.user is available for use here + return next(); + } + + console.log(req.user); + // denied. redirect to login + res.redirect('/auth/login') +} \ No newline at end of file diff --git a/forseti-api/server/index.js b/forseti-api/server/index-REMOVE.js similarity index 99% rename from forseti-api/server/index.js rename to forseti-api/server/index-REMOVE.js index 12bb756..89345b0 100644 --- a/forseti-api/server/index.js +++ b/forseti-api/server/index-REMOVE.js @@ -39,7 +39,6 @@ app.use(bodyParser.json({ // connect to db initializeDb( db => { - // internal middleware app.use(middleware({ config, db })); diff --git a/forseti-api/server/services/crypto-service.js b/forseti-api/server/services/crypto-service.js deleted file mode 100644 index 414bfb4..0000000 --- a/forseti-api/server/services/crypto-service.js +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright 2019 Google LLC -// -// 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. - -/* crypto-service */ -class CryptoService { - constructor( - projectId = 'forseti-security-new', - keyRingId = 'test', - cryptoKeyId = 'quickstart') { - - this.projectId = projectId; - this.keyRingId = keyRingId; - this.cryptoKeyId = cryptoKeyId; - } - - async encrypt( - plaintextFileName = '/Users/garrettwong/Git/forseti-visualizer/forseti-api/dockersource.env', - ciphertextFileName = 'dockersource.env.enc' - ) { - const fs = require('fs'); - const { - promisify - } = require('util'); - - // Import the library and create a client - const kms = require('@google-cloud/kms'); - const client = new kms.KeyManagementServiceClient(); - - // The location of the crypto key's key ring, e.g. "global" - const locationId = 'global'; - - // Reads the file to be encrypted - const readFile = promisify(fs.readFile); - const contentsBuffer = await readFile(plaintextFileName); - console.log(contentsBuffer); - - const plaintext = contentsBuffer.toString('base64'); - - console.log(plaintext); - - const name = client.cryptoKeyPath( - this.projectId, - locationId, - this.keyRingId, - this.cryptoKeyId - ); - - // Encrypts the file using the specified crypto key - const [result] = await client.encrypt({ - name, - plaintext - }); - const writeFile = promisify(fs.writeFile); - await writeFile(ciphertextFileName, Buffer.from(result.ciphertext, 'base64')); - console.log(`Encrypted ${plaintextFileName} using ${result.name}.`); - console.log(`Result saved to ${ciphertextFileName}.`); - - return Buffer.from(result.ciphertext, 'base64'); - } - - async decrypt( - ciphertextFileName = 'dockersource.env.enc', - plaintextFileName = 'dockersource.env.decrypted' - ) { - const fs = require('fs'); - const { - promisify - } = require('util'); - - // Import the library and create a client - const kms = require('@google-cloud/kms'); - const client = new kms.KeyManagementServiceClient(); - - // The location of the crypto key's key ring, e.g. "global" - const locationId = 'global'; - - // Reads the file to be decrypted - const readFile = promisify(fs.readFile); - const contentsBuffer = await readFile(ciphertextFileName); - const name = client.cryptoKeyPath( - this.projectId, - locationId, - this.keyRingId, - this.cryptoKeyId - ); - const ciphertext = contentsBuffer.toString('base64'); - - // Decrypts the file using the specified crypto key - const [result] = await client.decrypt({ - name, - ciphertext - }); - - // Writes the decrypted file to disk - const writeFile = promisify(fs.writeFile); - await writeFile(plaintextFileName, Buffer.from(result.plaintext, 'base64')); - console.log( - `Decrypted ${ciphertextFileName}, result saved to ${plaintextFileName}.` - ); - - console.log(Buffer.from(result.plaintext, 'base64').toString('utf8')); - - return Buffer.from(result.plaintext, 'base64').toString('utf8'); - } - -} - -export default new CryptoService(); \ No newline at end of file diff --git a/forseti-api/public/scripts/carousel.js b/forseti-api/server/services/database-service-base.js similarity index 66% rename from forseti-api/public/scripts/carousel.js rename to forseti-api/server/services/database-service-base.js index f6ce06e..a744d93 100644 --- a/forseti-api/public/scripts/carousel.js +++ b/forseti-api/server/services/database-service-base.js @@ -12,10 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. -document.addEventListener('DOMContentLoaded', function () { - var elems = document.querySelectorAll('.carousel'); +/* database-service-base */ +import MySQLDbConnection from './mysql-db-connection'; - let options = { duration: 500 } - - var instances = M.Carousel.init(elems, options); -}); \ No newline at end of file +class DatabaseServiceBase { + constructor() {} + + getMySqlDbConnection(hostname, user, pass, schema) { + return new MySQLDbConnection(hostname, user, pass, schema); + } +} + +export default DatabaseServiceBase; \ No newline at end of file diff --git a/forseti-api/server/services/forseti-service.js b/forseti-api/server/services/forseti-service.js index 3560603..e9eb82a 100644 --- a/forseti-api/server/services/forseti-service.js +++ b/forseti-api/server/services/forseti-service.js @@ -13,27 +13,11 @@ // limitations under the License. /* forseti-service */ -import MySQLDbConnection from './mysql-db-connection'; +import DatabaseServiceBase from './database-service-base.js'; -let secrets = { - hostname: process.env.CLOUDSQL_HOSTNAME, - user: process.env.CLOUDSQL_USERNAME, - pass: process.env.CLOUDSQL_PASSWORD, - schema: process.env.CLOUDSQL_SCHEMA, - - forsetiServerVmChannel: process.env.FORSETI_SERVER_VM_CHANNEL, - forsetiDataModelHandle: process.env.FORSETI_DATA_MODEL_HANDLE -}; - -function getMySqlDbConnection() { - console.log(secrets); - - let mySqlDbConn = new MySQLDbConnection(secrets.hostname, secrets.user, secrets.pass, secrets.schema); - return mySqlDbConn; -} -class ForsetiService { +class ForsetiService extends DatabaseServiceBase { constructor() { - + super() } /* @@ -46,23 +30,47 @@ class ForsetiService { return results; }); */ - getResources(cb) { + getResources(parentId, cb) { + // include parent and its children + let parentIdSqlPhrase = parentId ? + `AND (g.resource_id = '${parentId}' OR g.parent_id = + (SELECT id + FROM gcp_inventory + WHERE inventory_index_id = g.inventory_index_id AND + category = 'resource' AND + resource_id = '${parentId}' + ) + )` : ''; + + console.log(parentIdSqlPhrase); + + // GETS resources from the last successful inventory? let sql = ` - SELECT g.id, g.resource_type, g.category, g.resource_id, g.parent_id AS parent_id, + SELECT g.id, + g.resource_type, + g.category, + g.resource_id, + g.parent_id AS parent_id, + g.full_name AS full_name, IFNULL(g.resource_data->>'$.displayName', '') as resource_data_displayname, - IFNULL(g.resource_data->>'$.name', '') as resource_data_name, g.resource_data->>'$.lifecycleState' as qq, + IFNULL(g.resource_data->>'$.name', '') as resource_data_name, g.resource_data->>'$.lifecycleState' as lifecycle_state, g.inventory_index_id FROM gcp_inventory g WHERE g.inventory_index_id = (SELECT id FROM inventory_index - WHERE inventory_status = 'SUCCESS' + WHERE inventory_status IN ('SUCCESS', 'PARTIAL_SUCCESS') ORDER BY completed_at_datetime DESC LIMIT 1) AND (g.category='resource') AND g.resource_type IN ('organization', 'project', 'folder', 'appengine_app', 'kubernetes_cluster', 'cloudsqlinstance', 'instance', 'dataset', 'firewall', 'bucket', 'serviceaccount', 'serviceaccount_key', 'network') - #AND (g.resource_data->>'$.lifecycleState' != 'DELETE_REQUESTED' || g.resource_data->>'$.lifecycleState' is NULL) + + ${parentIdSqlPhrase} + + -- this will filter out DELETE_REQUESTED projects and the child resources under the DELETE_REQUESTED state resources + AND (g.resource_data->>'$.lifecycleState' != 'DELETE_REQUESTED' || g.resource_data->>'$.lifecycleState' is NULL) + AND (g.parent_id NOT IN (SELECT id FROM gcp_inventory gsub WHERE gsub.id = g.parent_id AND gsub.resource_data->>'$.lifecycleState' = 'DELETE_REQUESTED')) ORDER BY CASE WHEN g.resource_type = 'organization' THEN 0 @@ -70,7 +78,12 @@ class ForsetiService { WHEN g.resource_type = 'project' THEN 2 ELSE 3 END ASC;`; try { - let mySqlDbConn = getMySqlDbConnection(); + let mySqlDbConn = this.getMySqlDbConnection( + process.env.CLOUDSQL_HOSTNAME, + process.env.CLOUDSQL_USERNAME, + process.env.CLOUDSQL_PASSWORD, + process.env.CLOUDSQL_SCHEMA + ); mySqlDbConn.query(sql, cb); } catch (ex) { console.log(ex); @@ -83,14 +96,18 @@ class ForsetiService { * function (error, results, fields) { if (error) throw error; - console.log('durr', results, fields); - return results; }); */ getViolations(inventoryIndexId, cb) { - let getInventoryIndexId = '(SELECT id FROM inventory_index WHERE inventory_status = \'SUCCESS\' ORDER BY completed_at_datetime DESC LIMIT 1)'; - if (inventoryIndexId === null || inventoryIndexId === 0) getInventoryIndexId = inventoryIndexId; + let getInventoryIndexIdSqlStmt = `(SELECT id + FROM inventory_index + WHERE inventory_status IN ('SUCCESS', 'PARTIAL_SUCCESS') + ORDER BY completed_at_datetime DESC LIMIT 1)`; + + if (inventoryIndexId !== null && inventoryIndexId > 0) { + getInventoryIndexIdSqlStmt = inventoryIndexId; + } let sql = ` SELECT ii.id as inventory_index_id, si.id as scanner_index_id, v.* FROM violations v @@ -98,13 +115,20 @@ class ForsetiService { ON v.scanner_index_id = si.id JOIN inventory_index ii ON si.inventory_index_id = ii.id - WHERE ii.id = ${getInventoryIndexId};`; + WHERE ii.id = ${getInventoryIndexIdSqlStmt}`; + + console.log('gv', inventoryIndexId, sql); try { - let mySqlDbConn = getMySqlDbConnection(); + let mySqlDbConn = this.getMySqlDbConnection( + process.env.CLOUDSQL_HOSTNAME, + process.env.CLOUDSQL_USERNAME, + process.env.CLOUDSQL_PASSWORD, + process.env.CLOUDSQL_SCHEMA + ); mySqlDbConn.query(sql, cb); } catch (ex) { - console.log(ex); + console.log('getViolations', ex); } } @@ -130,23 +154,23 @@ class ForsetiService { // The protoDescriptor object has the full package hierarchy var ex = protoDescriptor.explain; - let channel = secrets.forsetiServerVmChannel; + let channel = process.env.FORSETI_SERVER_VM_CHANNEL; let res = new ex.Explain(channel, grpc.credentials.createInsecure()); var meta = new grpc.Metadata(); - meta.add('handle', secrets.forsetiDataModelHandle); - + meta.add('handle', process.env.FORSETI_DATA_MODEL_HANDLE); + console.log(ex); console.log(res); console.log('channel', channel); - console.log('channel', secrets.forsetiDataModelHandle); - + console.log('channel', process.env.FORSETI_DATA_MODEL_HANDLE); + res.getAccessByMembers({ member_name: iamPrefix }, meta, cb); } - /** + /** * gets the iam explain of a given prefix * @param {*} role '' * @param {*} cb function for callback processing @@ -167,14 +191,14 @@ class ForsetiService { var protoDescriptor = grpc.loadPackageDefinition(packageDefinition); // The protoDescriptor object has the full package hierarchy var ex = protoDescriptor.explain; - - let channel = secrets.forsetiServerVmChannel; + + let channel = process.env.FORSETI_SERVER_VM_CHANNEL; let res = new ex.Explain(channel, grpc.credentials.createInsecure()); console.log(res); var meta = new grpc.Metadata(); - meta.add('handle', secrets.forsetiDataModelHandle); - + meta.add('handle', process.env.FORSETI_DATA_MODEL_HANDLE); + res.getAccessByPermissions({ role_name: 'roles/owner', permission_name: '', @@ -197,10 +221,15 @@ class ForsetiService { }); */ getResourcesJson(cb) { - let sql = "SELECT g.id, g.resource_type, g.category, g.resource_id, g.parent_id AS parent_id, IFNULL(g.resource_data->>'$.displayName', '') as resource_data_displayname, IFNULL(g.resource_data->>'$.name', '') as resource_data_name, g.resource_data->>'$.lifecycleState' as qq FROM gcp_inventory g WHERE g.inventory_index_id = (SELECT id FROM inventory_index ORDER BY completed_at_datetime DESC LIMIT 1) AND (g.category='resource') AND g.resource_type IN ('organization', 'project', 'folder', 'appengine_app', 'kubernetes_cluster', 'cloudsqlinstance') ORDER BY CASE WHEN g.resource_type = 'organization' THEN 0 WHEN g.resource_type = 'folder' THEN 1 WHEN g.resource_type = 'project' THEN 2 ELSE 3 END ASC;"; + let sql = "SELECT g.id, g.resource_type, g.category, g.resource_id, g.parent_id AS parent_id, IFNULL(g.resource_data->>'$.displayName', '') as resource_data_displayname, IFNULL(g.resource_data->>'$.name', '') as resource_data_name, g.resource_data->>'$.lifecycleState' as lifecycle_state FROM gcp_inventory g WHERE g.inventory_index_id = (SELECT id FROM inventory_index ORDER BY completed_at_datetime DESC LIMIT 1) AND (g.category='resource') AND g.resource_type IN ('organization', 'project', 'folder', 'appengine_app', 'kubernetes_cluster', 'cloudsqlinstance') ORDER BY CASE WHEN g.resource_type = 'organization' THEN 0 WHEN g.resource_type = 'folder' THEN 1 WHEN g.resource_type = 'project' THEN 2 ELSE 3 END ASC;"; try { - let mySqlDbConn = getMySqlDbConnection(); + let mySqlDbConn = this.getMySqlDbConnection( + process.env.CLOUDSQL_HOSTNAME, + process.env.CLOUDSQL_USERNAME, + process.env.CLOUDSQL_PASSWORD, + process.env.CLOUDSQL_SCHEMA + ); mySqlDbConn.query(sql, cb); } catch (ex) { console.log(ex); diff --git a/forseti-api/server/services/mysql-db-connection.js b/forseti-api/server/services/mysql-db-connection.js index 3425417..64926fc 100644 --- a/forseti-api/server/services/mysql-db-connection.js +++ b/forseti-api/server/services/mysql-db-connection.js @@ -14,21 +14,36 @@ class MySQLDatabaseConnection { constructor(host, user, password, database) { + this.initializeConnection(host, user, password, database); + } + + initializeConnection(host, user, password, database) { const mysql = require('mysql'); - this.connection = mysql.createConnection({ + let connection = mysql.createConnection({ host: host, user: user, password: password, database: database }); - this.connection.connect(function(err) { + connection.connect(function (err) { if (err) { console.error('error connecting: ' + err.stack); return; } }); + + connection.on('error', (err) => { + console.log('db error', err); + if (err.code === 'PROTOCOL_CONNECTION_LOST') { // Connection to the MySQL server is usually + this.initializeConnection(host, user, password, database); // lost due to either server restart, or a + } else { // connnection idle timeout (the wait_timeout + throw err; // server variable configures this) + } + }); + + this.connection = connection; } getActiveConnection() { diff --git a/forseti-api/server/services/oauth2.js b/forseti-api/server/services/oauth2.js index 0a2fc0f..c9dd09e 100644 --- a/forseti-api/server/services/oauth2.js +++ b/forseti-api/server/services/oauth2.js @@ -57,24 +57,24 @@ function extractProfile(profile) { // object, which will be set at `req.user` in route handlers after // authentication. passport.use(new GoogleStrategy({ - clientID: config.OAUTH2_CLIENT_ID, - clientSecret: config.OAUTH2_CLIENT_SECRET, - callbackURL: config.OAUTH2_CALLBACK, + clientID: config.oauth2ClientId, + clientSecret: config.oauth2ClientSecret, + callbackURL: config.oauth2Callback, accessType: 'offline' }, (accessToken, refreshToken, profile, cb) => { // Extract the minimal profile information we need from the profile object // provided by Google - console.log('oauth2.js: passport.use cb', accessToken, refreshToken, profile); - + console.log('oauth2.js: passport.use', accessToken, refreshToken, profile); + cb(null, extractProfile(profile)); })); passport.serializeUser((user, cb) => { - console.log('oauth2.js: serializeUser'); + console.log('oauth2.js: serializeUser', user); cb(null, user); }); passport.deserializeUser((obj, cb) => { - console.log('oauth2.js: deserializeUser'); + console.log('oauth2.js: deserializeUser', obj); cb(null, obj); }); // [END setup] @@ -128,7 +128,7 @@ router.get( passport.authenticate('google', { scope: ['email', 'profile'] }, (err, user, info) => { - console.log('uh oh'); + console.log('an error has occurred with authentication'); }) ); // [END authorize] @@ -145,6 +145,7 @@ router.get( // Redirect back to the original page, if any (req, res) => { console.log('oauth2.js: /auth/google/callback'); + console.log(req.session.oauth2return); const redirect = req.session.oauth2return || '/'; delete req.session.oauth2return; diff --git a/forseti-api/setup.sh b/forseti-api/setup.sh deleted file mode 100644 index ea24531..0000000 --- a/forseti-api/setup.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -eu -# -# Copyright 2019 Google LLC -# -# 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. - -#!/bin/sh - -# create GKE cluster -./infrastructure/gke/create_cluster.sh - -# set credentials -./infrastructure/gke/get_credentials.sh \ No newline at end of file diff --git a/forseti-api/source.env b/forseti-api/source.env index 3a15031..2ac150c 100644 --- a/forseti-api/source.env +++ b/forseti-api/source.env @@ -1,6 +1,6 @@ export CLOUDSQL_HOSTNAME="127.0.0.1" export CLOUDSQL_USERNAME="root" -export CLOUDSQL_PASSWORD="password" +export CLOUDSQL_PASSWORD="" export CLOUDSQL_SCHEMA="forseti_security" export FORSETI_SERVER_VM_CHANNEL="35.232.32.159:50051" export FORSETI_DATA_MODEL_HANDLE="f240aa3a5bc9fd9acfaf50fdd3620534" diff --git a/forseti-api/test/server.test.js b/forseti-api/test/server.test.js new file mode 100644 index 0000000..cda310b --- /dev/null +++ b/forseti-api/test/server.test.js @@ -0,0 +1,81 @@ +// Copyright 2019 Google LLC +// +// 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. + +import http from 'http' +import { + assert +} from 'chai' + +import server from '../server.js'; + +describe('Server.js', () => { + + it('should return a status code of success', done => { + http.get('http://127.0.0.1:8080', res => { + assert.equal(200, res.statusCode); + done(); + }); + }); + + + it('should have an api endpoint', done => { + http.get('http://127.0.0.1:8080/api', res => { + assert.equal(200, res.statusCode); + done() + }); + }); + + it('should have an api endpoint that returns version', done => { + http.get('http://127.0.0.1:8080/api', res => { + res.setEncoding('utf8'); + let rawData = ''; + res.on('data', (chunk) => { + rawData += chunk; + }); + + res.on('end', () => { + try { + const parsedData = JSON.parse(rawData); + console.log(parsedData); + assert.isNotNull(parsedData.version) + done(); + } catch (e) { + console.error(e.message); + } + }); + }); + }); + + // Forseti Server Tests (need Cloud SQL Proxy enabled and need to set ENV vars) + it('should return forseti assets', done => { + http.get('http://127.0.0.1:8080/api/forseti', res => { + res.setEncoding('utf8'); + let rawData = ''; + res.on('data', (chunk) => { + rawData += chunk; + }); + + res.on('end', () => { + try { + const parsedData = JSON.parse(rawData); + console.log(parsedData); + assert.isNotNull(parsedData.version) + done(); + } catch (e) { + console.error(e.message); + } + }); + }); + }); +}) \ No newline at end of file diff --git a/forseti-api/test/server/api/forseti.test.js b/forseti-api/test/server/api/forseti.test.js new file mode 100644 index 0000000..01532f1 --- /dev/null +++ b/forseti-api/test/server/api/forseti.test.js @@ -0,0 +1,44 @@ +// Copyright 2019 Google LLC +// +// 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. + +import http from 'http' +import { + assert +} from 'chai' +import chai from 'chai'; +import chaiHttp from 'chai-http'; + +chai.use(chaiHttp); +chai.should(); + +import forseti from '../../../server/api/forseti.js'; + +describe('forseti.js', () => { + + it('should get records', done => { + console.log('FORSETI!!!') + console.log(forseti) + done() + + // chai.request(forseti) + // .get('/') + // .end((err, res) => { + // console.log(err, res) + // res.should.have.status(200); + // res.body.should.be.a('object'); + // done(); + // }); + }); + +}) \ No newline at end of file diff --git a/forseti-api/public/scripts/q-zone.js b/forseti-api/test/server/services/database-service-base.test.js similarity index 50% rename from forseti-api/public/scripts/q-zone.js rename to forseti-api/test/server/services/database-service-base.test.js index e62f85b..e11bfb7 100644 --- a/forseti-api/public/scripts/q-zone.js +++ b/forseti-api/test/server/services/database-service-base.test.js @@ -12,21 +12,31 @@ // See the License for the specific language governing permissions and // limitations under the License. -document.addEventListener('DOMContentLoaded', function () { - let options = {}; - var elems = document.querySelectorAll('.tap-target'); - var instances = M.TapTarget.init(elems, options); +/* forseti-service */ +import { + assert +} from 'chai' +import chai from 'chai' +import sinon from 'sinon' +import sinonChai from 'sinon-chai' +chai.use(sinonChai) +import DatabaseServiceBase from '../../../server/services/database-service-base.js' +describe('database-service-base.js', () => { + let sut + let testConfig = { + hostname: '127.0.0.1', + user: 'user', + pass: '', + schema: 'forseti_security' + } - let element = document.getElementById('open-menu-btn'); - console.log(element); - element.addEventListener('click', function() { - // get instance - - let instanceEls = document.getElementsByClassName('tap-target'); - let instance = M.TapTarget.getInstance(instanceEls[0]); - console.log(instance); - instance.open(); - }); -}); \ No newline at end of file + beforeEach(() => { + sut = new DatabaseServiceBase() + }) + + it('should set properties', done => { + done() + }) +}) \ No newline at end of file diff --git a/forseti-api/test/server/services/forseti-service.test.js b/forseti-api/test/server/services/forseti-service.test.js new file mode 100644 index 0000000..56d5b3a --- /dev/null +++ b/forseti-api/test/server/services/forseti-service.test.js @@ -0,0 +1,71 @@ +// Copyright 2019 Google LLC +// +// 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. + +/* forseti-service */ +import { + assert +} from 'chai' +import chai from 'chai' +import sinon from 'sinon' +import sinonChai from 'sinon-chai' +chai.use(sinonChai) + +import ForsetiService from '../../../server/services/forseti-service.js' + + +describe('forseti-service.js', () => { + let sut + let initEventSpy + const OLD_ENV = process.env + + beforeEach(() => { + sut = ForsetiService + + initEventSpy = sinon.spy() + initEventSpy() + + // set ForsetiService env varsiables + process.env = { + CLOUDSQL_HOSTNAME: '127.0.0.1', + CLOUDSQL_USERNAME: 'root', + CLOUDSQL_PASSWORD: '', + CLOUDSQL_SCHEMA: 'forseti_security' + } + }) + + afterEach(() => { + process.env = OLD_ENV; + }); + + it('should have been called', done => { + assert.isTrue(initEventSpy.called); + // console.log(sut.getResourcesJson()) + done() + }) + + it('get resources should call callback', done => { + let cb = function (error, results) { + // console.log(error, results) + assert.isNull(error) + done() + } + sut.getResources(null, cb) + }) + + // it('getExplainIdentity should be called', done => { + // sut.getExplainIdentity('user/garrettwong@gwongcloud.com', function (error, results) { + // console.log(error, results) + // }) + // }) +}) \ No newline at end of file diff --git a/forseti-visualizer-ui/package-lock.json b/forseti-visualizer-ui/package-lock.json index c7d57df..1b5d2b6 100644 --- a/forseti-visualizer-ui/package-lock.json +++ b/forseti-visualizer-ui/package-lock.json @@ -1,6 +1,6 @@ { "name": "forseti-visualizer-ui", - "version": "1.0.1", + "version": "1.0.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -154,7 +154,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", - "dev": true, "requires": { "@babel/types": "^7.0.0" } @@ -798,7 +797,6 @@ "version": "7.2.2", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.2.tgz", "integrity": "sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==", - "dev": true, "requires": { "esutils": "^2.0.2", "lodash": "^4.17.10", @@ -2679,11 +2677,28 @@ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, + "arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "requires": { + "make-iterator": "^1.0.0" + }, + "dependencies": { + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "requires": { + "kind-of": "^6.0.2" + } + } + } + }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "arr-union": { "version": "3.1.0", @@ -2697,6 +2712,14 @@ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", "dev": true }, + "array-every": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/array-every/-/array-every-0.1.2.tgz", + "integrity": "sha1-vlTPf7/ExHd7uoXHr37awoNtg+0=", + "requires": { + "make-iterator": "^0.1.1" + } + }, "array-filter": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", @@ -2709,6 +2732,25 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, + "array-intersection": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/array-intersection/-/array-intersection-0.1.2.tgz", + "integrity": "sha1-sU7wId8l6cnYBBFshHzGoNZ8+s4=", + "requires": { + "array-every": "^0.1.2", + "array-slice": "^0.2.3", + "array-unique": "^0.2.1", + "filter-array": "^0.2.0", + "index-of": "^0.1.1" + }, + "dependencies": { + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + } + } + }, "array-map": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", @@ -2721,6 +2763,11 @@ "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", "dev": true }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=" + }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -5141,6 +5188,11 @@ "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", "dev": true }, + "debounce": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz", + "integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==" + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -6060,8 +6112,7 @@ "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "etag": { "version": "1.8.1", @@ -6183,6 +6234,52 @@ } } }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "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" + } + }, + "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" + } + } + } + }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -6470,6 +6567,11 @@ "schema-utils": "^1.0.0" } }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" + }, "fileset": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", @@ -6509,6 +6611,105 @@ } } }, + "filter-array": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/filter-array/-/filter-array-0.2.0.tgz", + "integrity": "sha1-n29M6vW16Ka2dKW1RgU3cUqMUfE=", + "requires": { + "arr-filter": "^1.1.0", + "kind-of": "^1.1.0", + "micromatch": "^2.1.0" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "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" + } + }, + "kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=" + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "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" + } + } + } + } + } + }, "finalhandler": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", @@ -6636,8 +6837,15 @@ "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "requires": { + "for-in": "^1.0.1" + } }, "forever-agent": { "version": "0.6.1", @@ -7320,6 +7528,38 @@ "path-is-absolute": "^1.0.0" } }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "^2.0.0" + } + }, + "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" + } + } + } + }, "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", @@ -7440,9 +7680,9 @@ "dev": true }, "handlebars": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", - "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.4.2.tgz", + "integrity": "sha512-cIv17+GhL8pHHnRJzGu2wwcthL5sb8uDKBHvZ2Dtu5s1YNt0ljbzKbamnc+gr69y7bzwQiBdr5+hOpRd5pnOdg==", "dev": true, "requires": { "neo-async": "^2.6.0", @@ -7954,6 +8194,11 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "index-of": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/index-of/-/index-of-0.1.1.tgz", + "integrity": "sha1-2FWvNjQbKE2tYbvXFpXGxpTBV6w=" + }, "indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", @@ -8115,8 +8360,7 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-builtin-module": { "version": "1.0.0", @@ -8207,11 +8451,23 @@ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", "dev": true }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "requires": { + "is-primitive": "^2.0.0" + } + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-extglob": { "version": "2.1.1", @@ -8305,6 +8561,16 @@ "isobject": "^3.0.1" } }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" + }, "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", @@ -8371,8 +8637,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isemail": { "version": "3.2.0", @@ -9287,8 +9552,7 @@ "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, "kleur": { "version": "3.0.2", @@ -9450,8 +9714,7 @@ "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, "lodash._reinterpolate": { "version": "3.0.0", @@ -9580,6 +9843,14 @@ "pify": "^3.0.0" } }, + "make-iterator": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-0.1.1.tgz", + "integrity": "sha1-hz0nuBmKRlqBSDtvXRbaToY+z1s=", + "requires": { + "for-own": "^0.1.1" + } + }, "makeerror": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", @@ -9619,6 +9890,11 @@ "object-visit": "^1.0.0" } }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -9663,6 +9939,11 @@ "readable-stream": "^2.0.1" } }, + "merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==" + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -10131,7 +10412,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, "requires": { "remove-trailing-separator": "^1.0.1" } @@ -13348,6 +13628,15 @@ "es-abstract": "^1.5.1" } }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -13661,6 +13950,32 @@ "safe-buffer": "^5.1.1" } }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "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" + } + } + } + }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -14378,6 +14693,11 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" + }, "prettier": { "version": "1.16.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.3.tgz", @@ -14582,6 +14902,23 @@ "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", "dev": true }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + } + } + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -14765,6 +15102,14 @@ "private": "^0.1.6" } }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -14827,8 +15172,7 @@ "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "renderkid": { "version": "2.0.3", @@ -14885,14 +15229,12 @@ "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true + "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=", - "dev": true + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "request": { "version": "2.88.0", @@ -16369,8 +16711,7 @@ "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=", - "dev": true + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, "to-object-path": { "version": "0.3.0", @@ -16935,6 +17276,23 @@ "vue-style-loader": "^4.1.0" } }, + "vue-pagination-2": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/vue-pagination-2/-/vue-pagination-2-1.6.2.tgz", + "integrity": "sha512-t0UlPJYIgPHJ6ovh32HkQZkvKROMBssfyOQxueFYWbjYwZmhug0HrGEHezrCkRIzNggvjxLXAhLyoRqOlCdajw==", + "requires": { + "merge": "^1.2.0", + "vue": ">=2.0.0", + "vuex": "^2.0.0" + }, + "dependencies": { + "vuex": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-2.5.0.tgz", + "integrity": "sha512-5oJPOJySBgSgSzoeO+gZB/BbN/XsapgIF6tz34UwJqnGZMQurzIO3B4KIBf862gfc9ya+oduY5sSkq+5/oOilQ==" + } + } + }, "vue-property-decorator": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-6.1.0.tgz", @@ -16945,11 +17303,21 @@ "vue-class-component": "^6.1.0" } }, + "vue-resource": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/vue-resource/-/vue-resource-0.9.3.tgz", + "integrity": "sha1-q0bhxE6iGRQtzCiuQEOzsEyAlZ0=" + }, "vue-router": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.0.2.tgz", "integrity": "sha512-opKtsxjp9eOcFWdp6xLQPLmRGgfM932Tl56U9chYTnoWqKxQ8M20N7AkdEbM5beUh6wICoFGYugAX9vQjyJLFg==" }, + "vue-select": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/vue-select/-/vue-select-3.2.0.tgz", + "integrity": "sha512-FfARbDuJWQNpYm6X9zPWCsYXmz33TNR2oqY8FktKRVksKfp1tZPqL9g+/7wgsaMaqUxcIxYEUVV7C3AD+H5cxA==" + }, "vue-server-renderer": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/vue-server-renderer/-/vue-server-renderer-2.6.9.tgz", @@ -17024,6 +17392,28 @@ "loader-utils": "^1.0.2" } }, + "vue-tables-2": { + "version": "1.4.70", + "resolved": "https://registry.npmjs.org/vue-tables-2/-/vue-tables-2-1.4.70.tgz", + "integrity": "sha512-lexKk46BtRfivir1iVHIGTJjm8f4GrsL1hc4dOkDH7kVSEORc09iR9sp9uk3/vzQ101QgObdWEve5X4gLdctEQ==", + "requires": { + "@babel/helper-module-imports": "^7.0.0-beta.49", + "array-intersection": "^0.1.2", + "clone": "^2.1.1", + "debounce": "^1.1", + "merge": "^1.2.0", + "vue": ">=2.0.0", + "vue-pagination-2": "^1.6", + "vue-resource": "^0.9.0" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + } + } + }, "vue-template-compiler": { "version": "2.5.21", "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.21.tgz", diff --git a/forseti-visualizer-ui/package.json b/forseti-visualizer-ui/package.json index a0e44f8..695f600 100644 --- a/forseti-visualizer-ui/package.json +++ b/forseti-visualizer-ui/package.json @@ -1,9 +1,9 @@ { "name": "forseti-visualizer-ui", - "version": "1.0.2", + "version": "2.0.0", "private": true, "scripts": { - "build": "vue-cli-service build", + "build": "vue-cli-service build; rm -rf ../forseti-api/dist-forseti-visualizer-ui; cp -R dist/ ../forseti-api/dist-forseti-visualizer-ui;", "serve": "vue-cli-service serve --port 8081", "start": "npm run serve", "lint": "vue-cli-service lint", @@ -16,6 +16,8 @@ "npm": "^6.10.1", "vue": "^2.5.21", "vue-router": "^3.0.2", + "vue-select": "^3.2.0", + "vue-tables-2": "^1.4.70", "vuetify": "^1.3.0", "vuex": "^3.1.0" }, @@ -30,7 +32,7 @@ "babel-jest": "^24.5.0", "eslint": "^5.8.0", "eslint-plugin-vue": "^5.0.0", - "handlebars": ">=4.1.2", + "handlebars": "^4.4.2", "jest": "^24.5.0", "jest-vue-preprocessor": "^1.5.0", "jsdom": "^14.0.0", diff --git a/forseti-visualizer-ui/public/dataset1_resources.json b/forseti-visualizer-ui/public/dataset1_resources.json index 91484a0..aac6469 100644 --- a/forseti-visualizer-ui/public/dataset1_resources.json +++ b/forseti-visualizer-ui/public/dataset1_resources.json @@ -6,7 +6,7 @@ "parent_id": null, "resource_data_displayname": "mycloud.com", "resource_data_name": "organizations/358329783624", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087269, @@ -16,7 +16,7 @@ "parent_id": 1086937, "resource_data_displayname": "Machine Learning", "resource_data_name": "folders/379678980128", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087270, @@ -26,7 +26,7 @@ "parent_id": 1086937, "resource_data_displayname": "Common Services", "resource_data_name": "folders/631974286168", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087271, @@ -36,7 +36,7 @@ "parent_id": 1086937, "resource_data_displayname": "Next2019", "resource_data_name": "folders/95108949912", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087272, @@ -46,7 +46,7 @@ "parent_id": 1086937, "resource_data_displayname": "Audit", "resource_data_name": "folders/429021693524", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087268, @@ -56,7 +56,7 @@ "parent_id": 1086937, "resource_data_displayname": "", "resource_data_name": "datadog", - "qq": "DELETE_REQUESTED", + "lifecycle_state": "DELETE_REQUESTED", "inventory_index_id": 1552609278876965 }, { "id": 1087273, @@ -66,7 +66,7 @@ "parent_id": 1086937, "resource_data_displayname": "", "resource_data_name": "actions-codelab2", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087274, @@ -76,7 +76,7 @@ "parent_id": 1086937, "resource_data_displayname": "", "resource_data_name": "actions-codelab", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087275, @@ -86,7 +86,7 @@ "parent_id": 1086937, "resource_data_displayname": "", "resource_data_name": "the-core", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087598, @@ -96,7 +96,7 @@ "parent_id": 1087271, "resource_data_displayname": "", "resource_data_name": "forsetiviz", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087601, @@ -106,7 +106,7 @@ "parent_id": 1087269, "resource_data_displayname": "", "resource_data_name": "machine-learning-space", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087457, @@ -116,7 +116,7 @@ "parent_id": 1087270, "resource_data_displayname": "", "resource_data_name": "devops", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087458, @@ -126,7 +126,7 @@ "parent_id": 1087272, "resource_data_displayname": "", "resource_data_name": "cloud-identity-log-export", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087460, @@ -136,7 +136,7 @@ "parent_id": 1087270, "resource_data_displayname": "", "resource_data_name": "log-sinks", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087461, @@ -146,7 +146,7 @@ "parent_id": 1087272, "resource_data_displayname": "", "resource_data_name": "billing-export", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087462, @@ -156,7 +156,7 @@ "parent_id": 1087270, "resource_data_displayname": "", "resource_data_name": "gwc-service-accounts", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087476, @@ -166,7 +166,7 @@ "parent_id": 1087272, "resource_data_displayname": "", "resource_data_name": "forseti-security", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087486, @@ -176,7 +176,7 @@ "parent_id": 1087270, "resource_data_displayname": "", "resource_data_name": "sandbox", - "qq": "ACTIVE", + "lifecycle_state": "ACTIVE", "inventory_index_id": 1552609278876965 }, { "id": 1087747, @@ -186,7 +186,7 @@ "parent_id": 1087728, "resource_data_displayname": "", "resource_data_name": "projects/sandbox-d24a/serviceAccounts/dialogflow-igjexa@sandbox-d24a.iam.gserviceaccount.com/keys/f870bb1119d03960447cf5607fdc23d983f5cba1", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087748, @@ -196,7 +196,7 @@ "parent_id": 1087458, "resource_data_displayname": "", "resource_data_name": "default", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087749, @@ -206,7 +206,7 @@ "parent_id": 1087486, "resource_data_displayname": "App Engine default service account", "resource_data_name": "projects/sandbox-d24a/serviceAccounts/sandbox-d24a@appspot.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087519, @@ -216,7 +216,7 @@ "parent_id": 1087460, "resource_data_displayname": "", "resource_data_name": "", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087520, @@ -226,7 +226,7 @@ "parent_id": 1087486, "resource_data_displayname": "", "resource_data_name": "apps/sandbox-d24a", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087523, @@ -236,7 +236,7 @@ "parent_id": 1087486, "resource_data_displayname": "", "resource_data_name": "", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087526, @@ -246,7 +246,7 @@ "parent_id": 1087486, "resource_data_displayname": "", "resource_data_name": "", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087276, @@ -256,7 +256,7 @@ "parent_id": 1087273, "resource_data_displayname": "", "resource_data_name": "apps/actions-codelab2-c23dc", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087277, @@ -266,7 +266,7 @@ "parent_id": 1087274, "resource_data_displayname": "", "resource_data_name": "apps/actions-codelab-2b402", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087533, @@ -276,7 +276,7 @@ "parent_id": 1087486, "resource_data_displayname": "", "resource_data_name": "", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087789, @@ -286,7 +286,7 @@ "parent_id": 1087462, "resource_data_displayname": "terraform", "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/terraform@gwc-service-accounts.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087278, @@ -296,7 +296,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "apps/gwc-core", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087280, @@ -306,7 +306,7 @@ "parent_id": 1087274, "resource_data_displayname": "", "resource_data_name": "", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087538, @@ -316,7 +316,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "cloud-sql-network", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087539, @@ -326,7 +326,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "datalab-network", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087540, @@ -336,7 +336,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "default", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087541, @@ -346,7 +346,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "msad-1-net", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087542, @@ -356,7 +356,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "test-vpc", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087297, @@ -366,7 +366,7 @@ "parent_id": 1087273, "resource_data_displayname": "App Engine default service account", "resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/actions-codelab2-c23dc@appspot.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087810, @@ -376,7 +376,7 @@ "parent_id": 1087789, "resource_data_displayname": "", "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/terraform@gwc-service-accounts.iam.gserviceaccount.com/keys/181e7ae878a7aa904867465f56c56a1fa09c0aef", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087299, @@ -386,7 +386,7 @@ "parent_id": 1087274, "resource_data_displayname": "Dialogflow Integrations", "resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/dialogflow-ldljmb@actions-codelab-2b402.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087811, @@ -396,7 +396,7 @@ "parent_id": 1087789, "resource_data_displayname": "", "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/terraform@gwc-service-accounts.iam.gserviceaccount.com/keys/70dadc2b7b6933386b2ec6785c01036a12fd5e5b", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087812, @@ -406,7 +406,7 @@ "parent_id": 1087486, "resource_data_displayname": "firebase-adminsdk", "resource_data_name": "projects/sandbox-d24a/serviceAccounts/firebase-adminsdk-bzpww@sandbox-d24a.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087813, @@ -416,7 +416,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "forseti-client-vm-586f404", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087302, @@ -426,7 +426,7 @@ "parent_id": 1087299, "resource_data_displayname": "", "resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/dialogflow-ldljmb@actions-codelab-2b402.iam.gserviceaccount.com/keys/6bdb3d2678f354e7e135a1129bc13df98587bec1", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087814, @@ -436,7 +436,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "forseti-server-vm-586f404", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087303, @@ -446,7 +446,7 @@ "parent_id": 1087273, "resource_data_displayname": "firebase-adminsdk", "resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/firebase-adminsdk-ja904@actions-codelab2-c23dc.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087815, @@ -456,7 +456,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "forseti-viz", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087304, @@ -466,7 +466,7 @@ "parent_id": 1087274, "resource_data_displayname": "App Engine default service account", "resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/actions-codelab-2b402@appspot.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087305, @@ -476,7 +476,7 @@ "parent_id": 1087273, "resource_data_displayname": "Dialogflow Integrations", "resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/dialogflow-vwavgg@actions-codelab2-c23dc.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087306, @@ -486,7 +486,7 @@ "parent_id": 1087274, "resource_data_displayname": "firebase-adminsdk", "resource_data_name": "projects/actions-codelab-2b402/serviceAccounts/firebase-adminsdk-su0if@actions-codelab-2b402.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087307, @@ -496,7 +496,7 @@ "parent_id": 1087305, "resource_data_displayname": "", "resource_data_name": "projects/actions-codelab2-c23dc/serviceAccounts/dialogflow-vwavgg@actions-codelab2-c23dc.iam.gserviceaccount.com/keys/c361c09f92c96d133416fc8cd9be2765ddd5200c", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087309, @@ -506,7 +506,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087822, @@ -516,7 +516,7 @@ "parent_id": 1087462, "resource_data_displayname": "Compute Engine default service account", "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/724908491897-compute@developer.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087316, @@ -526,7 +526,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087319, @@ -536,7 +536,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087838, @@ -546,7 +546,7 @@ "parent_id": 1087461, "resource_data_displayname": "Compute Engine default service account", "resource_data_name": "projects/billing-export-224721/serviceAccounts/821978887269-compute@developer.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087839, @@ -556,7 +556,7 @@ "parent_id": 1087486, "resource_data_displayname": "Sandbox Service Account", "resource_data_name": "projects/sandbox-d24a/serviceAccounts/sandbox-sa@sandbox-d24a.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087841, @@ -566,7 +566,7 @@ "parent_id": 1087462, "resource_data_displayname": "deployment-sa", "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/deployment-sa@gwc-service-accounts.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087844, @@ -576,7 +576,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "default", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087589, @@ -586,7 +586,7 @@ "parent_id": 1087275, "resource_data_displayname": "cloud-identity-sa", "resource_data_name": "projects/gwc-core/serviceAccounts/cloud-identity-sa@gwc-core.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087845, @@ -596,7 +596,7 @@ "parent_id": 1087458, "resource_data_displayname": "Compute Engine default service account", "resource_data_name": "projects/cloud-identity-log-export-e896/serviceAccounts/716672103529-compute@developer.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087590, @@ -606,7 +606,7 @@ "parent_id": 1087589, "resource_data_displayname": "", "resource_data_name": "projects/gwc-core/serviceAccounts/cloud-identity-sa@gwc-core.iam.gserviceaccount.com/keys/3b229bf74cc286f7cb7ecc5cac711c4f29f157b6", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087846, @@ -616,7 +616,7 @@ "parent_id": 1087841, "resource_data_displayname": "", "resource_data_name": "projects/gwc-service-accounts/serviceAccounts/deployment-sa@gwc-service-accounts.iam.gserviceaccount.com/keys/77983d81a130c15f09463ad216945ef586fa07ed", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087591, @@ -626,7 +626,7 @@ "parent_id": 1087589, "resource_data_displayname": "", "resource_data_name": "projects/gwc-core/serviceAccounts/cloud-identity-sa@gwc-core.iam.gserviceaccount.com/keys/619bbc3ffca7eaa79f4f65c893baa1e8cd3bade2", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087592, @@ -636,7 +636,7 @@ "parent_id": 1087275, "resource_data_displayname": "Compute Engine default service account", "resource_data_name": "projects/gwc-core/serviceAccounts/1012227841684-compute@developer.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087848, @@ -646,7 +646,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "gke-tf-lb-https-gke-default-pool-25a75700-1cjx", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087593, @@ -656,7 +656,7 @@ "parent_id": 1087275, "resource_data_displayname": "App Engine default service account", "resource_data_name": "projects/gwc-core/serviceAccounts/gwc-core@appspot.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087849, @@ -666,7 +666,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "gke-tf-lb-https-gke-default-pool-25a75700-bn9k", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087594, @@ -676,7 +676,7 @@ "parent_id": 1087275, "resource_data_displayname": "Terraform service account", "resource_data_name": "projects/gwc-core/serviceAccounts/terraform-sa@gwc-core.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087850, @@ -686,7 +686,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "gke-tf-lb-https-gke-default-pool-25a75700-wzfq", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087595, @@ -696,7 +696,7 @@ "parent_id": 1087594, "resource_data_displayname": "", "resource_data_name": "projects/gwc-core/serviceAccounts/terraform-sa@gwc-core.iam.gserviceaccount.com/keys/6fbe7d606eee666ef72a93fbe5904ccd9a82c689", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087596, @@ -706,7 +706,7 @@ "parent_id": 1087275, "resource_data_displayname": "deployment-sa", "resource_data_name": "projects/gwc-core/serviceAccounts/deployment-sa@gwc-core.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087597, @@ -716,7 +716,7 @@ "parent_id": 1087596, "resource_data_displayname": "", "resource_data_name": "projects/gwc-core/serviceAccounts/deployment-sa@gwc-core.iam.gserviceaccount.com/keys/7e5d46ce5ed70b5efb0f6d5e7403f2f847019c4d", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087599, @@ -726,7 +726,7 @@ "parent_id": 1087275, "resource_data_displayname": "Vault Admin", "resource_data_name": "projects/gwc-core/serviceAccounts/vault-admin@gwc-core.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087600, @@ -736,7 +736,7 @@ "parent_id": 1087599, "resource_data_displayname": "", "resource_data_name": "projects/gwc-core/serviceAccounts/vault-admin@gwc-core.iam.gserviceaccount.com/keys/3bea3132931ff03185fe8c176cde8cc99dfbd977", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087602, @@ -746,7 +746,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "apps/machine-learning-space-60f8", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087605, @@ -756,7 +756,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "forseti-viz-icons", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087606, @@ -766,7 +766,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "garrettwong-buckettest", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087609, @@ -776,7 +776,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "gwc-core-cloud-identity-bucket", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087610, @@ -786,7 +786,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "gwc-core-terraform", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087866, @@ -796,7 +796,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "gke-cl-cluster-default-pool-9f8e83ea-5m8f", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087611, @@ -806,7 +806,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "gwc-core-txf", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087612, @@ -816,7 +816,7 @@ "parent_id": 1087457, "resource_data_displayname": "", "resource_data_name": "allow-nat", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087868, @@ -826,7 +826,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "gke-cl-cluster-default-pool-9f8e83ea-lprx", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087613, @@ -836,7 +836,7 @@ "parent_id": 1087457, "resource_data_displayname": "", "resource_data_name": "default-allow-icmp", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087614, @@ -846,7 +846,7 @@ "parent_id": 1087457, "resource_data_displayname": "", "resource_data_name": "default-allow-internal", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087870, @@ -856,7 +856,7 @@ "parent_id": 1087458, "resource_data_displayname": "Cloud Identity Service Account", "resource_data_name": "projects/cloud-identity-log-export-e896/serviceAccounts/cloud-identity-sa@cloud-identity-log-export-e896.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087615, @@ -866,7 +866,7 @@ "parent_id": 1087457, "resource_data_displayname": "", "resource_data_name": "default-allow-rdp", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087871, @@ -876,7 +876,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "gke-cl-cluster-default-pool-9f8e83ea-w0gl", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087616, @@ -886,7 +886,7 @@ "parent_id": 1087457, "resource_data_displayname": "", "resource_data_name": "default-allow-ssh", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087617, @@ -896,7 +896,7 @@ "parent_id": 1087457, "resource_data_displayname": "", "resource_data_name": "deny-nat-egress", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087873, @@ -906,7 +906,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "gke-forsetiviz-cluster-default-pool-d1b8ab4a-l9gq", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087618, @@ -916,7 +916,7 @@ "parent_id": 1087457, "resource_data_displayname": "", "resource_data_name": "deny-to-nat", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087619, @@ -926,7 +926,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "gwc-core-vault", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087620, @@ -936,7 +936,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "gwc-core-vault-assets", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087621, @@ -946,7 +946,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "gwc-core.appspot.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087622, @@ -956,7 +956,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "staging.gwc-core.appspot.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087623, @@ -966,7 +966,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "us.artifacts.gwc-core.appspot.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087879, @@ -976,7 +976,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "default", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087624, @@ -986,7 +986,7 @@ "parent_id": 1087462, "resource_data_displayname": "", "resource_data_name": "default-allow-icmp", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087880, @@ -996,7 +996,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "tf-lb-https-gke", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087625, @@ -1006,7 +1006,7 @@ "parent_id": 1087462, "resource_data_displayname": "", "resource_data_name": "default-allow-internal", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087626, @@ -1016,7 +1016,7 @@ "parent_id": 1087462, "resource_data_displayname": "", "resource_data_name": "default-allow-rdp", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087627, @@ -1026,7 +1026,7 @@ "parent_id": 1087462, "resource_data_displayname": "", "resource_data_name": "default-allow-ssh", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087883, @@ -1036,7 +1036,7 @@ "parent_id": 1087870, "resource_data_displayname": "", "resource_data_name": "projects/cloud-identity-log-export-e896/serviceAccounts/cloud-identity-sa@cloud-identity-log-export-e896.iam.gserviceaccount.com/keys/6a1f60f162aff5348c3013658a524610904a67ef", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087628, @@ -1046,7 +1046,7 @@ "parent_id": 1087457, "resource_data_displayname": "", "resource_data_name": "nat-instance", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087629, @@ -1056,7 +1056,7 @@ "parent_id": 1087461, "resource_data_displayname": "", "resource_data_name": "default-allow-icmp", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087885, @@ -1066,7 +1066,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "default", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087630, @@ -1076,7 +1076,7 @@ "parent_id": 1087457, "resource_data_displayname": "", "resource_data_name": "natted-instance", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087886, @@ -1086,7 +1086,7 @@ "parent_id": 1087460, "resource_data_displayname": "log-sinks Project Service Account", "resource_data_name": "projects/log-sinks-13e2/serviceAccounts/project-service-account@log-sinks-13e2.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087631, @@ -1096,7 +1096,7 @@ "parent_id": 1087461, "resource_data_displayname": "", "resource_data_name": "default-allow-internal", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087632, @@ -1106,7 +1106,7 @@ "parent_id": 1087461, "resource_data_displayname": "", "resource_data_name": "default-allow-rdp", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087633, @@ -1116,7 +1116,7 @@ "parent_id": 1087461, "resource_data_displayname": "", "resource_data_name": "default-allow-ssh", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087634, @@ -1126,7 +1126,7 @@ "parent_id": 1087458, "resource_data_displayname": "", "resource_data_name": "default-allow-icmp", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087635, @@ -1136,7 +1136,7 @@ "parent_id": 1087458, "resource_data_displayname": "", "resource_data_name": "default-allow-internal", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087636, @@ -1146,7 +1146,7 @@ "parent_id": 1087458, "resource_data_displayname": "", "resource_data_name": "default-allow-rdp", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087637, @@ -1156,7 +1156,7 @@ "parent_id": 1087458, "resource_data_displayname": "", "resource_data_name": "default-allow-ssh", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087638, @@ -1166,7 +1166,7 @@ "parent_id": 1087457, "resource_data_displayname": "", "resource_data_name": "default", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087639, @@ -1176,7 +1176,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "forseti-server-db-586f404", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087645, @@ -1186,7 +1186,7 @@ "parent_id": 1087486, "resource_data_displayname": "cloud-identity-sa", "resource_data_name": "projects/sandbox-d24a/serviceAccounts/cloud-identity-sa@sandbox-d24a.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087906, @@ -1196,7 +1196,7 @@ "parent_id": 1087476, "resource_data_displayname": "Compute Engine default service account", "resource_data_name": "projects/forseti-security-1e88/serviceAccounts/521541240037-compute@developer.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087919, @@ -1206,7 +1206,7 @@ "parent_id": 1087906, "resource_data_displayname": "", "resource_data_name": "projects/forseti-security-1e88/serviceAccounts/521541240037-compute@developer.gserviceaccount.com/keys/eb6651a1fdaff077959a5ede567614cabc9137b7", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087921, @@ -1216,7 +1216,7 @@ "parent_id": 1087906, "resource_data_displayname": "", "resource_data_name": "projects/forseti-security-1e88/serviceAccounts/521541240037-compute@developer.gserviceaccount.com/keys/be66264f720a23f37ac32f847c9e28e57a0b9821", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087669, @@ -1226,7 +1226,7 @@ "parent_id": 1087645, "resource_data_displayname": "", "resource_data_name": "projects/sandbox-d24a/serviceAccounts/cloud-identity-sa@sandbox-d24a.iam.gserviceaccount.com/keys/9167572ee699c606085ee658d0f2856b40c165a3", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087671, @@ -1236,7 +1236,7 @@ "parent_id": 1087645, "resource_data_displayname": "", "resource_data_name": "projects/sandbox-d24a/serviceAccounts/cloud-identity-sa@sandbox-d24a.iam.gserviceaccount.com/keys/7e42a7c738ec078a05533980ecad4173578d22d8", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087674, @@ -1246,7 +1246,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "app-fw", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087930, @@ -1256,7 +1256,7 @@ "parent_id": 1087486, "resource_data_displayname": "", "resource_data_name": "artifacts.sandbox-d24a.appspot.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087675, @@ -1266,7 +1266,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "block85", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087676, @@ -1276,7 +1276,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "default-allow-http", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087677, @@ -1286,7 +1286,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "default-allow-http-8080", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087678, @@ -1296,7 +1296,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "default-allow-https", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087679, @@ -1306,7 +1306,7 @@ "parent_id": 1087486, "resource_data_displayname": "Compute Engine default service account", "resource_data_name": "projects/sandbox-d24a/serviceAccounts/147925056168-compute@developer.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087680, @@ -1316,7 +1316,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "express-fw", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087681, @@ -1326,7 +1326,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "firewall-rules-grpc", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087682, @@ -1336,7 +1336,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "forseti-client-allow-ssh-external-586f404", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087683, @@ -1346,7 +1346,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "forseti-client-deny-all-586f404", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087684, @@ -1356,7 +1356,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "forseti-server-allow-grpc-586f404", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087685, @@ -1366,7 +1366,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "forseti-server-allow-ssh-external-586f404", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087686, @@ -1376,7 +1376,7 @@ "parent_id": 1087476, "resource_data_displayname": "", "resource_data_name": "forseti-server-deny-all-586f404", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087942, @@ -1386,7 +1386,7 @@ "parent_id": 1087476, "resource_data_displayname": "forseti-server-gcp-586f404", "resource_data_name": "projects/forseti-security-1e88/serviceAccounts/forseti-server-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087687, @@ -1396,7 +1396,7 @@ "parent_id": 1087679, "resource_data_displayname": "", "resource_data_name": "projects/sandbox-d24a/serviceAccounts/147925056168-compute@developer.gserviceaccount.com/keys/d6e2676e4cd6e279cc9d26db08a8b3f1853d1ffd", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087943, @@ -1406,7 +1406,7 @@ "parent_id": 1087601, "resource_data_displayname": "firebase-adminsdk", "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/firebase-adminsdk-2gg81@machine-learning-space-60f8.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087688, @@ -1416,7 +1416,7 @@ "parent_id": 1087457, "resource_data_displayname": "Dev Ops Service Account", "resource_data_name": "projects/devops-1ca6/serviceAccounts/devops-sa@devops-1ca6.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087944, @@ -1426,7 +1426,7 @@ "parent_id": 1087486, "resource_data_displayname": "", "resource_data_name": "eu-bucket-gcs", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087689, @@ -1436,7 +1436,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "default-allow-icmp", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087690, @@ -1446,7 +1446,7 @@ "parent_id": 1087462, "resource_data_displayname": "", "resource_data_name": "default", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087691, @@ -1456,7 +1456,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "default-allow-icmp", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087692, @@ -1466,7 +1466,7 @@ "parent_id": 1087486, "resource_data_displayname": "my translation lab service account", "resource_data_name": "projects/sandbox-d24a/serviceAccounts/my-video-int-sa@sandbox-d24a.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087948, @@ -1476,7 +1476,7 @@ "parent_id": 1087598, "resource_data_displayname": "Compute Engine default service account", "resource_data_name": "projects/forsetiviz/serviceAccounts/656666665848-compute@developer.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087693, @@ -1486,7 +1486,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "default-allow-internal", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087949, @@ -1496,7 +1496,7 @@ "parent_id": 1087476, "resource_data_displayname": "forseti-client-gcp-586f404", "resource_data_name": "projects/forseti-security-1e88/serviceAccounts/forseti-client-gcp-586f404@forseti-security-1e88.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087694, @@ -1506,7 +1506,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "default-allow-internal", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087950, @@ -1516,7 +1516,7 @@ "parent_id": 1087486, "resource_data_displayname": "", "resource_data_name": "sandbox-d24a-lb-assets-9c8b", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087695, @@ -1526,7 +1526,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "default-allow-rdp", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087696, @@ -1536,7 +1536,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "default-allow-rdp", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087697, @@ -1546,7 +1546,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "default-allow-ssh", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087698, @@ -1556,7 +1556,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "default-allow-ssh", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087954, @@ -1566,7 +1566,7 @@ "parent_id": 1087601, "resource_data_displayname": "Cloud Identity Service Account", "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/cloud-identity-sa@machine-learning-space-60f8.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087699, @@ -1576,7 +1576,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "gke-tf-lb-https-gke-aa62a218-all", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087700, @@ -1586,7 +1586,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "gke-cl-cluster-044938d7-all", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087956, @@ -1596,7 +1596,7 @@ "parent_id": 1087486, "resource_data_displayname": "", "resource_data_name": "sandbox-d24a-txf", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087701, @@ -1606,7 +1606,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "gke-tf-lb-https-gke-aa62a218-ssh", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087702, @@ -1616,7 +1616,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "gke-cl-cluster-044938d7-ssh", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087958, @@ -1626,7 +1626,7 @@ "parent_id": 1087954, "resource_data_displayname": "", "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/cloud-identity-sa@machine-learning-space-60f8.iam.gserviceaccount.com/keys/817321bb30aa63c7ba5688e5308c1e597016eb60", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087703, @@ -1636,7 +1636,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "gke-tf-lb-https-gke-aa62a218-vms", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087959, @@ -1646,7 +1646,7 @@ "parent_id": 1087486, "resource_data_displayname": "", "resource_data_name": "sandbox-d24a.appspot.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087448, @@ -1656,7 +1656,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087704, @@ -1666,7 +1666,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "gke-cl-cluster-044938d7-vms", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087960, @@ -1676,7 +1676,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "cl-cluster", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087705, @@ -1686,7 +1686,7 @@ "parent_id": 1087461, "resource_data_displayname": "", "resource_data_name": "default", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087961, @@ -1696,7 +1696,7 @@ "parent_id": 1087601, "resource_data_displayname": "Dialogflow Integrations", "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/dialogflow-viuvwl@machine-learning-space-60f8.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087706, @@ -1706,7 +1706,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "k8s-542aec7db3ea1d72-node-http-hc", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087962, @@ -1716,7 +1716,7 @@ "parent_id": 1087486, "resource_data_displayname": "", "resource_data_name": "staging.sandbox-d24a.appspot.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087707, @@ -1726,7 +1726,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "gke-forsetiviz-cluster-f293571b-all", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087963, @@ -1736,7 +1736,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "forsetiviz-cluster", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087708, @@ -1746,7 +1746,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "k8s-8c74983584882cf4-node-http-hc", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087964, @@ -1756,7 +1756,7 @@ "parent_id": 1087961, "resource_data_displayname": "", "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/dialogflow-viuvwl@machine-learning-space-60f8.iam.gserviceaccount.com/keys/630a2263e95a102deacbcaccf97fb53c6e6dc038", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087453, @@ -1766,7 +1766,7 @@ "parent_id": 1087273, "resource_data_displayname": "", "resource_data_name": "actions-codelab2-c23dc.appspot.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087965, @@ -1776,7 +1776,7 @@ "parent_id": 1087601, "resource_data_displayname": "Compute Engine default service account", "resource_data_name": "projects/machine-learning-space-60f8/serviceAccounts/428092455983-compute@developer.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087454, @@ -1786,7 +1786,7 @@ "parent_id": 1087273, "resource_data_displayname": "", "resource_data_name": "staging.actions-codelab2-c23dc.appspot.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087710, @@ -1796,7 +1796,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "gke-forsetiviz-cluster-f293571b-ssh", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087966, @@ -1806,7 +1806,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "tf-lb-https-gke", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087455, @@ -1816,7 +1816,7 @@ "parent_id": 1087274, "resource_data_displayname": "", "resource_data_name": "actions-codelab-2b402.appspot.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087711, @@ -1826,7 +1826,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "k8s-923f70a0fe8acf4d-node-http-hc", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087967, @@ -1836,7 +1836,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "artifacts.forsetiviz.appspot.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087712, @@ -1846,7 +1846,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "gke-forsetiviz-cluster-f293571b-vms", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087968, @@ -1856,7 +1856,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "forsetiviz_cloudbuild", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087713, @@ -1866,7 +1866,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "tf-lb-https-gke-hc-0", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087714, @@ -1876,7 +1876,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "k8s-95a374b364bdb4ad-node-http-hc", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087970, @@ -1886,7 +1886,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "artifacts.machine-learning-space-60f8.appspot.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087459, @@ -1896,7 +1896,7 @@ "parent_id": 1087274, "resource_data_displayname": "", "resource_data_name": "staging.actions-codelab-2b402.appspot.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087715, @@ -1906,7 +1906,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "k8s-de802f70d972df6f-node-http-hc", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087971, @@ -1916,7 +1916,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "machine-learning-space-60f8-lb-assets-19ff", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087716, @@ -1926,7 +1926,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "k8s-fw-a1658c9ab435411e9b70d42010a80006", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087972, @@ -1936,7 +1936,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "machine-learning-space-60f8.appspot.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087717, @@ -1946,7 +1946,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "k8s-fw-a5bb0df4e430011e9b5e142010a8a006", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087973, @@ -1956,7 +1956,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "mls-bucket", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087718, @@ -1966,7 +1966,7 @@ "parent_id": 1087598, "resource_data_displayname": "", "resource_data_name": "k8s-fw-a930c138442eb11e9b5e142010a8a006", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087463, @@ -1976,7 +1976,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "allow-example-internal", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087719, @@ -1986,7 +1986,7 @@ "parent_id": 1087692, "resource_data_displayname": "", "resource_data_name": "projects/sandbox-d24a/serviceAccounts/my-video-int-sa@sandbox-d24a.iam.gserviceaccount.com/keys/9a76c99c5ea3f67c397291befa3b0594fabd3312", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087464, @@ -1996,7 +1996,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "allow-example-ssh", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087465, @@ -2006,7 +2006,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "datalab-network-allow-ssh", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087721, @@ -2016,7 +2016,7 @@ "parent_id": 1087457, "resource_data_displayname": "Compute Engine default service account", "resource_data_name": "projects/devops-1ca6/serviceAccounts/168499148573-compute@developer.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087466, @@ -2026,7 +2026,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "default-allow-http", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087467, @@ -2036,7 +2036,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "default-allow-https", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087468, @@ -2046,7 +2046,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "default-allow-icmp", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087469, @@ -2056,7 +2056,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "default-allow-internal", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087470, @@ -2066,7 +2066,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "default-allow-rdp", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087471, @@ -2076,7 +2076,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "default-allow-ssh", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087472, @@ -2086,7 +2086,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "gke-standard-cluster-2-3beda741-all", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087728, @@ -2096,7 +2096,7 @@ "parent_id": 1087486, "resource_data_displayname": "Dialogflow Integrations", "resource_data_name": "projects/sandbox-d24a/serviceAccounts/dialogflow-igjexa@sandbox-d24a.iam.gserviceaccount.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087473, @@ -2106,7 +2106,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "gke-standard-cluster-2-3beda741-ssh", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087474, @@ -2116,7 +2116,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "gke-standard-cluster-2-3beda741-vms", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087475, @@ -2126,7 +2126,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "gke-standard-cluster-3-d2bbade1-all", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087477, @@ -2136,7 +2136,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "gke-standard-cluster-3-d2bbade1-ssh", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087478, @@ -2146,7 +2146,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "gke-standard-cluster-3-d2bbade1-vms", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087479, @@ -2156,7 +2156,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "istio-multicluster-test-pods", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087480, @@ -2166,7 +2166,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "ldap-389", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087481, @@ -2176,7 +2176,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "msad-1-allow-internal-ports", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087482, @@ -2186,7 +2186,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "msad-1-tcp-3389", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087994, @@ -2196,7 +2196,7 @@ "parent_id": 1087601, "resource_data_displayname": "", "resource_data_name": "staging.machine-learning-space-60f8.appspot.com", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087483, @@ -2206,7 +2206,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "natfirewall", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087484, @@ -2216,7 +2216,7 @@ "parent_id": 1087275, "resource_data_displayname": "", "resource_data_name": "vault-us-central1-vm-ssh", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }, { "id": 1087485, @@ -2226,6 +2226,6 @@ "parent_id": 1087460, "resource_data_displayname": "", "resource_data_name": "", - "qq": null, + "lifecycle_state": null, "inventory_index_id": 1552609278876965 }] \ No newline at end of file diff --git a/forseti-visualizer-ui/public/dataset2_resources.json b/forseti-visualizer-ui/public/dataset2_resources.json new file mode 100644 index 0000000..4a15be5 --- /dev/null +++ b/forseti-visualizer-ui/public/dataset2_resources.json @@ -0,0 +1 @@ +[{"id":1,"resource_type":"organization","category":"resource","resource_id":"358329783625","parent_id":null,"resource_data_displayname":"gwongcloud.com","resource_data_name":"organizations/358329783625","lifecycle_state":"ACTIVE"},{"id":458,"resource_type":"folder","category":"resource","resource_id":"28858332928","parent_id":1,"resource_data_displayname":"Networks","resource_data_name":"folders/28858332928","lifecycle_state":"ACTIVE"},{"id":462,"resource_type":"folder","category":"resource","resource_id":"537072548021","parent_id":1,"resource_data_displayname":"Sandbox","resource_data_name":"folders/537072548021","lifecycle_state":"ACTIVE"},{"id":463,"resource_type":"folder","category":"resource","resource_id":"671911703963","parent_id":1,"resource_data_displayname":"Forseti Security","resource_data_name":"folders/671911703963","lifecycle_state":"ACTIVE"},{"id":464,"resource_type":"folder","category":"resource","resource_id":"95108949912","parent_id":1,"resource_data_displayname":"Next2019","resource_data_name":"folders/95108949912","lifecycle_state":"ACTIVE"},{"id":526,"resource_type":"project","category":"resource","resource_id":"qw-iotlab","parent_id":462,"resource_data_displayname":"","resource_data_name":"qw-iotlab","lifecycle_state":"DELETE_REQUESTED"},{"id":787,"resource_type":"project","category":"resource","resource_id":"fs-2-18-default-vpc-tf-3-0-0","parent_id":463,"resource_data_displayname":"","resource_data_name":"fs-2-18-default-vpc-tf-3-0-0","lifecycle_state":"ACTIVE"},{"id":796,"resource_type":"project","category":"resource","resource_id":"forseti-security-1e88","parent_id":464,"resource_data_displayname":"","resource_data_name":"forseti-security","lifecycle_state":"ACTIVE"},{"id":546,"resource_type":"project","category":"resource","resource_id":"devops-shared-vpc","parent_id":462,"resource_data_displayname":"","resource_data_name":"devops-shared-vpc","lifecycle_state":"ACTIVE"},{"id":549,"resource_type":"project","category":"resource","resource_id":"billing-export-224721","parent_id":462,"resource_data_displayname":"","resource_data_name":"billing-export","lifecycle_state":"ACTIVE"},{"id":842,"resource_type":"project","category":"resource","resource_id":"forsetiviz","parent_id":464,"resource_data_displayname":"","resource_data_name":"forsetiviz","lifecycle_state":"ACTIVE"},{"id":861,"resource_type":"project","category":"resource","resource_id":"forseti-visualizer","parent_id":464,"resource_data_displayname":"","resource_data_name":"forseti-visualizer","lifecycle_state":"ACTIVE"},{"id":620,"resource_type":"project","category":"resource","resource_id":"sandbox-0700","parent_id":462,"resource_data_displayname":"","resource_data_name":"sandbox","lifecycle_state":"ACTIVE"},{"id":624,"resource_type":"project","category":"resource","resource_id":"forsetivisualizer","parent_id":463,"resource_data_displayname":"","resource_data_name":"forsetivisualizer","lifecycle_state":"ACTIVE"},{"id":465,"resource_type":"project","category":"resource","resource_id":"devops-1ca6","parent_id":462,"resource_data_displayname":"","resource_data_name":"devops","lifecycle_state":"DELETE_REQUESTED"},{"id":466,"resource_type":"project","category":"resource","resource_id":"forseti-thd-inventory","parent_id":462,"resource_data_displayname":"","resource_data_name":"forseti-thd-inventory","lifecycle_state":"DELETE_REQUESTED"},{"id":467,"resource_type":"project","category":"resource","resource_id":"molten-position-249017","parent_id":462,"resource_data_displayname":"","resource_data_name":"test","lifecycle_state":"DELETE_REQUESTED"},{"id":470,"resource_type":"project","category":"resource","resource_id":"gwc-core","parent_id":1,"resource_data_displayname":"","resource_data_name":"gwc-core","lifecycle_state":"ACTIVE"},{"id":472,"resource_type":"project","category":"resource","resource_id":"network-prd-3aa9","parent_id":458,"resource_data_displayname":"","resource_data_name":"network-prd","lifecycle_state":"ACTIVE"},{"id":473,"resource_type":"project","category":"resource","resource_id":"network-sbx-da13","parent_id":458,"resource_data_displayname":"","resource_data_name":"network-sbx","lifecycle_state":"ACTIVE"},{"id":475,"resource_type":"project","category":"resource","resource_id":"cloud-identity-log-export-e896","parent_id":462,"resource_data_displayname":"","resource_data_name":"cloud-identity-log-export","lifecycle_state":"ACTIVE"},{"id":476,"resource_type":"project","category":"resource","resource_id":"sandbox-shared-vpc-578f","parent_id":462,"resource_data_displayname":"","resource_data_name":"sandbox-shared-vpc","lifecycle_state":"ACTIVE"},{"id":477,"resource_type":"project","category":"resource","resource_id":"no-default-compute-sa","parent_id":462,"resource_data_displayname":"","resource_data_name":"no-default-compute-sa","lifecycle_state":"ACTIVE"},{"id":478,"resource_type":"project","category":"resource","resource_id":"gwc-service-accounts","parent_id":462,"resource_data_displayname":"","resource_data_name":"gwc-service-accounts","lifecycle_state":"ACTIVE"},{"id":1308,"resource_type":"kubernetes_cluster","category":"resource","resource_id":"4025963219678881414","parent_id":796,"resource_data_displayname":"","resource_data_name":"forseti-security-1e88-app-gke","lifecycle_state":null},{"id":800,"resource_type":"cloudsqlinstance","category":"resource","resource_id":"2301409683793334845","parent_id":787,"resource_data_displayname":"","resource_data_name":"forseti-server-db-fddd5c12","lifecycle_state":null},{"id":808,"resource_type":"cloudsqlinstance","category":"resource","resource_id":"5687320152789765761","parent_id":796,"resource_data_displayname":"","resource_data_name":"forseti-server-db-586f404","lifecycle_state":null},{"id":823,"resource_type":"cloudsqlinstance","category":"resource","resource_id":"17312885983706794283","parent_id":620,"resource_data_displayname":"","resource_data_name":"forseti-server-db-dae313d2","lifecycle_state":null},{"id":850,"resource_type":"appengine_app","category":"resource","resource_id":"12935056022365487321","parent_id":842,"resource_data_displayname":"","resource_data_name":"apps/forsetiviz","lifecycle_state":null},{"id":474,"resource_type":"appengine_app","category":"resource","resource_id":"3676575200200642704","parent_id":470,"resource_data_displayname":"","resource_data_name":"apps/gwc-core","lifecycle_state":null},{"id":481,"resource_type":"cloudsqlinstance","category":"resource","resource_id":"7671372235984159196","parent_id":477,"resource_data_displayname":"","resource_data_name":"forseti-server-db-26ff15b3","lifecycle_state":null},{"id":1262,"resource_type":"kubernetes_cluster","category":"resource","resource_id":"17126004098909737197","parent_id":842,"resource_data_displayname":"","resource_data_name":"forsetiviz-app","lifecycle_state":null},{"id":1268,"resource_type":"kubernetes_cluster","category":"resource","resource_id":"12160021543758426534","parent_id":861,"resource_data_displayname":"","resource_data_name":"forseti-visualizer-app-gke","lifecycle_state":null}] \ No newline at end of file diff --git a/forseti-visualizer-ui/src/App.vue b/forseti-visualizer-ui/src/App.vue index 03f50cf..ad0a0f8 100644 --- a/forseti-visualizer-ui/src/App.vue +++ b/forseti-visualizer-ui/src/App.vue @@ -3,22 +3,16 @@ Forseti - Visualizer + Visualizer v2.0 Visualizer - - + diff --git a/forseti-visualizer-ui/src/components/Body.vue b/forseti-visualizer-ui/src/components/Body.vue index bbf612a..a4bc48e 100644 --- a/forseti-visualizer-ui/src/components/Body.vue +++ b/forseti-visualizer-ui/src/components/Body.vue @@ -31,7 +31,11 @@ class="zoom-button" style="position: absolute; left: 48px; top: 11px;" >- - Project Id: {{projectId}} + +
{{projectId ? 'Project: ' + projectId : ''}}
+
@@ -53,6 +57,7 @@ import ForsetiResourceConverter from '../services/ForsetiResourceConverter'; import ResourceDataServiceHandler from '../services/ResourceDataServiceHandler'; import Filters from '../services/Filters'; import Sorters from '../services/Sorters'; +import TooltipRenderer from '../services/TooltipRenderer'; import Orientation from '../constants/Orientation'; import ColorConfig from '../constants/ColorConfig'; @@ -93,11 +98,11 @@ export default { .attr('height', this.height) .style('pointer-events', 'all'); - if (this.projectId) { - alert('project id: ' + this.projectId); - } + // if (this.projectId) { + // alert('project id: ' + this.projectId); + // } - this.init(this.orientation); + this.init(this.orientation, this.projectId); }, /** @@ -124,6 +129,26 @@ export default { return resourceNode; }, + /** + * @function setViolationsMap + * @description convert violationsData to violations map + * @returns undefined + */ + setViolationsMap: function(violationsData) { + for (let i = 0; i < violationsData.length; i++) { + const KEY = violationsData[i].full_name; + if (!this.violationsMap[KEY]) { + this.violationsMap[KEY] = []; + } + this.violationsMap[KEY].push(violationsData[i]); + } + console.log( + 'violationsMap', + violationsData, + this.violationsMap + ); + }, + /** * @function getDistinctResourceTypes * @description gets distinct resource types that exist in this.resourceArray @@ -147,10 +172,14 @@ export default { * @returns array of resources */ filterResourceArray: function() { + console.log('filterResourceArray1', this.resourceArray, this.selectedFilterResourcess); + let mappedResourceFilter = this.selectedFilterResources.map( ForsetiResourceConverter.convertResource ); + console.log('filterResourceArray2', this.mappedResourceFilter); + // apply resource filter. always include organization/folder/projects so that resource paths are maintained this.resourceArray = this.resourceArray.filter(res => { if ( @@ -169,19 +198,21 @@ export default { return false; }); - // Filter based on set parent ( setParent() ) being clicked // At least one node has a null parent_id field infers that there is a node at the top of the tree let resourceArrayHasOneNullParentId = ForsetiSetParentService.determineIfOneNullParentId( this.resourceArray ); + if (!resourceArrayHasOneNullParentId) { ForsetiSetParentService.setMinParentIdToNull( this.resourceArray ); } + console.log('filterResourceArray3', this.parentNode, this.resourceArray); + if (this.parentNode) { let subResourceArray = ForsetiSetParentService.getResourceArraySubset( this.resourceArray, @@ -201,7 +232,7 @@ export default { * @description Initializes the Vue Component and the Tree Visualization * @param orientation - [Orientation.Vertical, Orientation.Horizontal] */ - init: function(orientation) { + init: function(orientation, parentId = undefined) { let dataService; if (this.useCache) { @@ -212,7 +243,7 @@ export default { } // ELSE: useCache=false: (fetch from the database) - dataService.getForsetiResources().then(resourcesData => { + dataService.getForsetiResources(parentId).then(resourcesData => { // get inventory index id if (resourcesData.length > 0) { let filteredResourcesData = resourcesData; @@ -227,6 +258,9 @@ export default { curVal.resource_data_name; } }); + + console.log(filteredResourcesData); + /* end filtered data */ let inventoryIndexId = filteredResourcesData[0].inventory_index_id; @@ -234,23 +268,8 @@ export default { dataService .getViolations(inventoryIndexId) .then(violationsData => { - // { resource_id: { violation } } - for (let i = 0; i < violationsData.length; i++) { - if ( - violationsData[i].resource_type === - ResourceType.SERVICE_ACCOUNT_KEY - ) { - this.violationsMap[ - JSON.parse( - violationsData[i].violation_data - ).key_id - ] = violationsData[i]; - } else { - this.violationsMap[ - violationsData[i].resource_id - ] = violationsData[i]; - } - } + // { full_name: { violation } } + this.setViolationsMap(violationsData); this.resourceArray = filteredResourcesData .map(ResourceDataServiceHandler.handle) @@ -261,6 +280,16 @@ export default { // initialize tree this.initTree(orientation, filteredResourceArray); }); + } else { + if (parentId) { + alert( + `No resources found for the project: ${parentId}` + ); + } else { + alert( + 'No resources found for the Forseti GCP Organization' + ); + } } }); }, @@ -276,9 +305,14 @@ export default { * } */ initTree: function(orientation, data) { + console.log('initTree', orientation, data); + this.tree = d3 .tree() .size([this.width - VisualizerConfig.MARGIN.top, this.height]); + + console.log('tree', this.tree, this.treeData); + this.treeData = d3 .stratify() .id(function(d) { @@ -288,6 +322,8 @@ export default { return d.parent_id; })(data); + console.log('td', this.treeData); + // assign the name to each node this.treeData.each(function(d) { if (d.data.resource_type === ResourceType.SERVICE_ACCOUNT_KEY) { @@ -297,6 +333,8 @@ export default { } }); + console.log('td2', this.treeData); + // treeData is the root of the tree, // and the tree has all the data we need in it now. // let's draw that thing... @@ -328,6 +366,8 @@ export default { this.zoomScale = d3.event.transform.k; }); + console.log(orientation, this.zoomListener); + // set initial zoom if (orientation === Orientation.Vertical) { this.svg.call( @@ -335,7 +375,10 @@ export default { d3.zoomIdentity.translate(this.width / 2, this.height / 2) ); + console.log('asadf???', data); + // g "container", initially translated by the margin left and top + this.svg.selectAll('g').remove(); this.g = this.svg .append('g') .attr( @@ -346,6 +389,8 @@ export default { VisualizerConfig.MARGIN.top + ')' ); + console.log(this.g); + window.uh = this.g; // prevent dbl click this.svg.on('dblclick.zoom', null); @@ -360,6 +405,7 @@ export default { ) .on('dblclick', null); + this.svg.selectAll('g').remove(); this.g = this.svg .append('g') .attr( @@ -532,50 +578,29 @@ export default { .duration(VisualizerConfig.ANIMATION_DURATION) .style('opacity', 0.9); - let tooltipContent = ''; - if (this.violationsMap[d.data.resource_id]) { - // if a violation exists - tooltipDiv.style( - 'background', - VisualizerConfig.TOOLTIP_VIOLATION_BG_COLOR - ); + let violationExists = + this.violationsMap[d.data.full_name] !== undefined + ? true + : false; - // ${violationsMap[d.data.resource_id].violation_data} - tooltipContent = ` -
-

${this.violationsMap[d.data.resource_id].violation_type}

- ${this.violationsMap[d.data.resource_id].rule_name}
-
`; - - // send event - if (this.bottomSheetEnabled) { - this.$root.$emit( - 'send', - d, - this.violationsMap[d.data.resource_id] - ); - } - } else { - // if a violation does NOT exist - tooltipDiv.style( - 'background', - ColorConfig.NODE_BG_COLOR - ); + let tooltipContent = TooltipRenderer.getTooltipHtml( + violationExists, + d, + this.violationsMap + ); - // default tooltipContent - tooltipContent = ` -
-

${d.data.resource_name}

- - ${d.data.resource_data_name} -
- ${d.data.resource_type} -
`; - - // send event - if (this.bottomSheetEnabled) { - this.$root.$emit('send', d, {}); - } + tooltipDiv.style( + 'background', + TooltipRenderer.getTooltipBackground(violationExists) + ); + + // send event + if (this.bottomSheetEnabled) { + this.$root.$emit( + 'send', + d, + this.violationsMap[d.data.full_name] + ); } tooltipDiv @@ -602,12 +627,12 @@ export default { return d._children ? 1 : 0; }) .style('stroke-opacity', d => { - return this.violationsMap[d.data.resource_id] !== undefined + return this.violationsMap[d.data.full_name] !== undefined ? 1 : 0; }) .style('stroke', d => { - return this.violationsMap[d.data.resource_id] !== undefined + return this.violationsMap[d.data.full_name] !== undefined ? ColorConfig.DANGER : ColorConfig.BLACK; }); @@ -675,13 +700,13 @@ export default { return d._children ? 1 : 0; }) .style('stroke-opacity', d => { - return this.violationsMap[d.data.resource_id] !== undefined + return this.violationsMap[d.data.full_name] !== undefined ? 1 : 0; }) .style('stroke', d => { // set to red - return this.violationsMap[d.data.resource_id] !== undefined + return this.violationsMap[d.data.full_name] !== undefined ? ColorConfig.DANGER : ColorConfig.BLACK; }); @@ -1023,8 +1048,7 @@ export default { this.selectedFilterResources = selectedFilterResources; this._resetSvg(); - - this.init(this.orientation); + this.init(this.orientation, this.projectId); }, /** @@ -1033,9 +1057,10 @@ export default { */ resetParent: function() { this.parentNode = null; + this.projectId = null; this._resetSvg(); - this.init(this.orientation); + this.init(this.orientation, this.projectId); }, /** @@ -1175,11 +1200,13 @@ export default { * @description Refresh the grid: clears and recreates */ _resetSvg: function() { + console.log(this.svg); + d3.select('#d3-area') .selectAll('svg') .remove(); - // reset + // append a new svg? this.svg = d3 .select('#d3-area') .append('svg') @@ -1187,6 +1214,8 @@ export default { .attr('height', this.height) .style('pointer-events', 'all'); + console.log(this.svg); + // reset vars this.expand = true; this.expandAll = false; @@ -1201,7 +1230,7 @@ export default { this._resetSvg(); - this.init(this.orientation); + this.init(this.orientation, this.projectId); }, /** @@ -1306,12 +1335,12 @@ export default { return d._children ? 1 : 0; }) .style('stroke-opacity', function(d) { - return violationsMap[d.data.resource_id] !== undefined + return violationsMap[d.data.full_name] !== undefined ? 1 : 0; }) .style('stroke', function(d) { - return violationsMap[d.data.resource_id] !== undefined + return violationsMap[d.data.full_name] !== undefined ? ColorConfig.DANGER : ColorConfig.BLACK; }); @@ -1337,14 +1366,14 @@ export default { return d._children ? 1 : 0; }) .style('stroke-opacity', function(d) { - return this.violationsMap[d.data.resource_id] !== + return this.violationsMap[d.data.full_name] !== undefined ? 1 : 0; }) .style('stroke', function(d) { // set to red - return this.violationsMap[d.data.resource_id] !== + return this.violationsMap[d.data.full_name] !== undefined ? ColorConfig.DANGER : ColorConfig.BLACK; @@ -1450,7 +1479,7 @@ export default { data: () => ({ // global: set this to use JSON files vs. dynamic // useCache: false, // default to using server data - useCache: true, // default to using cached files.json + useCache: false, // default to using cached files.json useJson: true, // false defers to using a .csv useWideView: false, // false defers to keeping node view default screen (hxw) @@ -1556,15 +1585,21 @@ div.tooltip { text-align: left; padding-left: 15px; width: 300px; - height: 100px; + /* height: 100px; */ padding: 12px; font: 14px sans-serif; - border: 14px solid black; + border: 4px solid black; opacity: 0.5; border-radius: 8px; pointer-events: none; stroke-width: 3px; + overflow: scroll; + word-wrap: break-word; +} +div.tooltip-content { + text-align: left; + margin-left: 20px; } .zoom-button { diff --git a/forseti-visualizer-ui/src/components/BottomDetailsView.vue b/forseti-visualizer-ui/src/components/BottomDetailsView.vue index f599f8b..cea20f3 100644 --- a/forseti-visualizer-ui/src/components/BottomDetailsView.vue +++ b/forseti-visualizer-ui/src/components/BottomDetailsView.vue @@ -14,7 +14,7 @@
- {{ (node !== null && node.data !== null) ? node.data.resource_type : "" }} + {{ (node !== undefined && node.data !== undefined) ? node.data.resource_type : "" }}

@@ -57,7 +57,9 @@ export default { data: () => ({ tiles: [], }), - mounted() {}, + mounted() { + + }, }; diff --git a/forseti-visualizer-ui/src/components/BottomDetailsViolations.vue b/forseti-visualizer-ui/src/components/BottomDetailsViolations.vue index ed7e375..08b2f10 100644 --- a/forseti-visualizer-ui/src/components/BottomDetailsViolations.vue +++ b/forseti-visualizer-ui/src/components/BottomDetailsViolations.vue @@ -88,7 +88,7 @@ export default { sheetOpen: Boolean, }, data: () => ({ - iamPolicies: {}, + // iamPolicies: {}, rowsPerPageItems: [4, 8, 12], pagination: { rowsPerPage: 4, diff --git a/forseti-visualizer-ui/src/components/Navbar.vue b/forseti-visualizer-ui/src/components/Navbar.vue index 8970456..cb331a8 100644 --- a/forseti-visualizer-ui/src/components/Navbar.vue +++ b/forseti-visualizer-ui/src/components/Navbar.vue @@ -100,7 +100,7 @@ v-model="selectedFilterResources" :items="items" label="Filter by a list of resource types" - v-on:change="filterResources" + v-on:input="filterResources" multiple chips :menu-props="{ maxHeight: '400px', overflowY: true }" @@ -153,7 +153,7 @@ export default { computed: mapState(['resourceArray']), watch: { resourceArray(newValue, oldValue) { - console.log(`Watch: Updating from ${oldValue} to ${newValue}`); + // console.log(`Watch: Updating from ${oldValue} to ${newValue}`); }, }, @@ -296,12 +296,12 @@ export default { data: () => ({ // global: set this to use JSON files vs. dynamic // useCache: false, // default to using server data - useCache: true, // default to using cached files.json + useCache: false, // default to using cached files.json useJson: true, // false defers to using a .csv useWideView: false, // false defers to keeping node view default screen (hxw) // filter variables - nodeName: 'dia-dog-flow', + nodeName: '', expand: true, expandAll: false, showViolations: true, diff --git a/forseti-visualizer-ui/src/components/ResourceNavbar.vue b/forseti-visualizer-ui/src/components/ResourceNavbar.vue new file mode 100644 index 0000000..d6fde9f --- /dev/null +++ b/forseti-visualizer-ui/src/components/ResourceNavbar.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/forseti-visualizer-ui/src/components/Resources.vue b/forseti-visualizer-ui/src/components/Resources.vue index 0276cfd..e771444 100644 --- a/forseti-visualizer-ui/src/components/Resources.vue +++ b/forseti-visualizer-ui/src/components/Resources.vue @@ -1,64 +1,126 @@ diff --git a/forseti-visualizer-ui/src/components/Violations.vue b/forseti-visualizer-ui/src/components/Violations.vue deleted file mode 100644 index 685fc1c..0000000 --- a/forseti-visualizer-ui/src/components/Violations.vue +++ /dev/null @@ -1,109 +0,0 @@ - - - - - diff --git a/forseti-visualizer-ui/src/components/Visualizer.vue b/forseti-visualizer-ui/src/components/Visualizer.vue deleted file mode 100644 index d4c51db..0000000 --- a/forseti-visualizer-ui/src/components/Visualizer.vue +++ /dev/null @@ -1,1701 +0,0 @@ - - - - - diff --git a/forseti-visualizer-ui/src/constants/VisualizerConfig.js b/forseti-visualizer-ui/src/constants/VisualizerConfig.js index ef4b102..17085cb 100644 --- a/forseti-visualizer-ui/src/constants/VisualizerConfig.js +++ b/forseti-visualizer-ui/src/constants/VisualizerConfig.js @@ -33,9 +33,6 @@ const VisualizerConfig = { DEFAULT_WIDTH: 1200, NODE_RADIUS: 22, // in 'px' - // TOOLTIP - TOOLTIP_VIOLATION_BG_COLOR: 'pink', - // NODE BG IMAGE NODE_IMG_X: -16, NODE_IMG_Y: -16, diff --git a/forseti-visualizer-ui/src/main.js b/forseti-visualizer-ui/src/main.js index fa39f9a..d236ae1 100644 --- a/forseti-visualizer-ui/src/main.js +++ b/forseti-visualizer-ui/src/main.js @@ -17,10 +17,8 @@ import './plugins/vuetify'; import VueRouter from 'vue-router'; import App from './App.vue'; -import Violations from './components/Violations'; import Viz from './components/Body'; import Resources from './components/Resources'; -import Visualizer from './components/Visualizer'; Vue.use(VueRouter); @@ -37,18 +35,10 @@ const routes = [{ component: Viz, props: true }, - { - path: '/violations', - component: Violations - }, { path: '/resources', component: Resources }, - { - path: '/visualizer', - component: Visualizer - }, ] Vue.config.productionTip = false; diff --git a/forseti-visualizer-ui/src/services/DataService.js b/forseti-visualizer-ui/src/services/DataService.js index 3381a55..ade6396 100644 --- a/forseti-visualizer-ui/src/services/DataService.js +++ b/forseti-visualizer-ui/src/services/DataService.js @@ -21,19 +21,21 @@ class DataService { */ constructor() { // THIS SHOULD BE ENABLED THIS WHEN DEPLOYING ALONE WITH forseti-visualizer - // this.host = 'http://localhost:8080'; + this.host = 'http://localhost:8080'; // THIS SHOULD BE ENABLED THIS WHEN DEPLOYING VIA FORSETI-API - this.host = ''; + // this.host = ''; } /** * @function getForsetiResources * @description gets forseti resources (for structure, reference ./forseti-visualizer-ui/public/dataset1_resources.json) + * @param parentId * @return promise containing an array of forseti-resources */ - getForsetiResources() { - let url = `${this.host}/api/forseti/resources`; + getForsetiResources(parentId) { + // let url = `${this.host}/api/forseti/resources`; + let url = `${this.host}/api/forseti/resources/${parentId ? parentId : ''}`; return $.get(url); } diff --git a/forseti-visualizer-ui/src/services/Filters.js b/forseti-visualizer-ui/src/services/Filters.js index b6bed23..61f2bc2 100644 --- a/forseti-visualizer-ui/src/services/Filters.js +++ b/forseti-visualizer-ui/src/services/Filters.js @@ -14,7 +14,7 @@ let Filters = { nonNullAndActive: function (data) { - if (data.qq === null || data.qq === 'ACTIVE') return true; + if (data.lifecycle_state === null || data.lifecycle_state === 'ACTIVE') return true; return false; }, /** diff --git a/forseti-visualizer-ui/src/services/TooltipRenderer.js b/forseti-visualizer-ui/src/services/TooltipRenderer.js new file mode 100644 index 0000000..cf4e034 --- /dev/null +++ b/forseti-visualizer-ui/src/services/TooltipRenderer.js @@ -0,0 +1,103 @@ +// Copyright 2019 Google LLC +// +// 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. + +import ColorConfig from '../constants/ColorConfig'; + +let ResourceTypeTooltipRenderer = { + createList: function (dictionary) { + // expected object: { action: [thingsToDo1, thingsToDo2], action2: [] } + let listHtml = ''; + return listHtml; + }, + + renderViolations: function (violations) { + let content = '
'; + for (let i = 0; i < violations.length; i++) { + content += this.render(violations[i].violation_type, violations[i]); + } + content += '
'; + return content; + }, + + render: function (violationType, violation) { + switch (violationType) { + case 'FIREWALL_BLACKLIST_VIOLATION': + // create list of recommended action + let recommendedActionsList = this.createList( + JSON.parse(violation.violation_data).recommended_actions); + + return ` +
+

${violation.violation_type}

+ ${violation.rule_name} has been violated. +
+ Recommendations:
+ + ${recommendedActionsList} +
`; + default: + return ` +
+

${violation.violation_type}

+ ${violation.rule_name} +
+ ${JSON.stringify(JSON.parse(violation.violation_data))} +
`; + } + } +} + +let TooltipRenderer = { + getTooltipHtml: function (violationExists, d, violationsMap) { + let tooltipContent = ''; + + if (violationExists) { + console.log(violationsMap[d.data.full_name]) + + tooltipContent = ResourceTypeTooltipRenderer.renderViolations( + violationsMap[d.data.full_name]); + } else { // violation does NOT exist + tooltipContent = ` +
+

${d.data.resource_name}

+ ${d.data.resource_data_name} +
+ ${d.data.resource_type} +
`; + } + return tooltipContent; + }, + + getTooltipBackground: function (violationExists) { + return violationExists ? + ColorConfig.DANGER : + ColorConfig.NODE_BG_COLOR; + } +}; + +export default TooltipRenderer; \ No newline at end of file diff --git a/forseti-visualizer-ui/src/types/ResourceNode.js b/forseti-visualizer-ui/src/types/ResourceNode.js index 4b0a34f..afdd363 100644 --- a/forseti-visualizer-ui/src/types/ResourceNode.js +++ b/forseti-visualizer-ui/src/types/ResourceNode.js @@ -24,7 +24,7 @@ class ResourceNode { this.image = "/img/Compute Engine.239b71be.png"; this.inventory_index_id = 1552609278876965; this.parent_id = 1087601; - this.qq = null; + this.lifecycle_state = null; this.resource_data_displayname = "gke-tf-lb-https-gke-default-pool-25a75700-wzfq"; this.resource_data_name = "gke-tf-lb-https-gke-default-pool-25a75700-wzfq"; this.resource_id = "1191788173398596818"; diff --git a/test b/test deleted file mode 100644 index 0ddf2ba..0000000 --- a/test +++ /dev/null @@ -1 +0,0 @@ -i diff --git a/tools/cloud_sql_proxy b/tools/cloud_sql_proxy new file mode 100755 index 0000000..0cb6279 Binary files /dev/null and b/tools/cloud_sql_proxy differ diff --git a/tools/start_cloud_sql_proxy.sample.sh b/tools/start_cloud_sql_proxy.sample.sh new file mode 100644 index 0000000..f899ce4 --- /dev/null +++ b/tools/start_cloud_sql_proxy.sample.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +INSTANCE_CONNECTION_NAME="[PROJECT_ID]:[CLOUDSQL_REGION]:[CLOUDSQL_INSTANCE_ID]" + +./cloud_sql_proxy -instances=$INSTANCE_CONNECTION_NAME=tcp:3306 \ No newline at end of file diff --git a/tools/start_cloud_sql_proxy_fs-2-23.sh b/tools/start_cloud_sql_proxy_fs-2-23.sh new file mode 100755 index 0000000..b894021 --- /dev/null +++ b/tools/start_cloud_sql_proxy_fs-2-23.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +INSTANCE_CONNECTION_NAME="fs-2-23:us-west1:forseti-server-db-d4bc233d" + +./cloud_sql_proxy -instances=$INSTANCE_CONNECTION_NAME=tcp:3306 \ No newline at end of file