From e7052dfb5b7f8d80db33b66a540bd92f064e9865 Mon Sep 17 00:00:00 2001 From: ajmaley Date: Mon, 8 Oct 2018 15:41:05 -0400 Subject: [PATCH 01/16] Added a better demo displaying how our app communicates with Flamelink Schemas and displays schema details in the right order. --- src/components/Flamelink.js | 31 +++++++++++++++++------ src/components/Layout.js | 49 +++++++++++++++++++++++++++++++++++++ src/pages/Info.js | 5 ++-- 3 files changed, 76 insertions(+), 9 deletions(-) create mode 100644 src/components/Layout.js diff --git a/src/components/Flamelink.js b/src/components/Flamelink.js index 4033d59..d79007e 100644 --- a/src/components/Flamelink.js +++ b/src/components/Flamelink.js @@ -1,14 +1,31 @@ -import { Component } from 'react'; +import React, { Component, Fragment } from 'react'; +import Grid from '@material-ui/core/Grid'; import flamelinkApp from '../flamelink.js'; - +import Layout from './Layout'; class Flamelink extends Component { + constructor() { + super(); + + this.state = { + schemaDetails: '' + } + } + + componentDidMount() { + // fetch the project name, once it retrieves resolve the promsie and update the state. + flamelinkApp.schemas.getFields('martenSchemaDemo', { fields: [ 'title', 'key' ] }) + .then(result => this.setState({ + schemaDetails: result + })) + } + render() { - //Grabs data from text field in entry from the martenSchemaDemo - flamelinkApp.content.get('martenSchemaDemo') - .then(flameData => document.getElementById("flamelinkDemo").innerHTML = flameData.field_1538162314419); - - return(null); + return( + + + + ); } } diff --git a/src/components/Layout.js b/src/components/Layout.js new file mode 100644 index 0000000..760b0dc --- /dev/null +++ b/src/components/Layout.js @@ -0,0 +1,49 @@ +import React, { Component, Fragment } from 'react'; +import flamelinkApp from '../flamelink.js'; + +class Layout extends Component { + constructor() { + super(); + + this.state = { + contentDetails: '' + } + } + + + getData(schemaData){ + for (var val in this.props.schemaDetails){ + this.getMoreData(this.props.schemaDetails[val]); + } + } + + getMoreData(moreData){ + var tArray = document.createElement("H1"); + var kArray = document.createElement("P"); + this.getTitle(moreData.title, tArray); + this.getKey(moreData.key, kArray); + } + + getTitle(title, arr){ + var t = document.createTextNode(title); + arr.appendChild(t); + document.getElementById("demo").appendChild(arr); + } + + + getKey(key, arr){ + var k = document.createTextNode(key); + arr.appendChild(k); + document.getElementById("demo").appendChild(arr); + } + + render() { + return( +
+

{this.getData(this.props)}

+
+ ); + } +} + +export default Layout; \ No newline at end of file diff --git a/src/pages/Info.js b/src/pages/Info.js index 838a1e1..3db9d8f 100644 --- a/src/pages/Info.js +++ b/src/pages/Info.js @@ -2,16 +2,17 @@ import React, { Component } from 'react'; import Typography from '@material-ui/core/Typography'; import Flamelink from '../components/Flamelink'; + class Info extends Component { render() { return (
- + Info -

+
); From 7a8e840e1bf28a9a6e28d3a3fdf816328ab9216a Mon Sep 17 00:00:00 2001 From: ajmaley Date: Sat, 27 Oct 2018 12:46:00 -0400 Subject: [PATCH 02/16] Added code to handle flamelink data. It handles schema field order, grid sizes and displays text. Getting storage bucket errors when attempting to grab media info. Need to use the firebase-admin package instead of the firebase package. This is a known issue with flamelink. I'll fix this shortly. --- src/components/Flamelink.js | 32 -------------------------- src/components/Layout.js | 46 +++++++++++-------------------------- src/firebase.js | 2 +- src/pages/Info.js | 24 +++++++++++++++---- 4 files changed, 34 insertions(+), 70 deletions(-) delete mode 100644 src/components/Flamelink.js diff --git a/src/components/Flamelink.js b/src/components/Flamelink.js deleted file mode 100644 index d79007e..0000000 --- a/src/components/Flamelink.js +++ /dev/null @@ -1,32 +0,0 @@ -import React, { Component, Fragment } from 'react'; -import Grid from '@material-ui/core/Grid'; -import flamelinkApp from '../flamelink.js'; -import Layout from './Layout'; -class Flamelink extends Component { - constructor() { - super(); - - this.state = { - schemaDetails: '' - } - } - - componentDidMount() { - // fetch the project name, once it retrieves resolve the promsie and update the state. - flamelinkApp.schemas.getFields('martenSchemaDemo', { fields: [ 'title', 'key' ] }) - .then(result => this.setState({ - schemaDetails: result - })) - } - - render() { - - return( - - - - ); - } -} - -export default Flamelink; \ No newline at end of file diff --git a/src/components/Layout.js b/src/components/Layout.js index 760b0dc..c53272a 100644 --- a/src/components/Layout.js +++ b/src/components/Layout.js @@ -1,47 +1,27 @@ -import React, { Component, Fragment } from 'react'; +import React, { Component} from 'react'; +import FlameLinkStructure from './FlameLinkStructure'; +import Grid from '@material-ui/core/Grid'; import flamelinkApp from '../flamelink.js'; class Layout extends Component { - constructor() { - super(); - this.state = { - contentDetails: '' - } - } - - - getData(schemaData){ - for (var val in this.props.schemaDetails){ - this.getMoreData(this.props.schemaDetails[val]); + getSchemaFieldData(schemaData){ + var arr = []; + for (var val in schemaData){ + arr.push(val); } + return arr.map(this.createComponents, schemaData); } - getMoreData(moreData){ - var tArray = document.createElement("H1"); - var kArray = document.createElement("P"); - this.getTitle(moreData.title, tArray); - this.getKey(moreData.key, kArray); - } - - getTitle(title, arr){ - var t = document.createTextNode(title); - arr.appendChild(t); - document.getElementById("demo").appendChild(arr); - } - - - getKey(key, arr){ - var k = document.createTextNode(key); - arr.appendChild(k); - document.getElementById("demo").appendChild(arr); + createComponents(num){ + return } render() { return( -
-

{this.getData(this.props)}

-
+ + {this.getSchemaFieldData(this.props.schemaDetails)} + ); } } diff --git a/src/firebase.js b/src/firebase.js index 8d01e36..51e4393 100644 --- a/src/firebase.js +++ b/src/firebase.js @@ -10,6 +10,6 @@ const config = { messagingSenderId: "659856510832" }; -firebase.initializeApp(config); +const firebaseApp = firebase.initializeApp(config); export default firebase; \ No newline at end of file diff --git a/src/pages/Info.js b/src/pages/Info.js index 3db9d8f..72fa1cd 100644 --- a/src/pages/Info.js +++ b/src/pages/Info.js @@ -1,9 +1,22 @@ -import React, { Component } from 'react'; +import React, { Component, Fragment } from 'react'; import Typography from '@material-ui/core/Typography'; -import Flamelink from '../components/Flamelink'; - +import Layout from '../components/Layout'; +import flamelinkApp from '../flamelink.js'; class Info extends Component { + constructor() { + super(); + + this.state = { + schemaDetails: '', + } + + flamelinkApp.schemas.getFields('martenSchemaDemo', { fields: [ 'title', 'key', 'type', 'gridColumns' ] }) + .then(result => this.setState({ + schemaDetails: result + })) + } + render() { return ( @@ -12,7 +25,10 @@ class Info extends Component { Info - + + + + ); From 0070b333e81fffe4d951d4a257fc5be4e14398b8 Mon Sep 17 00:00:00 2001 From: ajmaley Date: Sat, 27 Oct 2018 12:50:01 -0400 Subject: [PATCH 03/16] Forgot to add this file in my last commit --- src/components/FlameLinkStructure.js | 54 ++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/components/FlameLinkStructure.js diff --git a/src/components/FlameLinkStructure.js b/src/components/FlameLinkStructure.js new file mode 100644 index 0000000..ccf4c7d --- /dev/null +++ b/src/components/FlameLinkStructure.js @@ -0,0 +1,54 @@ +import React, { Component, Fragment} from 'react'; +import Grid from '@material-ui/core/Grid'; +import Paper from '@material-ui/core/Paper'; +import Typography from '@material-ui/core/Typography'; +import flamelinkApp from '../flamelink.js'; + +class FlameLinkStructure extends Component { + constructor() { + super(); + + this.state = { + schemaContent: '', + } + + flamelinkApp.content.get('martenSchemaDemo') + .then(result => this.setState({ + schemaContent: result + })) + } + + getContent(key, type){ + if (type == 'text'){ + return this.state.schemaContent[key] + } + if (type == 'media'){ + for (var val in this.state.schemaContent[key]){ + console.log(this.state.schemaContent[key][val]); + flamelinkApp.storage.getURL(this.state.schemaContent[key][val]) + .then(url => console.log('File URL:', url)) + } + } + } + + render() { + const lg = this.props.field.gridColumns.lg; + const md = this.props.field.gridColumns.md; + const sm = this.props.field.gridColumns.sm; + const xs = this.props.field.gridColumns.xs; + return( + + + + HEADER + + + {this.getContent(this.props.field.key, this.props.type)} + + + + ); + } +} + +export default FlameLinkStructure; \ No newline at end of file From 3566fc52529ca55541508a3984fb272d05a9e347 Mon Sep 17 00:00:00 2001 From: ajmaley Date: Sat, 27 Oct 2018 13:00:23 -0400 Subject: [PATCH 04/16] Added material UI icons package --- package-lock.json | 21 +++++++++++++++++++++ package.json | 1 + 2 files changed, 22 insertions(+) diff --git a/package-lock.json b/package-lock.json index ac8d216..94480ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9349,6 +9349,27 @@ "object-visit": "^1.0.0" } }, + "material-ui-icons": { + "version": "1.0.0-beta.36", + "resolved": "https://registry.npmjs.org/material-ui-icons/-/material-ui-icons-1.0.0-beta.36.tgz", + "integrity": "sha512-7rS6b2EV5QXCB/gTi/Ac9Wbxd+h9EZv1Td3rLLJe4IER8mVHRgdqZccB3EsjW2DrJ7opdY1+8X3/vyrS7CQNpg==", + "requires": { + "recompose": "^0.26.0" + }, + "dependencies": { + "recompose": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.26.0.tgz", + "integrity": "sha512-KwOu6ztO0mN5vy3+zDcc45lgnaUoaQse/a5yLVqtzTK13czSWnFGmXbQVmnoMgDkI5POd1EwIKSbjU1V7xdZog==", + "requires": { + "change-emitter": "^0.1.2", + "fbjs": "^0.8.1", + "hoist-non-react-statics": "^2.3.1", + "symbol-observable": "^1.0.4" + } + } + } + }, "math-expression-evaluator": { "version": "1.2.17", "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", diff --git a/package.json b/package.json index e45497e..de0dbff 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "firebase-admin": "^6.0.0", "flamelink": "^0.19.2", "google-maps-react": "^2.0.2", + "material-ui-icons": "^1.0.0-beta.36", "moment": "^2.22.2", "react": "^16.5.1", "react-dom": "^16.5.1", From 054c67db51af3de7740cd99f60cf9ac43dec3d23 Mon Sep 17 00:00:00 2001 From: ajmaley Date: Sat, 27 Oct 2018 13:24:25 -0400 Subject: [PATCH 05/16] Merged flamelink branch with develop and added info page to menu. The content on the info page may populate the home page in the future. --- src/components/Main.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/components/Main.js b/src/components/Main.js index 62336af..984555e 100644 --- a/src/components/Main.js +++ b/src/components/Main.js @@ -16,10 +16,12 @@ import MenuIcon from '@material-ui/icons/Menu'; import HomeIcon from '@material-ui/icons/Home'; import AssignmentIcon from '@material-ui/icons/Assignment'; import MapIcon from '@material-ui/icons/Map'; +import InfoIcon from '@material-ui/icons/Info'; import ListIcon from '@material-ui/icons/List'; import SlideshowIcon from '@material-ui/icons/Slideshow'; import Home from '../pages/Home'; import ViewMap from '../pages/ViewMap'; +import Info from '../pages/Info'; import Quiz from '../pages/QuizPage'; import SightingList from '../pages/SightingList'; import Report from '../pages/Report'; @@ -110,6 +112,10 @@ class ResponsiveDrawer extends React.Component { + this.nav('Info')}> + + + @@ -189,6 +195,7 @@ class ResponsiveDrawer extends React.Component { {this.state.key === 'Report' && } {this.state.key === 'Map' && } {this.state.key === 'List' && } + {this.state.key === 'Info' && } {this.state.key === 'Easy-Quiz' && } {this.state.key === 'Medium-Quiz' && } {this.state.key === 'Hard-Quiz' && } From 88490b4f2d615237142d962324d0205f24ce3032 Mon Sep 17 00:00:00 2001 From: ajmaley Date: Tue, 30 Oct 2018 19:50:38 -0400 Subject: [PATCH 06/16] Add Firebase admin SDK --- package-lock.json | 1395 +++++++++++++---- package.json | 5 +- src/firebase.js | 15 +- src/flamelink.js | 2 +- ...on-firebase-adminsdk-zvjmp-c177ac648f.json | 12 + 5 files changed, 1135 insertions(+), 294 deletions(-) create mode 100644 src/keys/marten-application-firebase-adminsdk-zvjmp-c177ac648f.json diff --git a/package-lock.json b/package-lock.json index 94480ea..14f5192 100644 --- a/package-lock.json +++ b/package-lock.json @@ -76,6 +76,424 @@ "@firebase/webchannel-wrapper": "0.2.10", "grpc": "1.13.1", "tslib": "1.9.0" + }, + "dependencies": { + "grpc": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/grpc/-/grpc-1.13.1.tgz", + "integrity": "sha512-yl0xChnlUISTefOPU2NQ1cYPh5m/DTatEUV6jdRyQPE9NCrtPq7Gn6J2alMTglN7ufYbJapOd00dvhGurHH6HQ==", + "requires": { + "lodash": "^4.17.5", + "nan": "^2.0.0", + "node-pre-gyp": "^0.10.0", + "protobufjs": "^5.0.3" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": 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" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true + }, + "iconv-lite": { + "version": "0.4.23", + "bundled": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "bundled": true + }, + "minipass": { + "version": "2.3.3", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "bundled": true + } + } + }, + "ms": { + "version": "2.0.0", + "bundled": true + }, + "needle": { + "version": "2.2.1", + "bundled": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.3", + "bundled": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true + }, + "npm-packlist": { + "version": "1.1.11", + "bundled": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true + }, + "sax": { + "version": "1.2.4", + "bundled": true + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true + }, + "tar": { + "version": "4.4.4", + "bundled": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.3", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + } } }, "@firebase/firestore-types": { @@ -207,9 +625,9 @@ } }, "@google-cloud/firestore": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-0.16.1.tgz", - "integrity": "sha512-xHb4OdRb0OP0x/8w58WJERtCi9Pr+CsloiUlVAq6fFjSyEcmxgL0V+swE8A/2rI5NGQGwtrN57xwDcis5UM/cQ==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-0.18.0.tgz", + "integrity": "sha512-lofPnXFkWjRSVfXW995k62u+x3jhJo5dKmqVemgHBWIHC8YIpyLV05VjOdhAWhOQocLSJP+SS/RN7SgcsszszA==", "optional": true, "requires": { "@google-cloud/projectify": "^0.3.0", @@ -217,8 +635,8 @@ "deep-equal": "^1.0.1", "extend": "^3.0.1", "functional-red-black-tree": "^1.0.1", - "google-gax": "^0.18.0", - "google-proto-files": "^0.16.1", + "google-gax": "^0.20.0", + "google-proto-files": "^0.17.0", "is": "^3.2.1", "lodash.merge": "^4.6.1", "protobufjs": "^6.8.6", @@ -226,9 +644,9 @@ }, "dependencies": { "@types/node": { - "version": "10.11.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.4.tgz", - "integrity": "sha512-ojnbBiKkZFYRfQpmtnnWTMw+rzGp/JiystjluW9jgN3VzRwilXddJ6aGQ9V/7iuDG06SBgn7ozW9k3zcAnYjYQ==", + "version": "10.12.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.1.tgz", + "integrity": "sha512-i1sl+WCX2OCHeUi9oi7PiCNUtYFrpWhpcx878vpeq/tlZTKzcFdHePlyFHVbWqeuKN0SRPl/9ZFDSTsfv9h7VQ==", "optional": true }, "long": { @@ -261,9 +679,9 @@ } }, "@google-cloud/projectify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-0.3.0.tgz", - "integrity": "sha512-ic3vU+rBLlQ9rU6vyMcQ/GoYQX9hP0P56jdbnSkGvXrVnO1DtYrkPV3Qg/NUrpAfKnmNC4hb0O/v2hCj8uGnbQ==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-0.3.1.tgz", + "integrity": "sha512-HvugQ8fC87kTNGs9ZQTTEwrJt67zfero9lDQCukJvAC2IuIyS1/6h4NqHBZK9lOnsmfHTQYhPq7GD2vzWEcm6g==", "optional": true }, "@google-cloud/storage": { @@ -303,6 +721,15 @@ } } }, + "@grpc/grpc-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-0.2.0.tgz", + "integrity": "sha512-89xjKxo3iuc8Gsln3brtXfTUV8H2UPzWBEJ/iVD1YlSqp+LomEC1L700/PwyWRCX4rdJnOpuv4RCGE8zrOSlyA==", + "optional": true, + "requires": { + "lodash": "^4.17.4" + } + }, "@grpc/proto-loader": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.3.0.tgz", @@ -316,9 +743,9 @@ }, "dependencies": { "@types/node": { - "version": "9.6.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.34.tgz", - "integrity": "sha512-PzJpSs2afoYqBA4yLBgaKUdZRk8+1yvkxcUBW6958h4vYOC+pc4k4C+QmQ6AO5Pt7uA4EIIboFog6YNCuITD0g==", + "version": "9.6.35", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.35.tgz", + "integrity": "sha512-h5zvHS8wXHGa+Gcqs9K8vqCgOtqjr0+NqG/DDJmQIX1wpR9HivAfgV8bjcD3mGM4bPfQw5Aneb2Pn8355L83jA==", "optional": true }, "long": { @@ -349,9 +776,9 @@ }, "dependencies": { "@types/node": { - "version": "10.11.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.4.tgz", - "integrity": "sha512-ojnbBiKkZFYRfQpmtnnWTMw+rzGp/JiystjluW9jgN3VzRwilXddJ6aGQ9V/7iuDG06SBgn7ozW9k3zcAnYjYQ==", + "version": "10.12.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.1.tgz", + "integrity": "sha512-i1sl+WCX2OCHeUi9oi7PiCNUtYFrpWhpcx878vpeq/tlZTKzcFdHePlyFHVbWqeuKN0SRPl/9ZFDSTsfv9h7VQ==", "optional": true } } @@ -519,9 +946,9 @@ } }, "@types/lodash": { - "version": "4.14.116", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.116.tgz", - "integrity": "sha512-lRnAtKnxMXcYYXqOiotTmJd74uawNWuPnsnPrrO7HiFuE3npE2iQhfABatbYDyxTNqZNuXzcKGhw37R7RjBFLg==", + "version": "4.14.117", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.117.tgz", + "integrity": "sha512-xyf2m6tRbz8qQKcxYZa7PA4SllYcay+eh25DN3jmNYY6gSTL7Htc/bttVdkqj2wfJGbeWlQiX8pIyJpKU+tubw==", "optional": true }, "@types/long": { @@ -530,9 +957,9 @@ "integrity": "sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q==" }, "@types/node": { - "version": "8.10.34", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.34.tgz", - "integrity": "sha512-alypNiaAEd0RBGXoWehJ2gchPYCITmw4CYBoB5nDlji8l8on7FsklfdfIs4DDmgpKLSX3OF3ha6SV+0W7cTzUA==" + "version": "8.10.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.36.tgz", + "integrity": "sha512-SL6KhfM7PTqiFmbCW3eVNwVBZ+88Mrzbuvn9olPsfv43mbiWaFY+nRcz/TGGku0/lc2FepdMbImdMY1JrQ+zbw==" }, "@types/prop-types": { "version": "15.5.5", @@ -560,9 +987,9 @@ } }, "@types/request": { - "version": "2.47.1", - "resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.1.tgz", - "integrity": "sha512-TV3XLvDjQbIeVxJ1Z3oCTDk/KuYwwcNKVwz2YaT0F5u86Prgc4syDAp6P96rkTQQ4bIdh+VswQIC9zS6NjY7/g==", + "version": "2.48.0", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.0.tgz", + "integrity": "sha512-KnfoOtqXKllSqfXSEvGTd8KDkNlpHs+PWr6I6XiEIWk/jckH3pNmWDXNFZyPkB9wApb8vzDq2wMByM/0GFSmXg==", "optional": true, "requires": { "@types/caseless": "*", @@ -614,7 +1041,8 @@ "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=" + "integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s=", + "optional": true }, "acorn-globals": { "version": "3.1.0", @@ -651,12 +1079,20 @@ "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz", "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==" }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "optional": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "ajv": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.0.0.tgz", + "integrity": "sha1-CTvsTZusjkUF5UGuEOthUCaGhMI=", "requires": { - "co": "^4.6.0", "fast-deep-equal": "^1.0.0", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.3.0" @@ -2195,7 +2631,8 @@ "call-signature": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz", - "integrity": "sha1-qEq8glpV70yysCi9dOIFpluaSZY=" + "integrity": "sha1-qEq8glpV70yysCi9dOIFpluaSZY=", + "optional": true }, "caller-path": { "version": "0.1.0", @@ -3531,7 +3968,8 @@ "diff-match-patch": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.4.tgz", - "integrity": "sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg==" + "integrity": "sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg==", + "optional": true }, "diffie-hellman": { "version": "5.0.3", @@ -3646,6 +4084,11 @@ "urijs": "^1.16.1" } }, + "dom-walk": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" + }, "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", @@ -3702,9 +4145,9 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", + "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==", "requires": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -3773,6 +4216,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/empower/-/empower-1.3.1.tgz", "integrity": "sha512-uB6/ViBaawOO/uujFADTK3SqdYlxYNn+N4usK9MRKZ4Hbn/1QSy8k2PezxCA2/+JGbF8vd/eOfghZ90oOSDZCA==", + "optional": true, "requires": { "core-js": "^2.0.0", "empower-core": "^1.2.0" @@ -3782,6 +4226,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/empower-core/-/empower-core-1.2.0.tgz", "integrity": "sha512-g6+K6Geyc1o6FdXs9HwrXleCFan7d66G5xSCfSF7x1mJDCes6t0om9lFQG3zOrzh3Bkb/45N0cZ5Gqsf7YrzGQ==", + "optional": true, "requires": { "call-signature": "0.0.2", "core-js": "^2.0.0" @@ -3906,6 +4351,15 @@ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==" }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "optional": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, "es6-set": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", @@ -4022,6 +4476,17 @@ "text-table": "~0.2.0" }, "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", @@ -4277,6 +4742,7 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.8.1.tgz", "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", + "optional": true, "requires": { "core-js": "^2.0.0" } @@ -4976,15 +5442,15 @@ } }, "firebase-admin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-6.0.0.tgz", - "integrity": "sha512-ai7ensTAZx9iF6z/lMn7JzFJYSl6+uXYm53GGhWlph+npnQli10FF9YB97OjcVUghapDEWzmb6J0VMtB965nsw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-6.1.0.tgz", + "integrity": "sha512-pleUtbaaEtqMSJYsz4kNTiYiFs0XR+NsFX+ih+80EtMrm78W3VPojm4VQ3CJXDxWYAaEv00WXgLeQypRSVV1HQ==", "requires": { "@firebase/app": "^0.3.1", "@firebase/database": "^0.3.1", - "@google-cloud/firestore": "^0.16.0", + "@google-cloud/firestore": "^0.18.0", "@google-cloud/storage": "^1.6.0", - "@types/google-cloud__storage": "^1.1.7", + "@types/google-cloud__storage": "^1.7.1", "@types/node": "^8.0.53", "jsonwebtoken": "8.1.0", "node-forge": "0.7.4" @@ -6556,9 +7022,10 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gcp-metadata": { - "version": "0.6.3", - "resolved": "http://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", - "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.7.0.tgz", + "integrity": "sha512-ffjC09amcDWjh3VZdkDngIo7WoluyC5Ag9PAYxZbmQLOLNI8lvPtoKTSCyU54j2gwy5roZh6sSMTfkY2ct7K3g==", + "optional": true, "requires": { "axios": "^0.18.0", "extend": "^3.0.1", @@ -6641,6 +7108,22 @@ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" }, + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + }, + "dependencies": { + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" + } + } + }, "global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", @@ -6690,17 +7173,19 @@ } }, "google-auth-library": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.6.1.tgz", - "integrity": "sha512-jYiWC8NA9n9OtQM7ANn0Tk464do9yhKEtaJ72pKcaBiEwn4LwcGYIYOfwtfsSm3aur/ed3tlSxbmg24IAT6gAg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-2.0.1.tgz", + "integrity": "sha512-CWLKZxqYw4SE+fE3GWbVT9r/10h75w8lB3cdmmLpLtCfccFDcsI84qI5rx7npemlrHtKJh3C2HUz4s6SihCeIQ==", + "optional": true, "requires": { "axios": "^0.18.0", - "gcp-metadata": "^0.6.3", + "gcp-metadata": "^0.7.0", "gtoken": "^2.3.0", + "https-proxy-agent": "^2.2.1", "jws": "^3.1.5", "lodash.isstring": "^4.0.1", "lru-cache": "^4.1.3", - "retry-axios": "^0.3.2" + "semver": "^5.5.0" } }, "google-auto-auth": { @@ -6712,32 +7197,153 @@ "gcp-metadata": "^0.6.1", "google-auth-library": "^1.3.1", "request": "^2.79.0" + }, + "dependencies": { + "gcp-metadata": { + "version": "0.6.3", + "resolved": "http://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", + "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", + "requires": { + "axios": "^0.18.0", + "extend": "^3.0.1", + "retry-axios": "0.3.2" + } + }, + "google-auth-library": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.6.1.tgz", + "integrity": "sha512-jYiWC8NA9n9OtQM7ANn0Tk464do9yhKEtaJ72pKcaBiEwn4LwcGYIYOfwtfsSm3aur/ed3tlSxbmg24IAT6gAg==", + "requires": { + "axios": "^0.18.0", + "gcp-metadata": "^0.6.3", + "gtoken": "^2.3.0", + "jws": "^3.1.5", + "lodash.isstring": "^4.0.1", + "lru-cache": "^4.1.3", + "retry-axios": "^0.3.2" + } + } } }, "google-gax": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-0.18.0.tgz", - "integrity": "sha512-cF2s3aTw1cWDHsjaYfIizJZT0KJF0FSM3laiCX4O/K0ZcdmeE9PitG2bxRH+dY+Sz094//m+JoH1hBtSyOf67A==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-0.20.0.tgz", + "integrity": "sha512-JoaRCQtks60zuB3c5/5y60jG+xFBP67yYIgF6UuuDDVZtj/Z6kCKqjrGWNXEzFH2jolHZcvocST3JMwA/XClvA==", "optional": true, "requires": { + "@grpc/grpc-js": "^0.2.0", "@grpc/proto-loader": "^0.3.0", "duplexify": "^3.6.0", "extend": "^3.0.1", "globby": "^8.0.1", - "google-auth-library": "^1.6.1", + "google-auth-library": "^2.0.0", "google-proto-files": "^0.16.0", "grpc": "^1.12.2", "is-stream-ended": "^0.1.4", "lodash": "^4.17.10", "protobufjs": "^6.8.8", "retry-request": "^4.0.0", + "semver": "^5.5.1", "through2": "^2.0.3" }, "dependencies": { "@types/node": { - "version": "10.11.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.4.tgz", - "integrity": "sha512-ojnbBiKkZFYRfQpmtnnWTMw+rzGp/JiystjluW9jgN3VzRwilXddJ6aGQ9V/7iuDG06SBgn7ozW9k3zcAnYjYQ==", + "version": "10.12.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.1.tgz", + "integrity": "sha512-i1sl+WCX2OCHeUi9oi7PiCNUtYFrpWhpcx878vpeq/tlZTKzcFdHePlyFHVbWqeuKN0SRPl/9ZFDSTsfv9h7VQ==" + }, + "globby": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", + "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "google-proto-files": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.16.1.tgz", + "integrity": "sha512-ykdhaYDiU/jlyrkzZDPemraKwVIgLT31XMHVNSJW//R9VED56hqSDRMx1Jlxbf0O4iDZnBWQ0JQLHbM2r5+wuA==", + "optional": true, + "requires": { + "globby": "^8.0.0", + "power-assert": "^1.4.4", + "protobufjs": "^6.8.0" + } + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "protobufjs": { + "version": "6.8.8", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz", + "integrity": "sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.0", + "@types/node": "^10.1.0", + "long": "^4.0.0" + } + } + } + }, + "google-maps-react": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/google-maps-react/-/google-maps-react-2.0.2.tgz", + "integrity": "sha512-6cYauGwt22haDUrWxKQ6yoNOqjiuxHo8YYcmb+aBvNICokdXmZOUB6Ah4vD5VexMVlrwP2PFqA/D8sHpEB52KA==" + }, + "google-p12-pem": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", + "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", + "requires": { + "node-forge": "^0.7.4", + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "google-proto-files": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.17.0.tgz", + "integrity": "sha512-59ZolxRM3XPNp+10dnrzAHv2PKgZUEV9p57Mi1fJED3wZN4Gk+4j1BH/YnSQeLLsWBuVGCWQW4Z2qBxSujmTag==", + "optional": true, + "requires": { + "globby": "^8.0.0", + "protobufjs": "^6.8.0" + }, + "dependencies": { + "@types/node": { + "version": "10.12.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.1.tgz", + "integrity": "sha512-i1sl+WCX2OCHeUi9oi7PiCNUtYFrpWhpcx878vpeq/tlZTKzcFdHePlyFHVbWqeuKN0SRPl/9ZFDSTsfv9h7VQ==", "optional": true }, "globby": { @@ -6790,88 +7396,6 @@ } } }, - "google-maps-react": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/google-maps-react/-/google-maps-react-2.0.2.tgz", - "integrity": "sha512-6cYauGwt22haDUrWxKQ6yoNOqjiuxHo8YYcmb+aBvNICokdXmZOUB6Ah4vD5VexMVlrwP2PFqA/D8sHpEB52KA==" - }, - "google-p12-pem": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", - "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", - "requires": { - "node-forge": "^0.7.4", - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "google-proto-files": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.16.1.tgz", - "integrity": "sha512-ykdhaYDiU/jlyrkzZDPemraKwVIgLT31XMHVNSJW//R9VED56hqSDRMx1Jlxbf0O4iDZnBWQ0JQLHbM2r5+wuA==", - "requires": { - "globby": "^8.0.0", - "power-assert": "^1.4.4", - "protobufjs": "^6.8.0" - }, - "dependencies": { - "@types/node": { - "version": "10.11.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.4.tgz", - "integrity": "sha512-ojnbBiKkZFYRfQpmtnnWTMw+rzGp/JiystjluW9jgN3VzRwilXddJ6aGQ9V/7iuDG06SBgn7ozW9k3zcAnYjYQ==" - }, - "globby": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", - "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", - "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - } - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "protobufjs": { - "version": "6.8.8", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz", - "integrity": "sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - } - } - } - }, "got": { "version": "6.7.1", "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", @@ -6901,9 +7425,9 @@ "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" }, "grpc": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/grpc/-/grpc-1.13.1.tgz", - "integrity": "sha512-yl0xChnlUISTefOPU2NQ1cYPh5m/DTatEUV6jdRyQPE9NCrtPq7Gn6J2alMTglN7ufYbJapOd00dvhGurHH6HQ==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/grpc/-/grpc-1.15.1.tgz", + "integrity": "sha512-BfJ6BpFE93xQW69oYfgVQDxSb7LqdQbnddvhFq4tUsj7s0NAIRrrN3fmN2Bi3qpGFRemsKsWPIchw3YNNq2Xjg==", "requires": { "lodash": "^4.17.5", "nan": "^2.0.0", @@ -6913,23 +7437,19 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "bundled": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true }, "aproba": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "bundled": true }, "are-we-there-yet": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "bundled": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -6937,13 +7457,11 @@ }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "bundled": true }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6951,69 +7469,57 @@ }, "chownr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" + "bundled": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "bundled": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "bundled": true }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "bundled": true }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, "requires": { "ms": "2.0.0" } }, "deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + "bundled": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "bundled": true }, "detect-libc": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + "bundled": true }, "fs-minipass": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "bundled": true, "requires": { "minipass": "^2.2.1" } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "bundled": true }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -7027,8 +7533,7 @@ }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7040,29 +7545,25 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "bundled": true }, "iconv-lite": { "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "bundled": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, "ignore-walk": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "bundled": true, "requires": { "minimatch": "^3.0.4" } }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -7070,44 +7571,37 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true }, "ini": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "bundled": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "requires": { "number-is-nan": "^1.0.0" } }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "bundled": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "bundled": true }, "minipass": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.3.tgz", - "integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==", + "bundled": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -7115,36 +7609,31 @@ }, "minizlib": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "bundled": true, "requires": { "minipass": "^2.2.1" } }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "requires": { "minimist": "0.0.8" }, "dependencies": { "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true } } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "bundled": true }, "needle": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.1.tgz", - "integrity": "sha512-t/ZswCM9JTWjAdXS9VpvqhI2Ct2sL2MdY4fUXqGJaGBk13ge99ObqRksRTbBE56K+wxUXwwfZYOuZHifFW9q+Q==", + "version": "2.2.2", + "bundled": true, "requires": { "debug": "^2.1.2", "iconv-lite": "^0.4.4", @@ -7153,8 +7642,7 @@ }, "node-pre-gyp": { "version": "0.10.3", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz", - "integrity": "sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A==", + "bundled": true, "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", @@ -7170,8 +7658,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "requires": { "abbrev": "1", "osenv": "^0.1.4" @@ -7179,13 +7666,11 @@ }, "npm-bundled": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==" + "bundled": true }, "npm-packlist": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.11.tgz", - "integrity": "sha512-CxKlZ24urLkJk+9kCm48RTQ7L4hsmgSVzEk0TLGPzzyuFxD7VNgy5Sl24tOLMzQv773a/NeJ1ce1DKeacqffEA==", + "bundled": true, "requires": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" @@ -7193,8 +7678,7 @@ }, "npmlog": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "bundled": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -7204,36 +7688,30 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "bundled": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "bundled": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "requires": { "wrappy": "1" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "bundled": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "bundled": true }, "osenv": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "bundled": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -7241,18 +7719,15 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "bundled": true }, "process-nextick-args": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + "bundled": true }, "rc": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "bundled": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -7262,8 +7737,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "bundled": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7276,46 +7750,38 @@ }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "requires": { "glob": "^7.0.5" } }, "safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "bundled": true }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "bundled": true }, "sax": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "bundled": true }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "bundled": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "bundled": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "bundled": true }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -7324,29 +7790,25 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "bundled": true, "requires": { "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "requires": { "ansi-regex": "^2.0.0" } }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "bundled": true }, "tar": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.4.tgz", - "integrity": "sha512-mq9ixIYfNF9SK0IS/h2HKMu8Q2iaCuhDDsZhdEag/FHv8fOaYld4vN7ouMgcSSt5WKZzPs8atclTcJm36OTh4w==", + "version": "4.4.6", + "bundled": true, "requires": { "chownr": "^1.0.1", "fs-minipass": "^1.2.5", @@ -7359,26 +7821,22 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "bundled": 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==", + "bundled": true, "requires": { "string-width": "^1.0.2 || 2" } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true }, "yallist": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" + "bundled": true } } }, @@ -7442,6 +7900,19 @@ "requires": { "ajv": "^5.3.0", "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + } } }, "has": { @@ -7800,6 +8271,33 @@ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, + "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==", + "optional": true, + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "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==", + "optional": true + } + } + }, "hyphenate-style-name": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz", @@ -8960,6 +9458,14 @@ "resolved": "https://registry.npmjs.org/jss-props-sort/-/jss-props-sort-6.0.0.tgz", "integrity": "sha512-E89UDcrphmI0LzmvYk25Hp4aE5ZBsXqMWlkFXS0EtPkunJkRr+WXdCNYbXbksIPnKlBenGB9OxzQY+mVc70S+g==" }, + "jss-rtl": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/jss-rtl/-/jss-rtl-0.2.3.tgz", + "integrity": "sha512-c9yOhTWldABdx+dds0XSXIbUcEWajBv+e7fl3zaiHCwOqbq4QiAdDTw7l4l5nqHAaGV6+33zMoS//KMMGpPA1A==", + "requires": { + "rtl-css-js": "^1.8.0" + } + }, "jss-template": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/jss-template/-/jss-template-1.0.1.tgz", @@ -9349,6 +9855,187 @@ "object-visit": "^1.0.0" } }, + "material-ui": { + "version": "1.0.0-beta.16", + "resolved": "https://registry.npmjs.org/material-ui/-/material-ui-1.0.0-beta.16.tgz", + "integrity": "sha1-4THB9xcHpnYIfwYuNKyUr7hdgr8=", + "requires": { + "babel-runtime": "^6.26.0", + "brcast": "^3.0.1", + "classnames": "^2.2.5", + "deepmerge": "^1.5.2", + "dom-helpers": "^3.2.1", + "hoist-non-react-statics": "^1.2.0", + "jss": "^8.1.0", + "jss-preset-default": "^3.0.0", + "jss-rtl": "^0.2.0", + "keycode": "^2.1.9", + "lodash": "^4.17.4", + "normalize-scroll-left": "^0.1.0", + "prop-types": "^15.6.0", + "react-event-listener": "^0.5.1", + "react-flow-types": "^0.2.0-beta.2", + "react-jss": "^7.2.0", + "react-popper": "^0.7.3", + "react-scrollbar-size": "^2.0.2", + "react-transition-group": "^2.2.1", + "recompose": "^0.26.0", + "scroll": "^2.0.1", + "warning": "^3.0.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.0.0-beta.42", + "resolved": "http://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0-beta.42.tgz", + "integrity": "sha512-iOGRzUoONLOtmCvjUsZv3mZzgCT6ljHQY5fr1qG1QIiJQwtM7zbPWGGpa3QWETq+UqwWyJnoi5XZDZRwZDFciQ==", + "requires": { + "core-js": "^2.5.3", + "regenerator-runtime": "^0.11.1" + } + }, + "deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==" + }, + "hoist-non-react-statics": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz", + "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs=" + }, + "jss": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-8.1.0.tgz", + "integrity": "sha512-NZ4CNAoPaPlM2rqHxPG5uGQbQEFZ9n1PITn0+wGIdAk2ZtA/F6el0SphLHf8So1Sx6N34hnVFFIuc32/hdsEzw==", + "requires": { + "is-in-browser": "^1.0.2", + "warning": "^3.0.0" + } + }, + "jss-camel-case": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jss-camel-case/-/jss-camel-case-5.0.0.tgz", + "integrity": "sha512-vz11ip5EIlGuevtlUo9xIgiuD+it4Ebbb0+Y4o0A4oA8eOWY4aY7ihi/L7WvkQ54xnGOjUvLZ6nm2VYch2ufYg==" + }, + "jss-compose": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jss-compose/-/jss-compose-4.0.0.tgz", + "integrity": "sha512-VnsEziD2Lwrfwp10wx39FNybRLW5+RX/E2qQAXPAMbS+nHc0Jf2dC6ZiCfn5FaBGrpzLfIZ9MalTJDx4CQoMAQ==", + "requires": { + "warning": "^3.0.0" + } + }, + "jss-default-unit": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jss-default-unit/-/jss-default-unit-7.0.0.tgz", + "integrity": "sha512-U1Oi1h45vFRuISr+g1DQ3Oua7CkNKNs47fTdiT/lHkuBMc6BBDUbPv9IbPPhk9gsEaX45Iy9TX8CAuaHLPCfEA==" + }, + "jss-expand": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jss-expand/-/jss-expand-4.0.1.tgz", + "integrity": "sha512-LRIMXXChAOgnhwSqYLJg8MS6dI98bf/sg52pAg04pbjOAtjfzyS0JTnQAiyk3PxqR3nKFR/Yv44ahpIpkdcxVA==" + }, + "jss-extend": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jss-extend/-/jss-extend-5.0.0.tgz", + "integrity": "sha512-fUp+9KipbdmzSfTxNHoT3mrFnE7fYn7EyHg3LTUexfpWrwj5Afkwb3iCfYV7GYCpg9OKDsqc18atwjHvSPWWKg==", + "requires": { + "warning": "^3.0.0" + } + }, + "jss-global": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jss-global/-/jss-global-2.0.0.tgz", + "integrity": "sha512-/FSOMp4lF/vg47T/w8kKvL9tu7ka9am8N4izS63W81Qlay9hAq6xe9RxrPxygLpnn4KEb8LNbkKRoUv4SJfQsQ==" + }, + "jss-nested": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jss-nested/-/jss-nested-5.0.0.tgz", + "integrity": "sha512-9Molau+XVpSc6QEco3EC5yXmzeGMc5ZVII8+qy6jD6bvu6Y9mpfGoJ00LalR/n7xr/LC7Cxgs44UQQlLzumMBg==", + "requires": { + "warning": "^3.0.0" + } + }, + "jss-preset-default": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jss-preset-default/-/jss-preset-default-3.0.0.tgz", + "integrity": "sha512-5wRsHsV89XjnQlUVN5jQfo6gcfcirDJmsMJL52HmWoQlV9SA+jhUtt1w3LjcJHe4e3tX4u/To/x3Btmhi+LZtQ==", + "requires": { + "jss-camel-case": "^5.0.0", + "jss-compose": "^4.0.0", + "jss-default-unit": "^7.0.0", + "jss-expand": "^4.0.0", + "jss-extend": "^5.0.0", + "jss-global": "^2.0.0", + "jss-nested": "^5.0.0", + "jss-props-sort": "^5.0.0", + "jss-vendor-prefixer": "^6.0.0" + } + }, + "jss-props-sort": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jss-props-sort/-/jss-props-sort-5.0.0.tgz", + "integrity": "sha512-xtoVE7BlcPaMN/dzypHPYJn+QiphLPB1skypAOp9zLkOozPbR/x0JVAFdZnd7zqmmjvg+Ma/txjSg0HN/eZsGA==" + }, + "jss-vendor-prefixer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/jss-vendor-prefixer/-/jss-vendor-prefixer-6.0.0.tgz", + "integrity": "sha512-leqW7B2QLXYsUNR3jsUZP3CkuOYcWXyfF8TSJc4XNxhVCNH7ztK5dcnF8nLoMnxT0w/ajloeJKcch2ty/viCAA==", + "requires": { + "css-vendor": "^0.3.8" + } + }, + "react-event-listener": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/react-event-listener/-/react-event-listener-0.5.10.tgz", + "integrity": "sha512-YZklRszh9hq3WP3bdNLjFwJcTCVe7qyTf5+LWNaHfZQaZrptsefDK2B5HHpOsEEaMHvjllUPr0+qIFVTSsurow==", + "requires": { + "@babel/runtime": "7.0.0-beta.42", + "fbjs": "^0.8.16", + "prop-types": "^15.6.0", + "warning": "^3.0.0" + } + }, + "react-jss": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/react-jss/-/react-jss-7.2.0.tgz", + "integrity": "sha512-vgnNFImsjfchBloCt0BCe7MeiNEiGtTm/MGA0RVFjU/ccTt+YAlfFhSlGJ+KOC3qQ9Sl5mkl07JatGfjW2CTQQ==", + "requires": { + "hoist-non-react-statics": "^1.2.0", + "jss": "^8.1.0", + "jss-preset-default": "^3.0.0", + "prop-types": "^15.5.8", + "theming": "^1.1.0" + } + }, + "recompose": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.26.0.tgz", + "integrity": "sha512-KwOu6ztO0mN5vy3+zDcc45lgnaUoaQse/a5yLVqtzTK13czSWnFGmXbQVmnoMgDkI5POd1EwIKSbjU1V7xdZog==", + "requires": { + "change-emitter": "^0.1.2", + "fbjs": "^0.8.1", + "hoist-non-react-statics": "^2.3.1", + "symbol-observable": "^1.0.4" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + } + } + }, + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, "material-ui-icons": { "version": "1.0.0-beta.36", "resolved": "https://registry.npmjs.org/material-ui-icons/-/material-ui-icons-1.0.0-beta.36.tgz", @@ -9446,9 +10133,9 @@ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, "merge2": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", - "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", + "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==" }, "methmeth": { "version": "1.1.0", @@ -9513,6 +10200,14 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "^0.1.0" + } + }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -11379,6 +12074,7 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/power-assert/-/power-assert-1.6.1.tgz", "integrity": "sha512-VWkkZV6Y+W8qLX/PtJu2Ur2jDPIs0a5vbP0TpKeybNcIXmT4vcKoVkyTp5lnQvTpY/DxacAZ4RZisHRHLJcAZQ==", + "optional": true, "requires": { "define-properties": "^1.1.2", "empower": "^1.3.1", @@ -11391,6 +12087,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/power-assert-context-formatter/-/power-assert-context-formatter-1.2.0.tgz", "integrity": "sha512-HLNEW8Bin+BFCpk/zbyKwkEu9W8/zThIStxGo7weYcFkKgMuGCHUJhvJeBGXDZf0Qm2xis4pbnnciGZiX0EpSg==", + "optional": true, "requires": { "core-js": "^2.0.0", "power-assert-context-traversal": "^1.2.0" @@ -11400,6 +12097,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.2.0.tgz", "integrity": "sha512-EgOxmZ/Lb7tw4EwSKX7ZnfC0P/qRZFEG28dx/690qvhmOJ6hgThYFm5TUWANDLK5NiNKlPBi5WekVGd2+5wPrw==", + "optional": true, "requires": { "acorn": "^5.0.0", "acorn-es7-plugin": "^1.0.12", @@ -11412,6 +12110,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/power-assert-context-traversal/-/power-assert-context-traversal-1.2.0.tgz", "integrity": "sha512-NFoHU6g2umNajiP2l4qb0BRWD773Aw9uWdWYH9EQsVwIZnog5bd2YYLFCVvaxWpwNzWeEfZIon2xtyc63026pQ==", + "optional": true, "requires": { "core-js": "^2.0.0", "estraverse": "^4.1.0" @@ -11421,6 +12120,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/power-assert-formatter/-/power-assert-formatter-1.4.1.tgz", "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", + "optional": true, "requires": { "core-js": "^2.0.0", "power-assert-context-formatter": "^1.0.7", @@ -11435,6 +12135,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.2.0.tgz", "integrity": "sha512-3F7Q1ZLmV2ZCQv7aV7NJLNK9G7QsostrhOU7U0RhEQS/0vhEqrRg2jEJl1jtUL4ZyL2dXUlaaqrmPv5r9kRvIg==", + "optional": true, "requires": { "power-assert-renderer-base": "^1.1.1", "power-assert-util-string-width": "^1.2.0" @@ -11449,6 +12150,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.2.0.tgz", "integrity": "sha512-7c3RKPDBKK4E3JqdPtYRE9cM8AyX4LC4yfTvvTYyx8zSqmT5kJnXwzR0yWQLOavACllZfwrAGQzFiXPc5sWa+g==", + "optional": true, "requires": { "core-js": "^2.0.0", "diff-match-patch": "^1.0.0", @@ -11461,6 +12163,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.2.0.tgz", "integrity": "sha512-JZ6PC+DJPQqfU6dwSmpcoD7gNnb/5U77bU5KgNwPPa+i1Pxiz6UuDeM3EUBlhZ1HvH9tMjI60anqVyi5l2oNdg==", + "optional": true, "requires": { "core-js": "^2.0.0", "power-assert-renderer-base": "^1.1.1", @@ -11472,6 +12175,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/power-assert-renderer-file/-/power-assert-renderer-file-1.2.0.tgz", "integrity": "sha512-/oaVrRbeOtGoyyd7e4IdLP/jIIUFJdqJtsYzP9/88R39CMnfF/S/rUc8ZQalENfUfQ/wQHu+XZYRMaCEZmEesg==", + "optional": true, "requires": { "power-assert-renderer-base": "^1.1.1" } @@ -11721,6 +12425,14 @@ "performance-now": "^2.1.0" } }, + "rafl": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/rafl/-/rafl-1.2.2.tgz", + "integrity": "sha1-/pMPdYIRAg1H44gV9Rlqi+QVB0A=", + "requires": { + "global": "~4.3.0" + } + }, "randomatic": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", @@ -11899,6 +12611,11 @@ } } }, + "react-flow-types": { + "version": "0.2.0-beta.6", + "resolved": "https://registry.npmjs.org/react-flow-types/-/react-flow-types-0.2.0-beta.6.tgz", + "integrity": "sha512-I4f8oJFGxVJYrJLxG4sCPW7vWedNB8Eee1U2v+xBzRPlF7X5IBelqaDIKxBDLzDFb++AzpoU+uu1jFaKy1QssQ==" + }, "react-jss": { "version": "8.6.1", "resolved": "https://registry.npmjs.org/react-jss/-/react-jss-8.6.1.tgz", @@ -11916,6 +12633,15 @@ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, + "react-popper": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-0.7.4.tgz", + "integrity": "sha512-dx1fcKYYkidq7f71I1g+YX7g3QBLZ9taqiSRdJ7wbP7v/o7F6JsrUaNWGbVNul+TqdDDIZ5/k0xPUol9baqQJQ==", + "requires": { + "popper.js": "^1.12.5", + "prop-types": "^15.5.10" + } + }, "react-quiz-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/react-quiz-component/-/react-quiz-component-0.2.0.tgz", @@ -11994,6 +12720,47 @@ "whatwg-fetch": "2.0.3" } }, + "react-scrollbar-size": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/react-scrollbar-size/-/react-scrollbar-size-2.1.0.tgz", + "integrity": "sha512-9dDUJvk7S48r0TRKjlKJ9e/LkLLYgc9LdQR6W21I8ZqtSrEsedPOoMji4nU3DHy7fx2l8YMScJS/N7qiloYzXQ==", + "requires": { + "babel-runtime": "^6.26.0", + "prop-types": "^15.6.0", + "react-event-listener": "^0.5.1", + "stifle": "^1.0.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.0.0-beta.42", + "resolved": "http://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0-beta.42.tgz", + "integrity": "sha512-iOGRzUoONLOtmCvjUsZv3mZzgCT6ljHQY5fr1qG1QIiJQwtM7zbPWGGpa3QWETq+UqwWyJnoi5XZDZRwZDFciQ==", + "requires": { + "core-js": "^2.5.3", + "regenerator-runtime": "^0.11.1" + } + }, + "react-event-listener": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/react-event-listener/-/react-event-listener-0.5.10.tgz", + "integrity": "sha512-YZklRszh9hq3WP3bdNLjFwJcTCVe7qyTf5+LWNaHfZQaZrptsefDK2B5HHpOsEEaMHvjllUPr0+qIFVTSsurow==", + "requires": { + "@babel/runtime": "7.0.0-beta.42", + "fbjs": "^0.8.16", + "prop-types": "^15.6.0", + "warning": "^3.0.0" + } + }, + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, "react-transition-group": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.4.0.tgz", @@ -12676,6 +13443,29 @@ "inherits": "^2.0.1" } }, + "rtl-css-js": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.11.0.tgz", + "integrity": "sha512-YnZ6jWxZxlWlcQAGF9vOmiF9bEmoQmSHE+wsrsiILkdK9HqiRPAIll4SY/QDzbvEu2lB2h62+hfg3TYzjnldbA==", + "requires": { + "@babel/runtime": "^7.1.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.2.tgz", + "integrity": "sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg==", + "requires": { + "regenerator-runtime": "^0.12.0" + } + }, + "regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + } + } + }, "run-async": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", @@ -12771,6 +13561,27 @@ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", "requires": { "ajv": "^5.0.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + } + } + }, + "scroll": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/scroll/-/scroll-2.0.3.tgz", + "integrity": "sha512-3ncZzf8gUW739h3LeS68nSssO60O+GGjT3SxzgofQmT8PIoyHzebql9HHPJopZX8iT6TKOdwaWFMqL6LzUN3DQ==", + "requires": { + "rafl": "~1.2.1" } }, "select-hose": { @@ -13256,6 +14067,11 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" }, + "stifle": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stifle/-/stifle-1.1.0.tgz", + "integrity": "sha1-FoC13p3gQHQWT0rA/n0022tvcik=" + }, "stream-browserify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", @@ -13266,9 +14082,9 @@ } }, "stream-events": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", - "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", "requires": { "stubs": "^3.0.0" } @@ -13888,6 +14704,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz", "integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=", + "optional": true, "requires": { "array-filter": "^1.0.0", "indexof": "0.0.1", @@ -13897,7 +14714,8 @@ "array-filter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" + "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", + "optional": true } } }, @@ -14210,6 +15028,17 @@ "yargs": "^8.0.2" }, "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, "ajv-keywords": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", diff --git a/package.json b/package.json index de0dbff..66d5b6a 100644 --- a/package.json +++ b/package.json @@ -5,10 +5,13 @@ "dependencies": { "@material-ui/core": "^3.1.0", "@material-ui/icons": "^3.0.1", + "ajv": "^6.0.0", "firebase": "^5.5.2", - "firebase-admin": "^6.0.0", + "firebase-admin": "^6.1.0", "flamelink": "^0.19.2", "google-maps-react": "^2.0.2", + "grpc": "^1.15.1", + "material-ui": "^1.0.0-beta.16", "material-ui-icons": "^1.0.0-beta.36", "moment": "^2.22.2", "react": "^16.5.1", diff --git a/src/firebase.js b/src/firebase.js index e9b517f..9649117 100644 --- a/src/firebase.js +++ b/src/firebase.js @@ -1,16 +1,13 @@ import firebase from 'firebase/app'; import 'firebase/database'; import 'firebase/storage'; +import * as admin from 'firebase-admin'; -const config = { - apiKey: "AIzaSyAYf9AbeYwLY892NRiQfn0AMtG9xIFAJbo", - authDomain: "marten-application.firebaseapp.com", - databaseURL: "https://marten-application.firebaseio.com", - projectId: "marten-application", - storageBucket: "marten-application.appspot.com", - messagingSenderId: "659856510832" -}; +var serviceAccount = require('./keys/marten-application-firebase-adminsdk-zvjmp-c177ac648f.json'); -const firebaseApp = firebase.initializeApp(config); +const firebaseApp = admin.initializeApp({ + credential: admin.credential.cert(serviceAccount), + databaseURL: 'https://marten-application.firebaseio.com' + }); export default firebase; \ No newline at end of file diff --git a/src/flamelink.js b/src/flamelink.js index 4ac805f..2e22f1d 100644 --- a/src/flamelink.js +++ b/src/flamelink.js @@ -1,6 +1,6 @@ import firebaseApp from './firebase.js'; import flamelink from 'flamelink'; -const flamelinkApp = flamelink({ firebaseApp }); +const flamelinkApp = flamelink({ firebaseApp, isAdminApp: true }); export default flamelinkApp; \ No newline at end of file diff --git a/src/keys/marten-application-firebase-adminsdk-zvjmp-c177ac648f.json b/src/keys/marten-application-firebase-adminsdk-zvjmp-c177ac648f.json new file mode 100644 index 0000000..4b5072b --- /dev/null +++ b/src/keys/marten-application-firebase-adminsdk-zvjmp-c177ac648f.json @@ -0,0 +1,12 @@ +{ + "type": "service_account", + "project_id": "marten-application", + "private_key_id": "c177ac648f803d7e5e4398e4d7302ea4e6972c79", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDygOhbLLjSDLAd\n9B29umgVUrAn4/a1lGE04j6aQrjbgLa/NjU9u12dRiiOFDLX3QjEWFBcLYrU4Eb9\ncD48TJug+/Nc0nFjFk2GATmzlFnMzOaMCbH844TBX34h0UEgPt+iQh7g3cEH685a\nm0zlDXGOh88POvcTtez8S+2UMU6J+6mNh/ErRli3lTuD4zTGpZA3SyX8Us8aoFaG\njaC7P9T10M5kZWmGZMg6DiywX9xnjWPCI5hp1XE3SkyRQ1vpsA9lCPZPxb5QS2yM\nTYBd4Qh90kbEA0jVPIjIt8JwboFAV9UCuG4SQ44WnoSikvVYhU4esBIsmsKRD7bj\nrFATV5hxAgMBAAECggEABkfsVL22mwKm/lyd91W8V8aKr1rQP1Vcs+1i9pUBM5a8\nrPzNAdiAMQhR2TW42CZWgXrh2HRZxOAa+JobU42ep4uVCt+8vfa0OvL9zQrb7VH2\ni/SdlH2qWOWVt0+jnJ+iRFIq+XMm6nMLJwXAFuvrZ7gY5uWlpAAdl26KRJEHHive\niPK2Ri0bFqZ/xSSaNYmPKa4xRNKgpvarNcJPuiOdpzVq1G3S1TC7/DcYeWHxxHry\nPh/9RKPX5H5zzaObBw8jTMqFouh/BPw1CU5QLoHe1ApVvQ4ypkWf377/2eQArc77\ndGl0S0OI64UTb5ZQ5vE8KEVTdE/bjUhlJknQhZhZwQKBgQD6rtZEjMps0smTwfEY\nDmjuSjx6AbjiBtv1c8L3A5nmS3qz/hSqLoWp7EWvQyHRywV1nAXZJB1LNNUaFuio\nfgeC4xPgkd2Eurdj5VkAMeHpaX+Y5tBmm+U04lNjh6JsRFQYMMxgdGiySgbBFfjq\nddg67yK4uTMKlhETS1xzq+MzsQKBgQD3pahufZFdA47hEwmr0CqnwLhzXT2otNFo\ncit6rgdycEynCh2egq8Cj7cPoHmx1IRtiiNORetYb1A/6j6zDm3uXo+4Mxb13Ipe\ncgXMmLBkZurA4iNdq8wOSjHLj27IWfoG3hhmTQ2SJVRdi4bhkfWrDmAPtZ9otKgZ\nlwQ/A2+gwQKBgADNop4hnVxv6Hlyu6UKFsf8sOjrLH586yOENXG5LzsPrtr4y3Qo\nJgF/YlHHc0pKzj+sOlCRzw44ox4sSJ6RmNCQjbXAgec0+fV1/K0Fe+XVkrUYuD47\n7aYXu5CsFJcoOOTC80Sz2soHdrITsfJ+Yiz+KyxQW5uDE5buPOOZ/2ZhAoGBALdF\nxMnIaeyxNmtBgJXDn924FYljBr+02Yj3fU/0PRSnIUM5jEQDqOs3Wp3ZAFbn1P2Q\nDqLdwdcXwgcbHz26Pwb6ulfyj1py1YAh2ELa+SfEtpT6hnvLKV+l7wYb5zukwxGU\nCfCjs5hlwfLc0HxdXbczE0ps+kUt9X3CsmTD8TfBAoGBAJWU+HjJgSAOQBBy7Akw\nYY0sFrRoGlzZHFudLSloarH8csMVxWmLsz4CET6lMRmJbYipEQd5FKxhkfXJvcEn\nTc7x0+5fyAe3zBW4NgchxjWHFLjCNFX+gy4hZFpCbgSg/5EOgNzfKexqgcZR+nzv\nVjcQAU5jOlcZ6MFpDJJNK30k\n-----END PRIVATE KEY-----\n", + "client_email": "firebase-adminsdk-zvjmp@marten-application.iam.gserviceaccount.com", + "client_id": "100533957773437883097", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-zvjmp%40marten-application.iam.gserviceaccount.com" +} From d975fbfe2af61e818a98902f071d8f44326feabc Mon Sep 17 00:00:00 2001 From: ajmaley Date: Tue, 30 Oct 2018 20:20:05 -0400 Subject: [PATCH 07/16] Initializing firebaseApp using firebase-admin sdk --- src/firebase.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/firebase.js b/src/firebase.js index 9649117..2dee48a 100644 --- a/src/firebase.js +++ b/src/firebase.js @@ -1,13 +1,13 @@ -import firebase from 'firebase/app'; -import 'firebase/database'; -import 'firebase/storage'; import * as admin from 'firebase-admin'; var serviceAccount = require('./keys/marten-application-firebase-adminsdk-zvjmp-c177ac648f.json'); -const firebaseApp = admin.initializeApp({ - credential: admin.credential.cert(serviceAccount), - databaseURL: 'https://marten-application.firebaseio.com' - }); +const firebaseConfig = { + credential: admin.credential.cert(serviceAccount), + databaseURL: "https://marten-application.firebaseio.com", + storageBucket: "marten-application.appspot.com" +}; -export default firebase; \ No newline at end of file +const firebaseApp = admin.initializeApp(firebaseConfig); + +export default 'firebase-admin'; \ No newline at end of file From ce0d5d2e1ebec79816aa1d1217adc0e7a2a216c6 Mon Sep 17 00:00:00 2001 From: ajmaley Date: Tue, 30 Oct 2018 23:56:24 -0400 Subject: [PATCH 08/16] Can now grab text and images from firebase using Flamelink's API. I've also included a solution for adding different header styles. Next on the agenda is styling the Info page and filling it with sponsor's data. --- src/components/FlameLinkImage.js | 30 ++++++++++++++++ src/components/FlameLinkStructure.js | 51 +++++++++++++++++----------- src/components/Layout.js | 3 +- src/firebase.js | 21 +++++++----- src/flamelink.js | 2 +- src/pages/Info.js | 2 +- 6 files changed, 77 insertions(+), 32 deletions(-) create mode 100644 src/components/FlameLinkImage.js diff --git a/src/components/FlameLinkImage.js b/src/components/FlameLinkImage.js new file mode 100644 index 0000000..08a4d03 --- /dev/null +++ b/src/components/FlameLinkImage.js @@ -0,0 +1,30 @@ +import React, { Component } from 'react'; +import flamelinkApp from '../flamelink.js'; + +class FlameLinkImage extends Component { + constructor() { + super(); + + this.state = { + mediaURL: '', + } + } + + getImage(imagePath){ + flamelinkApp.storage.getURL(imagePath) + .then(url => this.setState({ + mediaURL: url + })) + return + } + + render() { + return( +
+ {this.getImage(this.props.content)} +
+ ); + } +} + +export default FlameLinkImage; \ No newline at end of file diff --git a/src/components/FlameLinkStructure.js b/src/components/FlameLinkStructure.js index ccf4c7d..028190a 100644 --- a/src/components/FlameLinkStructure.js +++ b/src/components/FlameLinkStructure.js @@ -1,8 +1,9 @@ -import React, { Component, Fragment} from 'react'; +import React, { Component} from 'react'; import Grid from '@material-ui/core/Grid'; -import Paper from '@material-ui/core/Paper'; import Typography from '@material-ui/core/Typography'; import flamelinkApp from '../flamelink.js'; +import FlameLinkImage from './FlameLinkImage'; + class FlameLinkStructure extends Component { constructor() { @@ -16,18 +17,37 @@ class FlameLinkStructure extends Component { .then(result => this.setState({ schemaContent: result })) + } - getContent(key, type){ - if (type == 'text'){ - return this.state.schemaContent[key] - } - if (type == 'media'){ - for (var val in this.state.schemaContent[key]){ - console.log(this.state.schemaContent[key][val]); - flamelinkApp.storage.getURL(this.state.schemaContent[key][val]) - .then(url => console.log('File URL:', url)) + getContent(key, type, description){ + if (type === 'text'){ + if(description === 'h1'){ + return ( + + {this.state.schemaContent[key]} + + ) } + if(description === 'h2'){ + return ( + + {this.state.schemaContent[key]} + + ) + } + else{ + return ( + + {this.state.schemaContent[key]} + + ) + } + } + if (type === 'media'){ + for (var val in this.state.schemaContent[key]){ + return + } } } @@ -38,14 +58,7 @@ class FlameLinkStructure extends Component { const xs = this.props.field.gridColumns.xs; return( - - - HEADER - - - {this.getContent(this.props.field.key, this.props.type)} - - + {this.getContent(this.props.field.key, this.props.type, this.props.field.description)} ); } diff --git a/src/components/Layout.js b/src/components/Layout.js index c53272a..7d9ebca 100644 --- a/src/components/Layout.js +++ b/src/components/Layout.js @@ -1,7 +1,6 @@ import React, { Component} from 'react'; import FlameLinkStructure from './FlameLinkStructure'; import Grid from '@material-ui/core/Grid'; -import flamelinkApp from '../flamelink.js'; class Layout extends Component { @@ -14,7 +13,7 @@ class Layout extends Component { } createComponents(num){ - return + return } render() { diff --git a/src/firebase.js b/src/firebase.js index 2dee48a..6e6b6b2 100644 --- a/src/firebase.js +++ b/src/firebase.js @@ -1,13 +1,16 @@ -import * as admin from 'firebase-admin'; +import firebase from 'firebase/app'; +import 'firebase/database'; +import 'firebase/storage'; -var serviceAccount = require('./keys/marten-application-firebase-adminsdk-zvjmp-c177ac648f.json'); - -const firebaseConfig = { - credential: admin.credential.cert(serviceAccount), - databaseURL: "https://marten-application.firebaseio.com", - storageBucket: "marten-application.appspot.com" +const config = { + apiKey: "AIzaSyAYf9AbeYwLY892NRiQfn0AMtG9xIFAJbo", + authDomain: "marten-application.firebaseapp.com", + databaseURL: "https://marten-application.firebaseio.com", + projectId: "marten-application", + storageBucket: "marten-application.appspot.com", + messagingSenderId: "659856510832" }; -const firebaseApp = admin.initializeApp(firebaseConfig); +firebase.initializeApp(config); -export default 'firebase-admin'; \ No newline at end of file +export default firebase; \ No newline at end of file diff --git a/src/flamelink.js b/src/flamelink.js index 2e22f1d..4ac805f 100644 --- a/src/flamelink.js +++ b/src/flamelink.js @@ -1,6 +1,6 @@ import firebaseApp from './firebase.js'; import flamelink from 'flamelink'; -const flamelinkApp = flamelink({ firebaseApp, isAdminApp: true }); +const flamelinkApp = flamelink({ firebaseApp }); export default flamelinkApp; \ No newline at end of file diff --git a/src/pages/Info.js b/src/pages/Info.js index 72fa1cd..62edbe0 100644 --- a/src/pages/Info.js +++ b/src/pages/Info.js @@ -11,7 +11,7 @@ class Info extends Component { schemaDetails: '', } - flamelinkApp.schemas.getFields('martenSchemaDemo', { fields: [ 'title', 'key', 'type', 'gridColumns' ] }) + flamelinkApp.schemas.getFields('martenSchemaDemo', { fields: [ 'title', 'key', 'type', 'gridColumns', 'description' ] }) .then(result => this.setState({ schemaDetails: result })) From 6ecf626659817b7955eaff90010500eecc1ad0b1 Mon Sep 17 00:00:00 2001 From: ajmaley Date: Thu, 1 Nov 2018 20:59:47 -0400 Subject: [PATCH 09/16] Added ability to parse fieldset data. Added some basic stylings for content. Cleaned up code. --- ...yout.js => FlameLinkComponentCreations.js} | 6 +- src/components/FlameLinkFieldSet.js | 31 ++++++++ src/components/FlameLinkFieldSetContent.js | 43 +++++++++++ src/components/FlameLinkImage.js | 2 +- src/components/FlameLinkStructure.js | 77 ++++++++++++++++--- ...on-firebase-adminsdk-zvjmp-c177ac648f.json | 12 --- src/pages/Info.js | 8 +- 7 files changed, 148 insertions(+), 31 deletions(-) rename src/components/{Layout.js => FlameLinkComponentCreations.js} (72%) create mode 100644 src/components/FlameLinkFieldSet.js create mode 100644 src/components/FlameLinkFieldSetContent.js delete mode 100644 src/keys/marten-application-firebase-adminsdk-zvjmp-c177ac648f.json diff --git a/src/components/Layout.js b/src/components/FlameLinkComponentCreations.js similarity index 72% rename from src/components/Layout.js rename to src/components/FlameLinkComponentCreations.js index 7d9ebca..34ee9f4 100644 --- a/src/components/Layout.js +++ b/src/components/FlameLinkComponentCreations.js @@ -2,7 +2,7 @@ import React, { Component} from 'react'; import FlameLinkStructure from './FlameLinkStructure'; import Grid from '@material-ui/core/Grid'; -class Layout extends Component { +class FlameLinkComponentCreations extends Component { getSchemaFieldData(schemaData){ var arr = []; @@ -13,7 +13,7 @@ class Layout extends Component { } createComponents(num){ - return + return } render() { @@ -25,4 +25,4 @@ class Layout extends Component { } } -export default Layout; \ No newline at end of file +export default FlameLinkComponentCreations; \ No newline at end of file diff --git a/src/components/FlameLinkFieldSet.js b/src/components/FlameLinkFieldSet.js new file mode 100644 index 0000000..2954db5 --- /dev/null +++ b/src/components/FlameLinkFieldSet.js @@ -0,0 +1,31 @@ +import React, { Component} from 'react'; +import Grid from '@material-ui/core/Grid'; +import FlameLinkFieldSetContent from './FlameLinkFieldSetContent'; + + +class FlameLinkFieldSet extends Component { + + + getFieldSetContent(content1, content2){ + var arr = []; + for (var val in content2){ + arr.push(val); + } + var arrContent = [content1, content2]; + return arr.map(this.createFieldSetComponents, arrContent); + } + + createFieldSetComponents(num){ + return + } + + render() { + return( + + {this.getFieldSetContent(this.props.field, this.props.field2)} + + ); + } +} + +export default FlameLinkFieldSet; \ No newline at end of file diff --git a/src/components/FlameLinkFieldSetContent.js b/src/components/FlameLinkFieldSetContent.js new file mode 100644 index 0000000..2e32b0a --- /dev/null +++ b/src/components/FlameLinkFieldSetContent.js @@ -0,0 +1,43 @@ +import React, { Component} from 'react'; +import Grid from '@material-ui/core/Grid'; +import Typography from '@material-ui/core/Typography'; +import FlameLinkImage from './FlameLinkImage'; + +class FlameLinkFieldSetContent extends Component { + + getContent(key, type, description, fieldsetContent){ + if (type === 'text'){ + return ( + + {fieldsetContent[key]} + + ) + } + if(type === 'textarea'){ + return ( + + {fieldsetContent[key]} + + ) + } + if (type === 'media'){ + for (var val in fieldsetContent[key]){ + return + } + } + } + + render() { + const lg = this.props.field.gridColumns.lg; + const md = this.props.field.gridColumns.md; + const sm = this.props.field.gridColumns.sm; + const xs = this.props.field.gridColumns.xs; + return( + + {this.getContent(this.props.fieldKey, this.props.type, this.props.field.description, this.props.data)} + + ); + } +} + +export default FlameLinkFieldSetContent; \ No newline at end of file diff --git a/src/components/FlameLinkImage.js b/src/components/FlameLinkImage.js index 08a4d03..a40cb61 100644 --- a/src/components/FlameLinkImage.js +++ b/src/components/FlameLinkImage.js @@ -15,7 +15,7 @@ class FlameLinkImage extends Component { .then(url => this.setState({ mediaURL: url })) - return + return } render() { diff --git a/src/components/FlameLinkStructure.js b/src/components/FlameLinkStructure.js index 028190a..e1aeb7f 100644 --- a/src/components/FlameLinkStructure.js +++ b/src/components/FlameLinkStructure.js @@ -1,9 +1,18 @@ import React, { Component} from 'react'; import Grid from '@material-ui/core/Grid'; import Typography from '@material-ui/core/Typography'; +import { withStyles } from '@material-ui/core/styles'; import flamelinkApp from '../flamelink.js'; import FlameLinkImage from './FlameLinkImage'; +import FlameLinkFieldSet from './FlameLinkFieldSet'; +const styles = theme => ({ + flamelinkItem: { + paddingRight: 20, + paddingLeft: 20, + paddingTop: 20, + }, + }); class FlameLinkStructure extends Component { constructor() { @@ -13,55 +22,99 @@ class FlameLinkStructure extends Component { schemaContent: '', } - flamelinkApp.content.get('martenSchemaDemo') + flamelinkApp.content.get(global.schemaName) .then(result => this.setState({ schemaContent: result })) - } - getContent(key, type, description){ + getContent(schemaField, key, type, description){ if (type === 'text'){ if(description === 'h1'){ return ( - - {this.state.schemaContent[key]} + + {this.state.schemaContent[key]} ) } if(description === 'h2'){ return ( - - {this.state.schemaContent[key]} + + {this.state.schemaContent[key]} + + ) + } + if(description === 'h3'){ + return ( + + {this.state.schemaContent[key]} + + ) + } + if(description === 'h4'){ + return ( + + {this.state.schemaContent[key]} + + ) + } + if(description === 'h5'){ + return ( + + {this.state.schemaContent[key]} + + ) + } + if(description === 'h6'){ + return ( + + {this.state.schemaContent[key]} ) } else{ return ( - - {this.state.schemaContent[key]} + + {this.state.schemaContent[key]} ) } } + if(type === 'textarea'){ + return ( + + {this.state.schemaContent[key]} + + ) + } if (type === 'media'){ for (var val in this.state.schemaContent[key]){ return } } + if (type === 'fieldset'){ + if(this.state.schemaContent === ''){ + return + } + else{ + return + } + } } render() { + const { classes } = this.props; + const lg = this.props.field.gridColumns.lg; const md = this.props.field.gridColumns.md; const sm = this.props.field.gridColumns.sm; const xs = this.props.field.gridColumns.xs; return( - - {this.getContent(this.props.field.key, this.props.type, this.props.field.description)} + + {this.getContent(this.props.field, this.props.field.key, this.props.type, this.props.field.description)} ); } } -export default FlameLinkStructure; \ No newline at end of file +export default withStyles(styles)(FlameLinkStructure); \ No newline at end of file diff --git a/src/keys/marten-application-firebase-adminsdk-zvjmp-c177ac648f.json b/src/keys/marten-application-firebase-adminsdk-zvjmp-c177ac648f.json deleted file mode 100644 index 4b5072b..0000000 --- a/src/keys/marten-application-firebase-adminsdk-zvjmp-c177ac648f.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "service_account", - "project_id": "marten-application", - "private_key_id": "c177ac648f803d7e5e4398e4d7302ea4e6972c79", - "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDygOhbLLjSDLAd\n9B29umgVUrAn4/a1lGE04j6aQrjbgLa/NjU9u12dRiiOFDLX3QjEWFBcLYrU4Eb9\ncD48TJug+/Nc0nFjFk2GATmzlFnMzOaMCbH844TBX34h0UEgPt+iQh7g3cEH685a\nm0zlDXGOh88POvcTtez8S+2UMU6J+6mNh/ErRli3lTuD4zTGpZA3SyX8Us8aoFaG\njaC7P9T10M5kZWmGZMg6DiywX9xnjWPCI5hp1XE3SkyRQ1vpsA9lCPZPxb5QS2yM\nTYBd4Qh90kbEA0jVPIjIt8JwboFAV9UCuG4SQ44WnoSikvVYhU4esBIsmsKRD7bj\nrFATV5hxAgMBAAECggEABkfsVL22mwKm/lyd91W8V8aKr1rQP1Vcs+1i9pUBM5a8\nrPzNAdiAMQhR2TW42CZWgXrh2HRZxOAa+JobU42ep4uVCt+8vfa0OvL9zQrb7VH2\ni/SdlH2qWOWVt0+jnJ+iRFIq+XMm6nMLJwXAFuvrZ7gY5uWlpAAdl26KRJEHHive\niPK2Ri0bFqZ/xSSaNYmPKa4xRNKgpvarNcJPuiOdpzVq1G3S1TC7/DcYeWHxxHry\nPh/9RKPX5H5zzaObBw8jTMqFouh/BPw1CU5QLoHe1ApVvQ4ypkWf377/2eQArc77\ndGl0S0OI64UTb5ZQ5vE8KEVTdE/bjUhlJknQhZhZwQKBgQD6rtZEjMps0smTwfEY\nDmjuSjx6AbjiBtv1c8L3A5nmS3qz/hSqLoWp7EWvQyHRywV1nAXZJB1LNNUaFuio\nfgeC4xPgkd2Eurdj5VkAMeHpaX+Y5tBmm+U04lNjh6JsRFQYMMxgdGiySgbBFfjq\nddg67yK4uTMKlhETS1xzq+MzsQKBgQD3pahufZFdA47hEwmr0CqnwLhzXT2otNFo\ncit6rgdycEynCh2egq8Cj7cPoHmx1IRtiiNORetYb1A/6j6zDm3uXo+4Mxb13Ipe\ncgXMmLBkZurA4iNdq8wOSjHLj27IWfoG3hhmTQ2SJVRdi4bhkfWrDmAPtZ9otKgZ\nlwQ/A2+gwQKBgADNop4hnVxv6Hlyu6UKFsf8sOjrLH586yOENXG5LzsPrtr4y3Qo\nJgF/YlHHc0pKzj+sOlCRzw44ox4sSJ6RmNCQjbXAgec0+fV1/K0Fe+XVkrUYuD47\n7aYXu5CsFJcoOOTC80Sz2soHdrITsfJ+Yiz+KyxQW5uDE5buPOOZ/2ZhAoGBALdF\nxMnIaeyxNmtBgJXDn924FYljBr+02Yj3fU/0PRSnIUM5jEQDqOs3Wp3ZAFbn1P2Q\nDqLdwdcXwgcbHz26Pwb6ulfyj1py1YAh2ELa+SfEtpT6hnvLKV+l7wYb5zukwxGU\nCfCjs5hlwfLc0HxdXbczE0ps+kUt9X3CsmTD8TfBAoGBAJWU+HjJgSAOQBBy7Akw\nYY0sFrRoGlzZHFudLSloarH8csMVxWmLsz4CET6lMRmJbYipEQd5FKxhkfXJvcEn\nTc7x0+5fyAe3zBW4NgchxjWHFLjCNFX+gy4hZFpCbgSg/5EOgNzfKexqgcZR+nzv\nVjcQAU5jOlcZ6MFpDJJNK30k\n-----END PRIVATE KEY-----\n", - "client_email": "firebase-adminsdk-zvjmp@marten-application.iam.gserviceaccount.com", - "client_id": "100533957773437883097", - "auth_uri": "https://accounts.google.com/o/oauth2/auth", - "token_uri": "https://oauth2.googleapis.com/token", - "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", - "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-zvjmp%40marten-application.iam.gserviceaccount.com" -} diff --git a/src/pages/Info.js b/src/pages/Info.js index 62edbe0..1642662 100644 --- a/src/pages/Info.js +++ b/src/pages/Info.js @@ -1,17 +1,19 @@ import React, { Component, Fragment } from 'react'; import Typography from '@material-ui/core/Typography'; -import Layout from '../components/Layout'; +import FlameLinkComponentCreations from '../components/FlameLinkComponentCreations'; import flamelinkApp from '../flamelink.js'; class Info extends Component { constructor() { super(); + global.schemaName = 'martenSchemaDemo'; + this.state = { schemaDetails: '', } - flamelinkApp.schemas.getFields('martenSchemaDemo', { fields: [ 'title', 'key', 'type', 'gridColumns', 'description' ] }) + flamelinkApp.schemas.getFields(global.schemaName, { fields: [ 'title', 'key', 'type', 'gridColumns', 'description', 'options' ] }) .then(result => this.setState({ schemaDetails: result })) @@ -27,7 +29,7 @@ class Info extends Component { - + From 035608a19b2f6d09cadd3c9025666293e65a5b41 Mon Sep 17 00:00:00 2001 From: ajmaley Date: Thu, 1 Nov 2018 21:08:50 -0400 Subject: [PATCH 10/16] Added padding for fieldset data --- src/components/FlameLinkFieldSetContent.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/components/FlameLinkFieldSetContent.js b/src/components/FlameLinkFieldSetContent.js index 2e32b0a..61db810 100644 --- a/src/components/FlameLinkFieldSetContent.js +++ b/src/components/FlameLinkFieldSetContent.js @@ -1,8 +1,15 @@ import React, { Component} from 'react'; import Grid from '@material-ui/core/Grid'; import Typography from '@material-ui/core/Typography'; +import { withStyles } from '@material-ui/core/styles'; import FlameLinkImage from './FlameLinkImage'; +const styles = theme => ({ + flamelinkFieldSetItem: { + paddingBottom: 10, + }, + }); + class FlameLinkFieldSetContent extends Component { getContent(key, type, description, fieldsetContent){ @@ -28,16 +35,18 @@ class FlameLinkFieldSetContent extends Component { } render() { + const { classes } = this.props; + const lg = this.props.field.gridColumns.lg; const md = this.props.field.gridColumns.md; const sm = this.props.field.gridColumns.sm; const xs = this.props.field.gridColumns.xs; return( - + {this.getContent(this.props.fieldKey, this.props.type, this.props.field.description, this.props.data)} ); } } -export default FlameLinkFieldSetContent; \ No newline at end of file +export default withStyles(styles)(FlameLinkFieldSetContent); \ No newline at end of file From 4fba3db3dbf641ab9b86f0d669a2d029e0919773 Mon Sep 17 00:00:00 2001 From: ajmaley Date: Thu, 1 Nov 2018 21:19:34 -0400 Subject: [PATCH 11/16] Added FlameLink to Homepage. --- src/pages/Home.js | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/pages/Home.js b/src/pages/Home.js index 76e223f..74249d8 100644 --- a/src/pages/Home.js +++ b/src/pages/Home.js @@ -1,7 +1,23 @@ -import React, { Component } from 'react'; +import React, { Component, Fragment } from 'react'; import Typography from '@material-ui/core/Typography'; +import FlameLinkComponentCreations from '../components/FlameLinkComponentCreations'; +import flamelinkApp from '../flamelink.js'; class Home extends Component { + constructor() { + super(); + + global.schemaName = 'martenInfo'; + + this.state = { + schemaDetails: '', + } + + flamelinkApp.schemas.getFields(global.schemaName, { fields: [ 'title', 'key', 'type', 'gridColumns', 'description', 'options' ] }) + .then(result => this.setState({ + schemaDetails: result + })) + } render() { return ( @@ -9,6 +25,9 @@ class Home extends Component { Home + + + ); } From 7df07ff7c418ed14df1de7c6edc11890c5476440 Mon Sep 17 00:00:00 2001 From: ajmaley Date: Thu, 1 Nov 2018 22:51:05 -0400 Subject: [PATCH 12/16] Worked on Flamelink stylings for images but didn't really get anywhere --- src/components/FlameLinkImage.js | 5 +++-- src/pages/Home.js | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/FlameLinkImage.js b/src/components/FlameLinkImage.js index a40cb61..07521cc 100644 --- a/src/components/FlameLinkImage.js +++ b/src/components/FlameLinkImage.js @@ -1,6 +1,7 @@ import React, { Component } from 'react'; import flamelinkApp from '../flamelink.js'; + class FlameLinkImage extends Component { constructor() { super(); @@ -15,13 +16,13 @@ class FlameLinkImage extends Component { .then(url => this.setState({ mediaURL: url })) - return + return } render() { return(
- {this.getImage(this.props.content)} + {this.getImage(this.props.content)}
); } diff --git a/src/pages/Home.js b/src/pages/Home.js index 74249d8..1a4336a 100644 --- a/src/pages/Home.js +++ b/src/pages/Home.js @@ -7,7 +7,7 @@ class Home extends Component { constructor() { super(); - global.schemaName = 'martenInfo'; + global.schemaName = 'martenHome'; this.state = { schemaDetails: '', From dea74f505909e8804e928e1bc27846801beeb5b7 Mon Sep 17 00:00:00 2001 From: wildscotsmen Date: Fri, 2 Nov 2018 00:07:48 -0400 Subject: [PATCH 13/16] Removed to-do Typography in Info page. --- src/pages/Info.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/pages/Info.js b/src/pages/Info.js index 1642662..d55633f 100644 --- a/src/pages/Info.js +++ b/src/pages/Info.js @@ -1,5 +1,4 @@ import React, { Component, Fragment } from 'react'; -import Typography from '@material-ui/core/Typography'; import FlameLinkComponentCreations from '../components/FlameLinkComponentCreations'; import flamelinkApp from '../flamelink.js'; @@ -23,11 +22,6 @@ class Info extends Component { return (
- - - Info - - From 58a892bfa8da0e4c181146528c764aa8664c216d Mon Sep 17 00:00:00 2001 From: ajmaley Date: Sat, 3 Nov 2018 14:28:36 -0400 Subject: [PATCH 14/16] Added ability to center images, resizing images (which I may need to revisit later), removed memory leak in FlamelinkImage.js --- src/components/FlameLinkImage.js | 14 ++++++-------- src/components/FlameLinkStructure.js | 5 ++++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/components/FlameLinkImage.js b/src/components/FlameLinkImage.js index 07521cc..aede55f 100644 --- a/src/components/FlameLinkImage.js +++ b/src/components/FlameLinkImage.js @@ -1,4 +1,5 @@ import React, { Component } from 'react'; +import Typography from '@material-ui/core/Typography'; import flamelinkApp from '../flamelink.js'; @@ -9,21 +10,18 @@ class FlameLinkImage extends Component { this.state = { mediaURL: '', } - } - getImage(imagePath){ - flamelinkApp.storage.getURL(imagePath) + flamelinkApp.storage.getURL(global.mediaID) .then(url => this.setState({ mediaURL: url })) - return - } + } render() { return( -
- {this.getImage(this.props.content)} -
+ + + ); } } diff --git a/src/components/FlameLinkStructure.js b/src/components/FlameLinkStructure.js index e1aeb7f..470a592 100644 --- a/src/components/FlameLinkStructure.js +++ b/src/components/FlameLinkStructure.js @@ -17,6 +17,8 @@ const styles = theme => ({ class FlameLinkStructure extends Component { constructor() { super(); + + global.mediaID = ''; this.state = { schemaContent: '', @@ -89,7 +91,8 @@ class FlameLinkStructure extends Component { } if (type === 'media'){ for (var val in this.state.schemaContent[key]){ - return + global.mediaID = this.state.schemaContent[key][val]; + return } } if (type === 'fieldset'){ From f9186c31559e68a0a5ca6927a3b459fa08bd4598 Mon Sep 17 00:00:00 2001 From: ajmaley Date: Sat, 3 Nov 2018 15:34:11 -0400 Subject: [PATCH 15/16] Changed Info to About --- src/components/Main.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Main.js b/src/components/Main.js index 2bf188f..d943cf2 100644 --- a/src/components/Main.js +++ b/src/components/Main.js @@ -112,9 +112,9 @@ class ResponsiveDrawer extends React.Component { - this.nav('Info')}> + this.nav('About')}> - + From 7dd2fbfeaf3bd5464f024a319858d66700f4256b Mon Sep 17 00:00:00 2001 From: WildScotsmen Date: Sat, 3 Nov 2018 15:47:13 -0400 Subject: [PATCH 16/16] Fixed merge after effect. --- src/components/Main.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/components/Main.js b/src/components/Main.js index d943cf2..8ecb20a 100644 --- a/src/components/Main.js +++ b/src/components/Main.js @@ -199,9 +199,6 @@ class ResponsiveDrawer extends React.Component { {this.state.key === 'Easy-Quiz' && } {this.state.key === 'Medium-Quiz' && } {this.state.key === 'Hard-Quiz' && } - {this.state.key === 'Easy-Quiz' && } - {this.state.key === 'Medium-Quiz' && } - {this.state.key === 'Hard-Quiz' && }
);