From 830755a13f2da2708ac3c31e159686b216559f97 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Tue, 14 Aug 2018 15:53:05 +1000 Subject: [PATCH 001/246] Start hooking the UI up to the new model layer. --- index.js | 121 +- lib/Views/UserInterface.jsx | 12 +- package.json | 6 +- wwwroot/config.json | 2 +- wwwroot/init/simple.json | 9 + yarn.lock | 2811 ++++++++++++++++++++++++++++++++--- 6 files changed, 2713 insertions(+), 248 deletions(-) create mode 100644 wwwroot/init/simple.json diff --git a/index.js b/index.js index a991a530e4..fa61412460 100644 --- a/index.js +++ b/index.js @@ -13,15 +13,18 @@ import raiseErrorToUser from 'terriajs/lib/Models/raiseErrorToUser'; import registerAnalytics from 'terriajs/lib/Models/registerAnalytics'; import registerCatalogMembers from 'terriajs/lib/Models/registerCatalogMembers'; import registerCustomComponentTypes from 'terriajs/lib/ReactViews/Custom/registerCustomComponentTypes'; -import Terria from 'terriajs/lib/Models/Terria'; -import updateApplicationOnHashChange from 'terriajs/lib/ViewModels/updateApplicationOnHashChange'; -import updateApplicationOnMessageFromParentWindow from 'terriajs/lib/ViewModels/updateApplicationOnMessageFromParentWindow'; -import ViewState from 'terriajs/lib/ReactViewModels/ViewState'; -import BingMapsSearchProviderViewModel from 'terriajs/lib/ViewModels/BingMapsSearchProviderViewModel.js'; -import GazetteerSearchProviderViewModel from 'terriajs/lib/ViewModels/GazetteerSearchProviderViewModel.js'; -import GnafSearchProviderViewModel from 'terriajs/lib/ViewModels/GnafSearchProviderViewModel.js'; -import defined from 'terriajs-cesium/Source/Core/defined'; +import Terria from 'terriajs/lib/Models/TerriaNew'; +// import updateApplicationOnHashChange from 'terriajs/lib/ViewModels/updateApplicationOnHashChange'; +// import updateApplicationOnMessageFromParentWindow from 'terriajs/lib/ViewModels/updateApplicationOnMessageFromParentWindow'; +// import ViewState from 'terriajs/lib/ReactViewModels/ViewState'; +// import BingMapsSearchProviderViewModel from 'terriajs/lib/ViewModels/BingMapsSearchProviderViewModel.js'; +// import GazetteerSearchProviderViewModel from 'terriajs/lib/ViewModels/GazetteerSearchProviderViewModel.js'; +// import GnafSearchProviderViewModel from 'terriajs/lib/ViewModels/GnafSearchProviderViewModel.js'; +// import defined from 'terriajs-cesium/Source/Core/defined'; import render from './lib/Views/render'; +import { observable } from 'mobx'; +import CatalogMemberFactory from 'terriajs/lib/Models/CatalogMemberFactory'; +import WebMapServiceCatalogGroup from 'terriajs/lib/Models/WebMapServiceCatalogGroupNew'; // Register all types of catalog members in the core TerriaJS. If you only want to register a subset of them // (i.e. to reduce the size of your application if you don't actually use them all), feel free to copy a subset of @@ -39,10 +42,25 @@ var terria = new Terria(terriaOptions); registerCustomComponentTypes(terria); // Create the ViewState before terria.start so that errors have somewhere to go. -const viewState = new ViewState({ - terria: terria +// const viewState = new ViewState({ +// terria: terria +// }); +const viewState = observable({ + hideMapUi: function() {}, + searchState: { + catalogSearchText: '' + }, + explorerPanelIsVisible: false, + notifications: [], + activeTabCategory: 'data-catalog', + openAddData: function() { + this.explorerPanelIsVisible = true; + this.activeTabCategory = 'data-catalog'; + } }); +CatalogMemberFactory.register('wms-group', WebMapServiceCatalogGroup); + if (process.env.NODE_ENV === "development") { window.viewState = viewState; } @@ -65,55 +83,56 @@ terria.start({ raiseErrorToUser(terria, e); }).always(function() { try { - viewState.searchState.locationSearchProviders = [ - new BingMapsSearchProviderViewModel({ - terria: terria, - key: terria.configParameters.bingMapsKey - }), - new GazetteerSearchProviderViewModel({terria}), - new GnafSearchProviderViewModel({terria}) - ]; + // viewState.searchState.locationSearchProviders = [ + // new BingMapsSearchProviderViewModel({ + // terria: terria, + // key: terria.configParameters.bingMapsKey + // }), + // new GazetteerSearchProviderViewModel({terria}), + // new GnafSearchProviderViewModel({terria}) + // ]; // Automatically update Terria (load new catalogs, etc.) when the hash part of the URL changes. - updateApplicationOnHashChange(terria, window); - updateApplicationOnMessageFromParentWindow(terria, window); + // updateApplicationOnHashChange(terria, window); + // updateApplicationOnMessageFromParentWindow(terria, window); // Create the various base map options. - var createAustraliaBaseMapOptions = require('terriajs/lib/ViewModels/createAustraliaBaseMapOptions'); - var createGlobalBaseMapOptions = require('terriajs/lib/ViewModels/createGlobalBaseMapOptions'); - var selectBaseMap = require('terriajs/lib/ViewModels/selectBaseMap'); + // var createAustraliaBaseMapOptions = require('terriajs/lib/ViewModels/createAustraliaBaseMapOptions'); + // var createGlobalBaseMapOptions = require('terriajs/lib/ViewModels/createGlobalBaseMapOptions'); + // var selectBaseMap = require('terriajs/lib/ViewModels/selectBaseMap'); - var australiaBaseMaps = createAustraliaBaseMapOptions(terria); - var globalBaseMaps = createGlobalBaseMapOptions(terria, terria.configParameters.bingMapsKey); + // var australiaBaseMaps = createAustraliaBaseMapOptions(terria); + // var globalBaseMaps = createGlobalBaseMapOptions(terria, terria.configParameters.bingMapsKey); - var allBaseMaps = australiaBaseMaps.concat(globalBaseMaps); - selectBaseMap(terria, allBaseMaps, 'Bing Maps Aerial with Labels', true); + // var allBaseMaps = australiaBaseMaps.concat(globalBaseMaps); + // selectBaseMap(terria, allBaseMaps, 'Bing Maps Aerial with Labels', true); + const allBaseMaps = undefined; // Show a modal disclaimer before user can do anything else. - if (defined(terria.configParameters.globalDisclaimer)) { - var globalDisclaimer = terria.configParameters.globalDisclaimer; - var hostname = window.location.hostname; - if (globalDisclaimer.enableOnLocalhost || hostname.indexOf('localhost') === -1) { - var message = ''; - // Sometimes we want to show a preamble if the user is viewing a site other than the official production instance. - // This can be expressed as a devHostRegex ("any site starting with staging.") or a negative prodHostRegex ("any site not ending in .gov.au") - if (defined(globalDisclaimer.devHostRegex) && hostname.match(globalDisclaimer.devHostRegex) || - defined(globalDisclaimer.prodHostRegex) && !hostname.match(globalDisclaimer.prodHostRegex)) { - message += require('./lib/Views/DevelopmentDisclaimerPreamble.html'); - } - message += require('./lib/Views/GlobalDisclaimer.html'); - - var options = { - title: (globalDisclaimer.title !== undefined) ? globalDisclaimer.title : 'Warning', - confirmText: (globalDisclaimer.buttonTitle || "Ok"), - width: 600, - height: 550, - message: message, - horizontalPadding : 100 - }; - viewState.notifications.push(options); - } - } + // if (defined(terria.configParameters.globalDisclaimer)) { + // var globalDisclaimer = terria.configParameters.globalDisclaimer; + // var hostname = window.location.hostname; + // if (globalDisclaimer.enableOnLocalhost || hostname.indexOf('localhost') === -1) { + // var message = ''; + // // Sometimes we want to show a preamble if the user is viewing a site other than the official production instance. + // // This can be expressed as a devHostRegex ("any site starting with staging.") or a negative prodHostRegex ("any site not ending in .gov.au") + // if (defined(globalDisclaimer.devHostRegex) && hostname.match(globalDisclaimer.devHostRegex) || + // defined(globalDisclaimer.prodHostRegex) && !hostname.match(globalDisclaimer.prodHostRegex)) { + // message += require('./lib/Views/DevelopmentDisclaimerPreamble.html'); + // } + // message += require('./lib/Views/GlobalDisclaimer.html'); + + // var options = { + // title: (globalDisclaimer.title !== undefined) ? globalDisclaimer.title : 'Warning', + // confirmText: (globalDisclaimer.buttonTitle || "Ok"), + // width: 600, + // height: 550, + // message: message, + // horizontalPadding : 100 + // }; + // viewState.notifications.push(options); + // } + // } render(terria, allBaseMaps, viewState); } catch (e) { diff --git a/lib/Views/UserInterface.jsx b/lib/Views/UserInterface.jsx index 90705ad377..e318b6d4f4 100644 --- a/lib/Views/UserInterface.jsx +++ b/lib/Views/UserInterface.jsx @@ -25,16 +25,16 @@ export default function UserInterface(props) { return ( - - + {/* + */} - - - + {/* + + */} ); diff --git a/package.json b/package.json index 6c03de4a31..c6184519db 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,8 @@ { + "private": true, + "workspaces": [ + "packages/terriajs" + ], "name": "terriajs-map", "version": "0.0.1", "description": "Geospatial catalog explorer based on TerriaJS.", @@ -58,7 +62,7 @@ "semver": "^5.0.0", "style-loader": "^0.19.1", "svg-sprite-loader": "^3.4.0", - "terriajs": "6.0.4", + "terriajs": "6.0.5", "terriajs-catalog-editor": "^0.2.0", "terriajs-cesium": "1.41.2", "terriajs-schema": "latest", diff --git a/wwwroot/config.json b/wwwroot/config.json index d726925fdf..71010c7cb3 100644 --- a/wwwroot/config.json +++ b/wwwroot/config.json @@ -1,7 +1,7 @@ { /* Names of init files (in wwwroot/init), without the .json extension, to load by default */ initializationUrls: [ - "terria" + "simple" ], parameters: { bingMapsKey: "AkaOmRFtjAb71cXgLwAGtLbj2RpkPKtVqAIroFQsocfurCBILxIeAWPkil7hhRy_", diff --git a/wwwroot/init/simple.json b/wwwroot/init/simple.json new file mode 100644 index 0000000000..833613e24b --- /dev/null +++ b/wwwroot/init/simple.json @@ -0,0 +1,9 @@ +{ + "catalog": [ + { + "type": "wms-group", + "name": "Test", + "url": "https://programs.communications.gov.au/geoserver/ows" + } + ] +} diff --git a/yarn.lock b/yarn.lock index 8f59658e4e..58840e03d6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20,6 +20,58 @@ dependencies: "@mapbox/point-geometry" "~0.1.0" +"@types/cheerio@*": + version "0.22.8" + resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.8.tgz#5702f74f78b73e13f1eb1bd435c2c9de61a250d4" + +"@types/enzyme-adapter-react-16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.3.tgz#0cf7025b036694ca8d596fe38f24162e7117acf1" + dependencies: + "@types/enzyme" "*" + +"@types/enzyme@*", "@types/enzyme@^3.1.12": + version "3.1.13" + resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.1.13.tgz#4bbc5c81fa40c9fc7efee25c4a23cb37119a33ea" + dependencies: + "@types/cheerio" "*" + "@types/react" "*" + +"@types/jasmine@^2.8.8": + version "2.8.8" + resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.8.8.tgz#bf53a7d193ea8b03867a38bfdb4fbb0e0bf066c9" + +"@types/jquery@*": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.3.5.tgz#75cfec8c5ee38355d14296ada7e7e2fb8bd3ac2f" + +"@types/node@*": + version "10.5.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.5.7.tgz#960d9feb3ade2233bcc9843c918d740b4f78a7cf" + +"@types/node@^8.0.24": + version "8.10.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.24.tgz#302a8f0c00bd1bf364471b6687258617c5d410fc" + +"@types/prop-types@*": + version "15.5.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.5.tgz#17038dd322c2325f5da650a94d5f9974943625e3" + dependencies: + "@types/react" "*" + +"@types/react@*": + version "16.4.9" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.4.9.tgz#98b4dba5a0419dbd594f5dbbb2479e1e153431bb" + dependencies: + "@types/prop-types" "*" + csstype "^2.2.0" + +"@types/urijs@^1.15.38": + version "1.15.38" + resolved "https://registry.yarnpkg.com/@types/urijs/-/urijs-1.15.38.tgz#733ff7f18d42de60d0cdba40d8e92673b27cd5a4" + dependencies: + "@types/jquery" "*" + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -55,6 +107,10 @@ acorn@^5.0.0, acorn@^5.1.1: version "5.2.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7" +addressparser@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/addressparser/-/addressparser-1.0.1.tgz#47afbe1a2a9262191db6838e4fd1d39b40821746" + adjust-sourcemap-loader@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.1.0.tgz#412d92404eb61e4113635012cba53a33d008e0e2" @@ -67,6 +123,27 @@ adjust-sourcemap-loader@^1.1.0: object-path "^0.9.2" regex-parser "^2.2.1" +adm-zip@~0.4.3: + version "0.4.11" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.11.tgz#2aa54c84c4b01a9d0fb89bb11982a51f13e3d62a" + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + +agent-base@2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7" + dependencies: + extend "~3.0.0" + semver "~5.0.1" + +agent-base@4, agent-base@^4.1.0, agent-base@^4.2.0, agent-base@~4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + dependencies: + es6-promisify "^5.0.0" + ajv-keywords@^2.0.0, ajv-keywords@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" @@ -99,10 +176,24 @@ alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" +amd-loader@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/amd-loader/-/amd-loader-0.0.8.tgz#1022928040e567e8e6a6fb58bda052f819189206" + amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" +amqplib@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/amqplib/-/amqplib-0.5.2.tgz#d2d7313c7ffaa4d10bcf1e6252de4591b6cc7b63" + dependencies: + bitsyntax "~0.0.4" + bluebird "^3.4.6" + buffer-more-ints "0.0.2" + readable-stream "1.x >=1.1.9" + safe-buffer "^5.0.1" + ansi-escape-sequences@^2.2.1, ansi-escape-sequences@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/ansi-escape-sequences/-/ansi-escape-sequences-2.2.2.tgz#174c78d6f8b7de75f8957ae81c7f72210c701635" @@ -143,6 +234,19 @@ anymatch@^1.3.0: micromatch "^2.1.5" normalize-path "^2.0.0" +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +"apparatus@>= 0.0.9": + version "0.0.10" + resolved "https://registry.yarnpkg.com/apparatus/-/apparatus-0.0.10.tgz#81ea756772ada77863db54ceee8202c109bdca3e" + dependencies: + sylvester ">= 0.0.8" + aproba@^1.0.3: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -158,6 +262,19 @@ archiver-utils@^1.3.0: normalize-path "^2.0.0" readable-stream "^2.0.0" +archiver@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-2.1.1.tgz#ff662b4a78201494a3ee544d3a33fe7496509ebc" + dependencies: + archiver-utils "^1.3.0" + async "^2.0.0" + buffer-crc32 "^0.2.1" + glob "^7.0.0" + lodash "^4.8.0" + readable-stream "^2.0.0" + tar-stream "^1.5.0" + zip-stream "^1.2.0" + archiver@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/archiver/-/archiver-1.3.0.tgz#4f2194d6d8f99df3f531e6881f14f15d55faaf22" @@ -244,6 +361,10 @@ array-includes@^3.0.3: define-properties "^1.1.2" es-abstract "^1.7.0" +array-slice@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + array-slice@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.0.0.tgz#e73034f00dcc1f40876008fd20feae77bd4b7c2f" @@ -282,6 +403,18 @@ array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" +array.prototype.flat@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz#812db8f02cad24d3fab65dd67eabe3b8903494a4" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.10.0" + function-bind "^1.1.1" + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + arrify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -316,6 +449,14 @@ assert@^1.1.1, assert@^1.3.0: dependencies: util "0.10.3" +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + +ast-types@0.x.x: + version "0.11.5" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.5.tgz#9890825d660c03c28339f315e9fa0a360e31ec28" + async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" @@ -324,6 +465,16 @@ async-foreach@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + +async@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/async/-/async-2.0.1.tgz#b709cc0280a9c36f09f4536be823c838a9049e25" + dependencies: + lodash "^4.8.0" + async@^1.4.0, async@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -334,7 +485,13 @@ async@^2.0.0, async@^2.1.2, async@^2.1.5, async@^2.4.1: dependencies: lodash "^4.14.0" -async@~0.2.10: +async@^2.5.0, async@~2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" + dependencies: + lodash "^4.17.10" + +async@~0.2.10, async@~0.2.6: version "0.2.10" resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" @@ -388,6 +545,12 @@ aws4@^1.2.1, aws4@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" +axios@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.15.3.tgz#2c9d638b2e191a08ea1d6cc988eadd6ba5bdc053" + dependencies: + follow-redirects "1.0.0" + babel-code-frame@^6.11.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -934,10 +1097,18 @@ babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26 lodash "^4.17.4" to-fast-properties "^1.0.3" +babylon@7.0.0-beta.19: + version "7.0.0-beta.19" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.19.tgz#e928c7e807e970e0536b078ab3e0c48f9e052503" + babylon@^6.17.0, babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + balanced-match@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" @@ -952,10 +1123,18 @@ base-x@^2.0.4: dependencies: safe-buffer "^5.0.1" +base64-arraybuffer@0.1.5, base64-arraybuffer@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + base64-js@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -992,6 +1171,12 @@ beeper@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + dependencies: + callsite "1.0.0" + big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" @@ -1000,26 +1185,42 @@ binary-extensions@^1.0.0: version "1.10.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" -binary@^0.3.0: +"binary@>= 0.3.0 < 1", binary@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" dependencies: buffers "~0.1.1" chainsaw "~0.1.0" +bitsyntax@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/bitsyntax/-/bitsyntax-0.0.4.tgz#eb10cc6f82b8c490e3e85698f07e83d46e0cba82" + dependencies: + buffer-more-ints "0.0.2" + bl@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e" dependencies: readable-stream "^2.0.5" +bl@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" + dependencies: + readable-stream "~2.0.5" + +blob@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" dependencies: inherits "~2.0.0" -bluebird@^3.5.0: +bluebird@^3.3.0, bluebird@^3.4.6, bluebird@^3.5.0, bluebird@~3.5.0: version "3.5.1" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" @@ -1046,6 +1247,21 @@ body-parser@1.18.2, body-parser@^1.15.0: raw-body "2.3.2" type-is "~1.6.15" +body-parser@^1.16.1: + version "1.18.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "~1.6.3" + iconv-lite "0.4.23" + on-finished "~2.3.0" + qs "6.5.2" + raw-body "2.3.3" + type-is "~1.6.16" + bonjour@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" @@ -1057,6 +1273,10 @@ bonjour@^3.5.0: multicast-dns "^6.0.1" multicast-dns-service-types "^1.1.0" +boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + boom@2.x.x: version "2.10.1" resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" @@ -1082,6 +1302,12 @@ brace-expansion@^1.0.0, brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +braces@^0.1.2: + version "0.1.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" + dependencies: + expand-range "^0.1.0" + braces@^1.8.2: version "1.8.5" resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" @@ -1106,6 +1332,21 @@ braces@^2.2.2: split-string "^3.0.2" to-regex "^3.0.1" +braces@^2.3.0, braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -1176,14 +1417,50 @@ browserslist@^2.1.2: caniuse-lite "^1.0.30000758" electron-to-chromium "^1.3.27" +browserstack@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/browserstack/-/browserstack-1.5.0.tgz#b565425ad62ed72c1082a1eb979d5313c7d4754f" + dependencies: + https-proxy-agent "1.0.0" + +browserstacktunnel-wrapper@~2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/browserstacktunnel-wrapper/-/browserstacktunnel-wrapper-2.0.3.tgz#4e9c1595a08c8e57098a73a56561251d815bb695" + dependencies: + https-proxy-agent "^2.2.1" + unzip "~0.1.11" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + buffer-crc32@^0.2.1: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + buffer-indexof@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" +buffer-more-ints@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz#26b3885d10fa13db7fc01aae3aab870199e0124c" + buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -1200,6 +1477,18 @@ buffers@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" +buildmail@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/buildmail/-/buildmail-4.0.1.tgz#877f7738b78729871c9a105e3b837d2be11a7a72" + dependencies: + addressparser "1.0.1" + libbase64 "0.1.0" + libmime "3.0.0" + libqp "1.1.0" + nodemailer-fetch "1.6.0" + nodemailer-shared "1.1.0" + punycode "1.4.1" + builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -1242,6 +1531,10 @@ caller-path@^0.1.0: dependencies: callsites "^0.2.0" +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" @@ -1286,11 +1579,15 @@ caniuse-lite@^1.0.30000758: version "1.0.30000760" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000760.tgz#ec720395742f1c7ec8947fd6dd2604e77a8f98ff" +caseless@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" -catharsis@~0.8.8: +catharsis@~0.8.8, catharsis@~0.8.9: version "0.8.9" resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.9.tgz#98cc890ca652dd2ef0e70b37925310ff9e90fc8b" dependencies: @@ -1327,6 +1624,17 @@ chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0: escape-string-regexp "^1.0.5" supports-color "^4.0.0" +cheerio@^1.0.0-rc.2: + version "1.0.0-rc.2" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash "^4.15.0" + parse5 "^3.0.1" + chickencurry@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/chickencurry/-/chickencurry-1.1.1.tgz#02655f2b26b3bc2ee1ae1e5316886de38eb79738" @@ -1346,6 +1654,29 @@ chokidar@^1.6.0, chokidar@^1.7.0: optionalDependencies: fsevents "^1.0.0" +chokidar@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" + dependencies: + anymatch "^2.0.0" + async-each "^1.0.0" + braces "^2.3.0" + glob-parent "^3.1.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + lodash.debounce "^4.0.8" + normalize-path "^2.1.1" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + upath "^1.0.5" + optionalDependencies: + fsevents "^1.2.2" + +chownr@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -1353,10 +1684,18 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +circular-json-es6@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/circular-json-es6/-/circular-json-es6-2.0.2.tgz#e4f4a093e49fb4b6aba1157365746112a78bd344" + circular-json@^0.3.1: version "0.3.3" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" +circular-json@^0.5.4: + version "0.5.5" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.5.tgz#64182ef359042d37cd8e767fc9de878b1e9447d3" + clap@^1.0.9: version "1.2.3" resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" @@ -1393,9 +1732,9 @@ cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" -clipboard@^1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-1.7.1.tgz#360d6d6946e99a7a1fef395e42ba92b5e9b5a16b" +clipboard@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.1.tgz#a12481e1c13d8a50f5f036b0560fe5d16d74e46a" dependencies: good-listener "^1.2.2" select "^1.1.2" @@ -1526,6 +1865,14 @@ colormin@^1.0.5: css-color-names "0.0.4" has "^1.0.1" +colors@0.5.x: + version "0.5.1" + resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" + +colors@^1.1.0, colors@^1.1.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.1.tgz#4accdb89cf2cabc7f982771925e9468784f32f3d" + colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" @@ -1545,6 +1892,27 @@ column-layout@^2.1.1: typical "^2.4.2" wordwrapjs "^1.2.0" +combine-lists@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" + dependencies: + lodash "^4.5.0" + +combine-source-map@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" + dependencies: + convert-source-map "~1.1.0" + inline-source-map "~0.6.0" + lodash.memoize "~3.0.3" + source-map "~0.5.3" + +combined-stream@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + dependencies: + delayed-stream "~1.0.0" + combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" @@ -1584,14 +1952,38 @@ command-line-usage@^2: typical "^2.4.2" wordwrapjs "^1.2.0" +commander@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/commander/-/commander-1.0.4.tgz#5edeb1aee23c4fb541a6b70d692abef19669a2d3" + dependencies: + keypress "0.1.x" + +commander@^2.9.0: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + +commander@~2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" -component-emitter@^1.2.1, component-emitter@~1.2.0: +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + +component-emitter@1.2.1, component-emitter@^1.2.1, component-emitter@~1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + compose-function@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-2.0.0.tgz#e642fa7e1da21529720031476776fc24691ac0b0" @@ -1629,6 +2021,15 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" +concat-stream@1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + concat-stream@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" @@ -1649,6 +2050,15 @@ connect-history-api-fallback@^1.3.0: version "1.5.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" +connect@^3.6.0: + version "3.6.6" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" + dependencies: + debug "2.6.9" + finalhandler "1.1.0" + parseurl "~1.3.2" + utils-merge "1.0.1" + console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" @@ -1675,10 +2085,22 @@ convert-source-map@^0.3.3: version "0.3.5" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" +convert-source-map@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" + convert-source-map@^1.1.1, convert-source-map@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" +convert-source-map@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" + +convert-source-map@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.2.0.tgz#44c08c2506f10fb3ca6fd888d5a3444cf8d6a669" + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -1703,6 +2125,10 @@ core-js@^2.0.1, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: version "2.5.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" +core-js@^2.2.0: + version "2.5.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" + core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -1752,7 +2178,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -create-react-class@^15.5.2, create-react-class@^15.6.0, create-react-class@^15.6.2: +create-react-class@^15.5.2, create-react-class@^15.6.2: version "15.6.2" resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.2.tgz#cf1ed15f12aad7f14ef5f2dfe05e6c42f91ef02a" dependencies: @@ -1767,7 +2193,7 @@ cross-spawn@^3.0.0: lru-cache "^4.0.1" which "^1.2.9" -cross-spawn@^5.0.1, cross-spawn@^5.1.0: +cross-spawn@^5.0.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" dependencies: @@ -1811,6 +2237,12 @@ css-color-names@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" +css-line-break@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/css-line-break/-/css-line-break-1.0.1.tgz#19f2063a33e95fb2831b86446c0b80c188af450a" + dependencies: + base64-arraybuffer "^0.1.5" + css-loader@^0.28.0: version "0.28.7" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.7.tgz#5f2ee989dd32edd907717f953317656160999c1b" @@ -1838,6 +2270,15 @@ css-loader@^0.9.1: loader-utils "~0.2.2" source-map "~0.1.38" +css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + css-selector-tokenizer@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" @@ -1846,6 +2287,10 @@ css-selector-tokenizer@^0.7.0: fastparse "^1.1.1" regexpu-core "^1.0.0" +css-what@2.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" + css@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/css/-/css-2.2.1.tgz#73a4c81de85db664d4ee674f7d47085e3b2d55dc" @@ -1907,12 +2352,20 @@ csso@~2.3.1: clap "^1.0.9" source-map "^0.5.3" +csstype@^2.2.0: + version "2.5.6" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.5.6.tgz#2ae1db2319642d8b80a668d2d025c6196071e788" + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" dependencies: array-find-index "^1.0.1" +custom-event@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + d3-array@^1.0.0, d3-array@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.1.tgz#d1ca33de2f6ac31efadb8e050a021d7e2396d5dc" @@ -2004,12 +2457,24 @@ d@1: dependencies: es5-ext "^0.10.9" +dargs@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-2.1.0.tgz#46c27ffab1ffb1378ef212597213719fe602bc93" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" dependencies: assert-plus "^1.0.0" +data-uri-to-buffer@1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835" + +date-format@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-1.2.0.tgz#615e828e233dd1ab9bb9ae0950e0ceccfa6ecad8" + date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" @@ -2027,13 +2492,13 @@ deamdify@^0.1.1: estraverse "1.x.x" through "2.x.x" -debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8: +debug@2, debug@2.6.9, debug@^2.1.2, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@~2.6.4, debug@~2.6.6: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: ms "2.0.0" -debug@^3.0.1, debug@^3.1.0: +debug@3.1.0, debug@^3.0.1, debug@^3.1.0, debug@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: @@ -2059,10 +2524,20 @@ decompress-zip@^0.3.0: readable-stream "^1.1.8" touch "0.0.3" +deep-equal-ident@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal-ident/-/deep-equal-ident-1.1.1.tgz#06f4b89e53710cd6cea4a7781c7a956642de8dc9" + dependencies: + lodash.isequal "^3.0" + deep-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + deep-extend@~0.4.0, deep-extend@~0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" @@ -2100,10 +2575,25 @@ define-property@^1.0.0: dependencies: is-descriptor "^1.0.0" +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" +degenerator@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095" + dependencies: + ast-types "0.x.x" + escodegen "1.x.x" + esprima "3.x.x" + del@^2.0.2: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" @@ -2143,6 +2633,10 @@ depd@1.1.1, depd@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + deprecated@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" @@ -2178,6 +2672,14 @@ detect-node@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" +di@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + +diff@^3.1.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + diffie-hellman@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" @@ -2186,6 +2688,10 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +discontinuous-range@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" + dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" @@ -2210,7 +2716,16 @@ doctrine@^2.0.0: esutils "^2.0.2" isarray "^1.0.0" -dom-serializer@0: +dom-serialize@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + dependencies: + custom-event "~1.0.0" + ent "~2.2.0" + extend "^3.0.0" + void-elements "^2.0.0" + +dom-serializer@0, dom-serializer@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" dependencies: @@ -2243,6 +2758,13 @@ domready@1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/domready/-/domready-1.0.8.tgz#91f252e597b65af77e745ae24dd0185d5e26d58c" +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + dependencies: + dom-serializer "0" + domelementtype "1" + domutils@^1.5.1: version "1.6.2" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz#1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff" @@ -2250,12 +2772,23 @@ domutils@^1.5.1: dom-serializer "0" domelementtype "1" +double-ended-queue@^2.1.0-0: + version "2.1.0-0" + resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" + duplexer2@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" dependencies: readable-stream "~1.1.9" +each-async@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/each-async/-/each-async-1.1.1.tgz#dee5229bdf0ab6ba2012a395e1b869abf8813473" + dependencies: + onetime "^1.0.0" + set-immediate-shim "^1.0.0" + ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" @@ -2270,11 +2803,33 @@ ejs@^2.5.2: version "2.5.7" resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a" -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.27: - version "1.3.27" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz#78ecb8a399066187bb374eede35d9c70565a803d" - -elliptic@^6.0.0: +electron-download@^3.0.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-3.3.0.tgz#2cfd54d6966c019c4d49ad65fbe65cc9cdef68c8" + dependencies: + debug "^2.2.0" + fs-extra "^0.30.0" + home-path "^1.0.1" + minimist "^1.2.0" + nugget "^2.0.0" + path-exists "^2.1.0" + rc "^1.1.2" + semver "^5.3.0" + sumchecker "^1.2.0" + +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.27: + version "1.3.27" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz#78ecb8a399066187bb374eede35d9c70565a803d" + +electron@^2.0.0: + version "2.0.7" + resolved "https://registry.yarnpkg.com/electron/-/electron-2.0.7.tgz#f7ce410433298e319032ce31f0e6ffd709ff052c" + dependencies: + "@types/node" "^8.0.24" + electron-download "^3.0.1" + extract-zip "^1.0.3" + +elliptic@^6.0.0: version "6.4.0" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" dependencies: @@ -2312,7 +2867,46 @@ end-of-stream@~0.1.5: dependencies: once "~1.3.0" -enhanced-resolve@^3.4.0: +engine.io-client@~3.1.0: + version "3.1.6" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.1.6.tgz#5bdeb130f8b94a50ac5cbeb72583e7a4a063ddfd" + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.1.1" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~3.3.1" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196" + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.4" + has-binary2 "~1.0.2" + +engine.io@~3.1.0: + version "3.1.5" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.1.5.tgz#0e7ef9d690eb0b35597f1d4ad02a26ca2dba3845" + dependencies: + accepts "~1.3.4" + base64id "1.0.0" + cookie "0.3.1" + debug "~3.1.0" + engine.io-parser "~2.1.0" + ws "~3.3.1" + optionalDependencies: + uws "~9.14.0" + +enhanced-resolve@^3.0.0, enhanced-resolve@^3.4.0: version "3.4.1" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" dependencies: @@ -2321,10 +2915,64 @@ enhanced-resolve@^3.4.0: object-assign "^4.0.1" tapable "^0.2.7" +ent@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" +enzyme-adapter-react-16@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.2.0.tgz#c6e80f334e0a817873262d7d01ee9e4747e3c97e" + dependencies: + enzyme-adapter-utils "^1.5.0" + function.prototype.name "^1.1.0" + object.assign "^4.1.0" + object.values "^1.0.4" + prop-types "^15.6.2" + react-is "^16.4.2" + react-reconciler "^0.7.0" + react-test-renderer "^16.0.0-0" + +enzyme-adapter-utils@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.5.0.tgz#a020ab3ae79bb1c85e1d51f48f35e995e0eed810" + dependencies: + function.prototype.name "^1.1.0" + object.assign "^4.1.0" + prop-types "^15.6.2" + +enzyme-matchers@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/enzyme-matchers/-/enzyme-matchers-6.0.3.tgz#187fb322ed70d38e6160251bc398a53aec1cfc7e" + dependencies: + circular-json-es6 "^2.0.1" + deep-equal-ident "^1.1.1" + +enzyme@^3.3.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.4.1.tgz#d305af5bdb30b8aca56d199110421588c670ea0e" + dependencies: + array.prototype.flat "^1.2.1" + cheerio "^1.0.0-rc.2" + function.prototype.name "^1.1.0" + has "^1.0.3" + is-boolean-object "^1.0.0" + is-callable "^1.1.4" + is-number-object "^1.0.3" + is-string "^1.0.4" + is-subset "^0.1.1" + lodash "^4.17.4" + object-inspect "^1.6.0" + object-is "^1.0.1" + object.assign "^4.1.0" + object.entries "^1.0.4" + object.values "^1.0.4" + raf "^3.4.0" + rst-selector-parser "^2.2.3" + errno@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" @@ -2343,6 +2991,16 @@ error-stack-parser@^1.3.6: dependencies: stackframe "^0.3.1" +es-abstract@^1.10.0, es-abstract@^1.6.1: + version "1.12.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + es-abstract@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.9.0.tgz#690829a07cae36b222e7fd9b75c0d0573eb25227" @@ -2387,6 +3045,16 @@ es6-map@^0.1.3: es6-symbol "~3.1.1" event-emitter "~0.3.5" +es6-promise@^4.0.3, es6-promise@^4.0.5: + version "4.2.4" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29" + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + dependencies: + es6-promise "^4.0.3" + es6-set@~0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" @@ -2417,7 +3085,7 @@ escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5: +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -2430,6 +3098,17 @@ escodegen@0.0.x: optionalDependencies: source-map ">= 0.1.2" +escodegen@1.x.x: + version "1.11.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589" + dependencies: + esprima "^3.1.3" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + escope@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" @@ -2519,6 +3198,10 @@ esprima@1.x.x: version "1.2.5" resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.5.tgz#0993502feaf668138325756f30f9a51feeec11e9" +esprima@3.x.x, esprima@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + esprima@^2.6.0, esprima@^2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" @@ -2575,6 +3258,10 @@ eventemitter3@1.x.x: version "1.2.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" +eventemitter3@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" + events@^1.0.0, events@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" @@ -2604,6 +3291,14 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +expand-braces@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" + dependencies: + array-slice "^0.2.3" + array-unique "^0.2.1" + braces "^0.1.2" + expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" @@ -2622,6 +3317,13 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" +expand-range@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" + dependencies: + is-number "^0.1.1" + repeat-string "^0.2.2" + expand-range@^1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" @@ -2681,6 +3383,17 @@ extend-shallow@^2.0.1: dependencies: is-extendable "^0.1.0" +extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@3: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + extend@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" @@ -2716,6 +3429,19 @@ extglob@^2.0.2: snapdragon "^0.8.1" to-regex "^3.0.1" +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + extract-text-webpack-plugin@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7" @@ -2725,6 +3451,15 @@ extract-text-webpack-plugin@^3.0.0: schema-utils "^0.3.0" webpack-sources "^1.0.1" +extract-zip@^1.0.3: + version "1.6.7" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" + dependencies: + concat-stream "1.6.2" + debug "2.6.9" + mkdirp "0.5.1" + yauzl "2.4.1" + extsprintf@1.3.0, extsprintf@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -2776,6 +3511,12 @@ fbjs@^0.8.16, fbjs@^0.8.4, fbjs@^0.8.9: setimmediate "^1.0.5" ua-parser-js "^0.7.9" +fd-slicer@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + dependencies: + pend "~1.2.0" + feature-detect-es6@^1.2.0, feature-detect-es6@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/feature-detect-es6/-/feature-detect-es6-1.3.1.tgz#f888736af9cb0c91f55663bfa4762eb96ee7047f" @@ -2822,6 +3563,10 @@ file-set@~0.2.1: array-tools "^2" glob "^4" +file-uri-to-path@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" @@ -2939,6 +3684,18 @@ flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" +follow-redirects@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.0.0.tgz#8e34298cbd2e176f254effec75a1c78cc849fd37" + dependencies: + debug "^2.2.0" + +follow-redirects@^1.0.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.2.tgz#5a9d80e0165957e5ef0c1210678fc5c4acb9fb03" + dependencies: + debug "^3.1.0" + for-in@^0.1.3: version "0.1.8" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" @@ -2975,6 +3732,14 @@ form-data@1.0.0-rc3: combined-stream "^1.0.5" mime-types "^2.1.3" +form-data@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.0.0.tgz#6f0aebadcc5da16c13e1ecc11137d85f9b883b25" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.11" + form-data@~2.1.1: version "2.1.4" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" @@ -2983,6 +3748,14 @@ form-data@~2.1.1: combined-stream "^1.0.5" mime-types "^2.1.12" +form-data@~2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + dependencies: + asynckit "^0.4.0" + combined-stream "1.0.6" + mime-types "^2.1.12" + form-data@~2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" @@ -3013,18 +3786,50 @@ fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" +fs-access@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" + dependencies: + null-check "^1.0.0" + fs-exists-sync@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" -fs-extra@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" +fs-extra@^0.26.4: + version "0.26.7" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" universalify "^0.1.0" +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + dependencies: + minipass "^2.2.1" + fs-then-native@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/fs-then-native/-/fs-then-native-1.0.2.tgz#ac8d3807c9f1bbd1279607fb228e0ab649bb41fe" @@ -3042,6 +3847,13 @@ fsevents@^1.0.0: nan "^2.3.0" node-pre-gyp "^0.6.36" +fsevents@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" + dependencies: + nan "^2.9.2" + node-pre-gyp "^0.10.0" + fstream-ignore@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" @@ -3050,6 +3862,15 @@ fstream-ignore@^1.0.5: inherits "2" minimatch "^3.0.0" +"fstream@>= 0.1.30 < 1": + version "0.1.31" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-0.1.31.tgz#7337f058fbbbbefa8c9f561a28cab0849202c988" + dependencies: + graceful-fs "~3.0.2" + inherits "~2.0.0" + mkdirp "0.5" + rimraf "2" + fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: version "1.0.11" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" @@ -3059,10 +3880,25 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: mkdirp ">=0.5 0" rimraf "2" -function-bind@^1.0.2, function-bind@^1.1.1: +ftp@~0.3.10: + version "0.3.10" + resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" + dependencies: + readable-stream "1.1.x" + xregexp "2.0.0" + +function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" +function.prototype.name@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.0.tgz#8bd763cc0af860a859cc5d49384d74b932cd2327" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + is-callable "^1.1.3" + functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" @@ -3092,6 +3928,16 @@ gaze@^1.0.0: dependencies: globule "^1.0.0" +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + generate-terriajs-schema@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/generate-terriajs-schema/-/generate-terriajs-schema-1.3.0.tgz#6058e5c7ccfae227159289def2ec502638f9c8a7" @@ -3114,6 +3960,17 @@ get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" +get-uri@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.2.tgz#5c795e71326f6ca1286f2fc82575cd2bab2af578" + dependencies: + data-uri-to-buffer "1" + debug "2" + extend "3" + file-uri-to-path "1" + ftp "~0.3.10" + readable-stream "2" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -3144,6 +4001,13 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + glob-stream@^3.1.5: version "3.1.18" resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" @@ -3161,7 +4025,7 @@ glob-watcher@^0.0.6: dependencies: gaze "^0.5.1" -glob2base@^0.0.12: +glob2base@0.0.12, glob2base@^0.0.12: version "0.0.12" resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" dependencies: @@ -3176,7 +4040,17 @@ glob@^4, glob@^4.3.1: minimatch "^2.0.1" once "^1.3.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.2, glob@~7.1.1: +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -3264,13 +4138,13 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" -graceful-fs@^3.0.0: +graceful-fs@^3.0.0, graceful-fs@~3.0.2: version "3.0.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" dependencies: natives "^1.1.0" -graceful-fs@^4.1.0, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +graceful-fs@^4.1.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -3278,11 +4152,33 @@ graceful-fs@~1.2.0: version "1.2.3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" -gulp-util@^3.0.0, gulp-util@^3.0.7: +gulp-ruby-sass@^2.0.5: + version "2.1.1" + resolved "https://registry.yarnpkg.com/gulp-ruby-sass/-/gulp-ruby-sass-2.1.1.tgz#e80f65092108ee4afcb4936088dc7253369adcac" + dependencies: + convert-source-map "^1.0.0" + cross-spawn "^5.0.0" + dargs "^2.0.3" + each-async "^1.0.0" + escape-string-regexp "^1.0.3" + glob "^7.0.3" + glob2base "0.0.12" + gulp-util "^3.0.4" + md5-hex "^1.0.2" + object-assign "^4.0.1" + os-tmpdir "^1.0.0" + path-exists "^2.0.0" + rimraf "^2.2.8" + +gulp-util@^3.0.0, gulp-util@^3.0.4, gulp-util@^3.0.7: version "3.0.8" resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" dependencies: @@ -3337,6 +4233,15 @@ handle-thing@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" +"handlebars@^3.0.0 || ^2.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-3.0.3.tgz#0e09651a2f0fb3c949160583710d551f92e6d2ad" + dependencies: + optimist "^0.6.1" + source-map "^0.1.40" + optionalDependencies: + uglify-js "~2.3" + har-schema@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" @@ -3345,6 +4250,15 @@ har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" +har-validator@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" + dependencies: + chalk "^1.1.1" + commander "^2.9.0" + is-my-json-valid "^2.12.4" + pinkie-promise "^2.0.0" + har-validator@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" @@ -3365,6 +4279,16 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" @@ -3379,6 +4303,10 @@ has-gulplog@^0.1.0: dependencies: sparkles "^1.0.0" +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -3416,6 +4344,12 @@ has@^1.0.1: dependencies: function-bind "^1.0.2" +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + dependencies: + function-bind "^1.1.1" + hash-base@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" @@ -3458,6 +4392,13 @@ he@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" +hipchat-notifier@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hipchat-notifier/-/hipchat-notifier-1.1.0.tgz#b6d249755437c191082367799d3ba9a0f23b231e" + dependencies: + lodash "^4.0.0" + request "^2.0.0" + hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -3474,6 +4415,10 @@ hoek@4.x.x: version "4.2.0" resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" +hoist-non-react-statics@^2.5.0: + version "2.5.5" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" + home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" @@ -3481,6 +4426,10 @@ home-or-tmp@^2.0.0: os-homedir "^1.0.0" os-tmpdir "^1.0.1" +home-path@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.6.tgz#d549dc2465388a7f8667242c5b31588d29af29fc" + homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" @@ -3518,11 +4467,7 @@ html-to-react@1.2.12: ramda "^0.24.0" underscore.string.fp "^1.0.4" -html2canvas@0.5.0-beta4: - version "0.5.0-beta4" - resolved "https://registry.yarnpkg.com/html2canvas/-/html2canvas-0.5.0-beta4.tgz#8282c62ac5fd78168f5702b5e4877157ca93f39e" - -htmlparser2@^3.8.3: +htmlparser2@^3.8.3, htmlparser2@^3.9.1: version "3.9.2" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" dependencies: @@ -3546,10 +4491,26 @@ http-errors@1.6.2, http-errors@~1.6.2: setprototypeof "1.0.3" statuses ">= 1.3.1 < 2" +http-errors@1.6.3, http-errors@~1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-parser-js@>=0.4.0: version "0.4.9" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.9.tgz#ea1a04fb64adff0242e9974f297dd4c3cad271e1" +http-proxy-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + dependencies: + agent-base "4" + debug "3.1.0" + http-proxy-middleware@~0.17.4: version "0.17.4" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" @@ -3559,6 +4520,14 @@ http-proxy-middleware@~0.17.4: lodash "^4.17.2" micromatch "^2.3.11" +http-proxy@^1.13.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" + dependencies: + eventemitter3 "^3.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + http-proxy@^1.16.2: version "1.16.2" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" @@ -3582,14 +4551,50 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +httpntlm@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/httpntlm/-/httpntlm-1.6.1.tgz#ad01527143a2e8773cfae6a96f58656bb52a34b2" + dependencies: + httpreq ">=0.4.22" + underscore "~1.7.0" + +httpreq@>=0.4.22: + version "0.4.24" + resolved "https://registry.yarnpkg.com/httpreq/-/httpreq-0.4.24.tgz#4335ffd82cd969668a39465c929ac61d6393627f" + https-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" +https-proxy-agent@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" + dependencies: + agent-base "2" + debug "2" + extend "3" + +https-proxy-agent@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" + dependencies: + agent-base "^4.1.0" + debug "^3.1.0" + +iconv-lite@0.4.15: + version "0.4.15" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" + iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" +iconv-lite@0.4.23, iconv-lite@^0.4.4: + version "0.4.23" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + dependencies: + safer-buffer ">= 2.1.2 < 3" + icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" @@ -3604,6 +4609,12 @@ ieee754@^1.1.4, ieee754@^1.1.6: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + dependencies: + minimatch "^3.0.4" + ignore@^3.3.3: version "3.3.7" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" @@ -3648,6 +4659,14 @@ indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" +inflection@~1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416" + +inflection@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.3.8.tgz#cbd160da9f75b14c3cc63578d4f396784bf3014e" + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -3671,6 +4690,12 @@ ini@^1.3.4, ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" +inline-source-map@~0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" + dependencies: + source-map "~0.5.3" + inobounce@^0.1.2: version "0.1.5" resolved "https://registry.yarnpkg.com/inobounce/-/inobounce-0.1.5.tgz#b918a01b415b1a09e0459ab5e870904514f14470" @@ -3714,7 +4739,7 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" -ip@^1.1.0, ip@^1.1.5: +ip@^1.1.0, ip@^1.1.2, ip@^1.1.4, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -3739,6 +4764,12 @@ is-accessor-descriptor@^0.1.6: dependencies: kind-of "^3.0.2" +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + dependencies: + kind-of "^6.0.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -3749,6 +4780,10 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" +is-boolean-object@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" + is-buffer@^1.0.2, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -3763,12 +4798,22 @@ is-callable@^1.1.1, is-callable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" +is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" dependencies: kind-of "^3.0.2" +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + dependencies: + kind-of "^6.0.0" + is-date-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" @@ -3789,6 +4834,14 @@ is-descriptor@^1.0.0: is-data-descriptor "^0.1.4" kind-of "^5.0.0" +is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + is-dotfile@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" @@ -3803,11 +4856,17 @@ is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + dependencies: + is-plain-object "^2.0.4" + is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" -is-extglob@^2.1.0: +is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3839,17 +4898,45 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" +is-glob@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" dependencies: - kind-of "^3.0.2" + is-extglob "^2.1.1" -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" +is-my-ip-valid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" + +is-my-json-valid@^2.12.4: + version "2.18.0" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.18.0.tgz#47001d4bad2e9195ee964c7ed42b5f12d3d5ad6b" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + is-my-ip-valid "^1.0.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-number-object@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" + +is-number@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" is-odd@^1.0.0: version "1.0.0" @@ -3877,7 +4964,7 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" -is-plain-object@^2.0.1, is-plain-object@^2.0.3: +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" dependencies: @@ -3895,6 +4982,10 @@ is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" @@ -3917,6 +5008,14 @@ is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" +is-string@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz#cc3a9b69857d621e963725a24caeec873b826e64" + +is-subset@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + is-svg@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" @@ -3945,6 +5044,10 @@ is-windows@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + is-wsl@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" @@ -3957,6 +5060,16 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + +isbinaryfile@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" + dependencies: + buffer-alloc "^1.2.0" + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -3982,6 +5095,16 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" +jasmine-core@^2.7.0: + version "2.99.1" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.99.1.tgz#e6400df1e6b56e130b61c4bcd093daa7f6e8ca15" + +jasmine-enzyme@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/jasmine-enzyme/-/jasmine-enzyme-6.0.3.tgz#d29233d744b968ed3d45b7aa83dddbf995cc29cb" + dependencies: + enzyme-matchers "^6.0.3" + javascript-natural-sort@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59" @@ -3994,6 +5117,10 @@ js-base64@^2.1.8, js-base64@^2.1.9: version "2.3.2" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.3.2.tgz#a79a923666372b580f8e27f51845c6f7e8fbfbaf" +js-string-escape@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" + js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" @@ -4016,6 +5143,12 @@ js2xmlparser@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-1.0.0.tgz#5a170f2e8d6476ce45405e04823242513782fe30" +js2xmlparser@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-3.0.0.tgz#3fb60eaa089c5440f9319f51760ccd07e2499733" + dependencies: + xmlcreate "^1.0.1" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -4075,6 +5208,23 @@ jsdoc-parse@^1.2.6: stream-connect "^1.0.1" test-value "^1.0.1" +jsdoc@^3.4.0: + version "3.5.5" + resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.5.5.tgz#484521b126e81904d632ff83ec9aaa096708fa4d" + dependencies: + babylon "7.0.0-beta.19" + bluebird "~3.5.0" + catharsis "~0.8.9" + escape-string-regexp "~1.0.5" + js2xmlparser "~3.0.0" + klaw "~2.0.0" + marked "~0.3.6" + mkdirp "~0.5.1" + requizzle "~0.2.1" + strip-json-comments "~2.0.1" + taffydb "2.6.2" + underscore "~1.8.3" + jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" @@ -4101,7 +5251,7 @@ json-stable-stringify@^1.0.1: dependencies: jsonify "~0.0.0" -json-stringify-safe@~5.0.1: +json-stringify-safe@5.0.x, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -4113,6 +5263,12 @@ json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + optionalDependencies: + graceful-fs "^4.1.6" + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -4123,6 +5279,10 @@ jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + jsonschema@terriajs/jsonschema: version "1.0.3" resolved "https://codeload.github.com/terriajs/jsonschema/tar.gz/55cedb27a265bbae2b366a3824863c586c5d34cf" @@ -4142,6 +5302,111 @@ jsx-ast-utils@^2.0.0: dependencies: array-includes "^3.0.3" +karma-browserstack-launcher@^1.0.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/karma-browserstack-launcher/-/karma-browserstack-launcher-1.3.0.tgz#61fe3d36b1cf10681e40f9d874bf37271fb1c674" + dependencies: + browserstack "1.5.0" + browserstacktunnel-wrapper "~2.0.1" + q "~1.5.0" + +karma-chrome-launcher@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf" + dependencies: + fs-access "^1.0.0" + which "^1.2.1" + +karma-detect-browsers@^2.0.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/karma-detect-browsers/-/karma-detect-browsers-2.3.2.tgz#f7cd3a0e91dd915caec49842b5c6e74bd191250b" + dependencies: + which "^1.2.4" + +karma-electron@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/karma-electron/-/karma-electron-6.0.0.tgz#c824dda46f49f7fc744b6b9b60e6413979947362" + dependencies: + combine-source-map "~0.8.0" + commander "~2.9.0" + convert-source-map "~1.2.0" + js-string-escape "~1.0.0" + minstache "~1.2.0" + xtend "~4.0.1" + +karma-firefox-launcher@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.1.0.tgz#2c47030452f04531eb7d13d4fc7669630bb93339" + +karma-ie-launcher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/karma-ie-launcher/-/karma-ie-launcher-1.0.0.tgz#497986842c490190346cd89f5494ca9830c6d59c" + dependencies: + lodash "^4.6.1" + +karma-jasmine@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.2.tgz#394f2b25ffb4a644b9ada6f22d443e2fd08886c3" + +karma-opera-launcher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/karma-opera-launcher/-/karma-opera-launcher-1.0.0.tgz#fa51628531a1d0be84b2d8dc0d7ee209fc8ff91a" + +karma-safari-launcher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/karma-safari-launcher/-/karma-safari-launcher-1.0.0.tgz#96982a2cc47d066aae71c553babb28319115a2ce" + +karma-sauce-launcher@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/karma-sauce-launcher/-/karma-sauce-launcher-1.2.0.tgz#6f2558ddef3cf56879fa27540c8ae9f8bfd16bca" + dependencies: + q "^1.5.0" + sauce-connect-launcher "^1.2.2" + saucelabs "^1.4.0" + wd "^1.4.0" + +karma-spec-reporter@^0.0.31: + version "0.0.31" + resolved "https://registry.yarnpkg.com/karma-spec-reporter/-/karma-spec-reporter-0.0.31.tgz#4830dc7148a155c7d7a186e632339a0d80fadec3" + dependencies: + colors "^1.1.2" + +karma@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/karma/-/karma-2.0.5.tgz#3710c7a2e71b1c439313f283846d88e04e4f918c" + dependencies: + bluebird "^3.3.0" + body-parser "^1.16.1" + chokidar "^2.0.3" + colors "^1.1.0" + combine-lists "^1.0.0" + connect "^3.6.0" + core-js "^2.2.0" + di "^0.0.1" + dom-serialize "^2.2.0" + expand-braces "^0.1.1" + glob "^7.1.1" + graceful-fs "^4.1.2" + http-proxy "^1.13.0" + isbinaryfile "^3.0.0" + lodash "^4.17.4" + log4js "^2.5.3" + mime "^1.3.4" + minimatch "^3.0.2" + optimist "^0.6.1" + qjobs "^1.1.4" + range-parser "^1.2.0" + rimraf "^2.6.0" + safe-buffer "^5.0.1" + socket.io "2.0.4" + source-map "^0.6.1" + tmp "0.0.33" + useragent "2.2.1" + +keypress@0.1.x: + version "0.1.0" + resolved "https://registry.yarnpkg.com/keypress/-/keypress-0.1.0.tgz#4a3188d4291b66b4f65edb99f806aa9ae293592a" + killable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" @@ -4168,12 +5433,41 @@ kind-of@^5.0.0, kind-of@^5.0.2: version "5.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" -klaw@~1.3.0: +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + +klaw-sync@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-4.0.0.tgz#7785692ea1a320ac3dda7a6c0c22b33a30aa3b3f" + dependencies: + graceful-fs "^4.1.11" + +klaw@^1.0.0, klaw@~1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" optionalDependencies: graceful-fs "^4.1.9" +klaw@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-2.0.0.tgz#59c128e0dc5ce410201151194eeb9cbf858650f6" + dependencies: + graceful-fs "^4.1.9" + +kss@^2.1.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/kss/-/kss-2.4.0.tgz#6a2e8bba3b476469fbd3eefb922731bf3f5125cb" + dependencies: + fs-extra "^0.26.4" + glob "^6.0.1" + handlebars "^3.0.0 || ^2.0.0" + marked "^0.3.5" + mkdirp "^0.5.1" + natural "^0.2.1" + wrench "^1.5.8" + yargs "^3.30.0" + lazy-cache@^0.2.3: version "0.2.7" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" @@ -4200,9 +5494,9 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" -leaflet@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.0.3.tgz#1f401b98b45c8192134c6c8d69686253805007c8" +leaflet@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.3.1.tgz#86f336d2fb0e2d0ff446677049a5dc34cf0ea60e" levn@^0.3.0, levn@~0.3.0: version "0.3.0" @@ -4211,6 +5505,22 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +libbase64@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/libbase64/-/libbase64-0.1.0.tgz#62351a839563ac5ff5bd26f12f60e9830bb751e6" + +libmime@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/libmime/-/libmime-3.0.0.tgz#51a1a9e7448ecbd32cda54421675bb21bc093da6" + dependencies: + iconv-lite "0.4.15" + libbase64 "0.1.0" + libqp "1.1.0" + +libqp@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/libqp/-/libqp-1.1.0.tgz#f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8" + liftoff@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.3.0.tgz#a98f2ff67183d8ba7cfaca10548bd7ff0550b385" @@ -4289,6 +5599,14 @@ lodash._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" +lodash._baseisequal@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz#d8025f76339d29342767dcc887ce5cb95a5b51f1" + dependencies: + lodash.isarray "^3.0.0" + lodash.istypedarray "^3.0.0" + lodash.keys "^3.0.0" + lodash._basetostring@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" @@ -4353,7 +5671,7 @@ lodash.clonedeep@^4.3.2: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" -lodash.debounce@^4.0.6: +lodash.debounce@^4.0.6, lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -4374,6 +5692,10 @@ lodash.escape@^3.0.0: dependencies: lodash._root "^3.0.0" +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + lodash.isarguments@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" @@ -4382,6 +5704,13 @@ lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" +lodash.isequal@^3.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-3.0.4.tgz#1c35eb3b6ef0cd1ff51743e3ea3cf7fdffdacb64" + dependencies: + lodash._baseisequal "^3.0.0" + lodash._bindcallback "^3.0.0" + lodash.isplainobject@^4.0.4: version "4.0.6" resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" @@ -4390,6 +5719,10 @@ lodash.isstring@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" +lodash.istypedarray@^3.0.0: + version "3.0.6" + resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62" + lodash.keys@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" @@ -4406,6 +5739,10 @@ lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" +lodash.memoize@~3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" + lodash.mergewith@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55" @@ -4443,6 +5780,10 @@ lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" +lodash@4.17.10, lodash@^4.15.0, lodash@^4.16.6, lodash@^4.17.10, lodash@^4.5.0, lodash@^4.6.1: + version "4.17.10" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" + lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.3.0, lodash@~4.17.4: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -4455,6 +5796,33 @@ lodash@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" +log4js@^2.5.3: + version "2.11.0" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-2.11.0.tgz#bf3902eff65c6923d9ce9cfbd2db54160e34005a" + dependencies: + circular-json "^0.5.4" + date-format "^1.2.0" + debug "^3.1.0" + semver "^5.5.0" + streamroller "0.7.0" + optionalDependencies: + amqplib "^0.5.2" + axios "^0.15.3" + hipchat-notifier "^1.1.0" + loggly "^1.1.0" + mailgun-js "^0.18.0" + nodemailer "^2.5.0" + redis "^2.7.1" + slack-node "~0.2.0" + +loggly@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/loggly/-/loggly-1.1.1.tgz#0a0fc1d3fa3a5ec44fdc7b897beba2a4695cebee" + dependencies: + json-stringify-safe "5.0.x" + request "2.75.x" + timespan "2.3.x" + loglevel@^1.4.1: version "1.5.1" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.5.1.tgz#189078c94ab9053ee215a0acdbf24244ea0f6502" @@ -4480,6 +5848,10 @@ lru-cache@2: version "2.7.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" +lru-cache@2.2.x: + version "2.2.4" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" + lru-cache@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" @@ -4487,16 +5859,48 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" +lru-cache@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + macaddress@^0.2.8: version "0.2.8" resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" +mailcomposer@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/mailcomposer/-/mailcomposer-4.0.1.tgz#0e1c44b2a07cf740ee17dc149ba009f19cadfeb4" + dependencies: + buildmail "4.0.1" + libmime "3.0.0" + +mailgun-js@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/mailgun-js/-/mailgun-js-0.18.1.tgz#ee39aa18d7bb598a5ce9ede84afb681defc8a6b0" + dependencies: + async "~2.6.0" + debug "~3.1.0" + form-data "~2.3.0" + inflection "~1.12.0" + is-stream "^1.1.0" + path-proxy "~1.0.0" + promisify-call "^2.0.2" + proxy-agent "~3.0.0" + tsscmp "~1.0.0" + make-dir@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" dependencies: pify "^3.0.0" +make-error@^1.1.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" + map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -4521,14 +5925,35 @@ markdown-it@^8.0.0: mdurl "^1.0.1" uc.micro "^1.0.3" +marked@^0.3.5: + version "0.3.19" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" + marked@~0.3.6: version "0.3.6" resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7" +"match-stream@>= 0.0.2 < 1": + version "0.0.2" + resolved "https://registry.yarnpkg.com/match-stream/-/match-stream-0.0.2.tgz#99eb050093b34dffade421b9ac0b410a9cfa17cf" + dependencies: + buffers "~0.1.1" + readable-stream "~1.0.0" + math-expression-evaluator@^1.2.14: version "1.2.17" resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" +md5-hex@^1.0.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" + dependencies: + md5-o-matic "^0.1.1" + +md5-o-matic@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" + md5.js@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" @@ -4557,7 +5982,7 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" -meow@^3.3.0, meow@^3.7.0: +meow@^3.1.0, meow@^3.3.0, meow@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" dependencies: @@ -4626,6 +6051,24 @@ micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7: parse-glob "^3.0.4" regex-cache "^0.4.2" +micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -4641,6 +6084,16 @@ mime-db@~1.30.0: version "1.30.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" +mime-db@~1.35.0: + version "1.35.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz#0569d657466491283709663ad379a99b90d9ab47" + +mime-types@^2.1.11, mime-types@~2.1.18: + version "2.1.19" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0" + dependencies: + mime-db "~1.35.0" + mime-types@^2.1.12, mime-types@^2.1.3, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.7: version "2.1.17" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" @@ -4671,18 +6124,18 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + minimatch@^2.0.1: version "2.0.10" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" dependencies: brace-expansion "^1.0.0" -minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - minimatch@~0.2.11: version "0.2.14" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" @@ -4702,6 +6155,29 @@ minimist@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +minipass@^2.2.1, minipass@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.3.tgz#a7dcc8b7b833f5d368759cce544dccb55f50f233" + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" + dependencies: + minipass "^2.2.1" + +minstache@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minstache/-/minstache-1.2.0.tgz#ff1cc403ac2844f68dbf18c662129be7eb0efc41" + dependencies: + commander "1.0.4" + mitt@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/mitt/-/mitt-1.1.2.tgz#380e61480d6a615b660f07abb60d51e0a4e4bed6" @@ -4720,7 +6196,7 @@ mixin-object@^2.0.1: for-in "^0.1.3" is-extendable "^0.1.1" -mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: +mkdirp@0.5, mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -4730,14 +6206,33 @@ mkpath@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-0.1.0.tgz#7554a6f8d871834cc97b5462b122c4c124d6de91" -moment@2.18.1: - version "2.18.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" +mobx-react@^5.2.5: + version "5.2.5" + resolved "https://registry.yarnpkg.com/mobx-react/-/mobx-react-5.2.5.tgz#fc44ac17e1798f6b590f064b831d8a1d89850ef0" + dependencies: + hoist-non-react-statics "^2.5.0" + react-lifecycles-compat "^3.0.2" + +mobx-utils@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/mobx-utils/-/mobx-utils-4.0.1.tgz#1bd8648332be7ca83d7023aaa0ba24bbf389a300" + +mobx@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/mobx/-/mobx-4.3.1.tgz#334e5aab4916b1d43f0faf3605a64b1b4b3ccb8d" moment@^2.17.1: version "2.19.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.19.1.tgz#56da1a2d1cbf01d38b7e1afc31c10bcfa1929167" +moment@^2.21.0: + version "2.22.2" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66" + +moo@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e" + morgan@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.0.tgz#d01fa6c65859b76fcf31b3cb53a3821a311d8051" @@ -4785,6 +6280,10 @@ nan@^2.3.0, nan@^2.3.2: version "2.7.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46" +nan@^2.9.2: + version "2.10.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" + nanomatch@^1.2.1: version "1.2.5" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.5.tgz#5c9ab02475c76676275731b0bf0a7395c624a9c4" @@ -4801,6 +6300,22 @@ nanomatch@^1.2.1: snapdragon "^0.8.1" to-regex "^3.0.1" +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + natives@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31" @@ -4809,10 +6324,40 @@ natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" +natural@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/natural/-/natural-0.2.1.tgz#1eb5156a9d90b4591949e20e94ebc77bb2339eda" + dependencies: + apparatus ">= 0.0.9" + sylvester ">= 0.0.12" + underscore ">=1.3.1" + +nearley@^2.7.10: + version "2.15.1" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.15.1.tgz#965e4e6ec9ed6b80fc81453e161efbcebb36d247" + dependencies: + moo "^0.4.3" + nomnom "~1.6.2" + railroad-diagrams "^1.0.0" + randexp "0.4.6" + semver "^5.4.1" + +needle@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.2.tgz#1120ca4c41f2fcc6976fd28a8968afe239929418" + dependencies: + debug "^2.1.2" + iconv-lite "^0.4.4" + sax "^1.2.4" + negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" +netmask@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" + node-fetch@^1.0.1: version "1.7.3" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" @@ -4820,6 +6365,10 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" +node-fetch@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.2.0.tgz#4ee79bde909262f9775f731e3656d0db55ced5b5" + node-forge@0.6.33: version "0.6.33" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc" @@ -4879,6 +6428,21 @@ node-notifier@^5.1.2: shellwords "^0.1.0" which "^1.2.12" +node-pre-gyp@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" + dependencies: + 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" + node-pre-gyp@^0.6.36: version "0.6.39" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" @@ -4918,6 +6482,66 @@ node-sass@^4.0.0: sass-graph "^2.2.4" stdout-stream "^1.4.0" +node-uuid@~1.4.7: + version "1.4.8" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" + +nodemailer-direct-transport@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz#e96fafb90358560947e569017d97e60738a50a86" + dependencies: + nodemailer-shared "1.1.0" + smtp-connection "2.12.0" + +nodemailer-fetch@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz#79c4908a1c0f5f375b73fe888da9828f6dc963a4" + +nodemailer-shared@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz#cf5994e2fd268d00f5cf0fa767a08169edb07ec0" + dependencies: + nodemailer-fetch "1.6.0" + +nodemailer-smtp-pool@2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz#2eb94d6cf85780b1b4725ce853b9cbd5e8da8c72" + dependencies: + nodemailer-shared "1.1.0" + nodemailer-wellknown "0.1.10" + smtp-connection "2.12.0" + +nodemailer-smtp-transport@2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz#03d71c76314f14ac7dbc7bf033a6a6d16d67fb77" + dependencies: + nodemailer-shared "1.1.0" + nodemailer-wellknown "0.1.10" + smtp-connection "2.12.0" + +nodemailer-wellknown@0.1.10: + version "0.1.10" + resolved "https://registry.yarnpkg.com/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz#586db8101db30cb4438eb546737a41aad0cf13d5" + +nodemailer@^2.5.0: + version "2.7.2" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-2.7.2.tgz#f242e649aeeae39b6c7ed740ef7b061c404d30f9" + dependencies: + libmime "3.0.0" + mailcomposer "4.0.1" + nodemailer-direct-transport "3.3.2" + nodemailer-shared "1.1.0" + nodemailer-smtp-pool "2.8.2" + nodemailer-smtp-transport "2.7.2" + socks "1.1.9" + +nomnom@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.6.2.tgz#84a66a260174408fc5b77a18f888eccc44fb6971" + dependencies: + colors "0.5.x" + underscore "~1.4.4" + "nopt@2 || 3", nopt@^3.0.1: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" @@ -4946,7 +6570,7 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.0, normalize-path@^2.0.1: +normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: @@ -4965,6 +6589,17 @@ normalize-url@^1.4.0: query-string "^4.1.0" sort-keys "^1.0.0" +npm-bundled@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.4.tgz#81ee67cb61f13f6f2dabe6728283ee35a5821829" + +npm-packlist@^1.1.6: + version "1.1.11" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -4980,6 +6615,28 @@ npm-run-path@^2.0.0: gauge "~2.7.3" set-blocking "~2.0.0" +nth-check@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" + dependencies: + boolbase "~1.0.0" + +nugget@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0" + dependencies: + debug "^2.1.3" + minimist "^1.1.0" + pretty-bytes "^1.0.2" + progress-stream "^1.1.0" + request "^2.45.0" + single-line-log "^1.1.2" + throttleit "0.0.2" + +null-check@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" + num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" @@ -5000,6 +6657,10 @@ object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1 version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -5012,10 +6673,26 @@ object-get@^2.0.0, object-get@^2.0.2, object-get@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/object-get/-/object-get-2.1.0.tgz#722bbdb60039efa47cad3c6dc2ce51a85c02c5ae" +object-inspect@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + +object-is@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" + +object-keys@^1.0.11: + version "1.0.12" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" + object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" +object-keys@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + object-path@^0.9.2: version "0.9.2" resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz#0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5" @@ -5040,6 +6717,15 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + object.defaults@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" @@ -5049,6 +6735,15 @@ object.defaults@^1.1.0: for-own "^1.0.0" isobject "^3.0.0" +object.entries@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.6.1" + function-bind "^1.1.0" + has "^1.0.1" + object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -5062,6 +6757,15 @@ object.pick@^1.2.0, object.pick@^1.3.0: dependencies: isobject "^3.0.1" +object.values@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.6.1" + function-bind "^1.1.0" + has "^1.0.1" + obuf@^1.0.0, obuf@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" @@ -5098,6 +6802,10 @@ once@~1.3.0: dependencies: wrappy "1" +onetime@^1.0.0: + version "1.1.0" + resolved "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" @@ -5110,7 +6818,20 @@ opn@^5.1.0: dependencies: is-wsl "^1.1.0" -optionator@^0.8.2: +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optimist@~0.3.5: + version "0.3.7" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9" + dependencies: + wordwrap "~0.0.2" + +optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: @@ -5172,6 +6893,10 @@ osenv@0, osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +"over@>= 0.0.5 < 1": + version "0.0.5" + resolved "https://registry.yarnpkg.com/over/-/over-0.0.5.tgz#f29852e70fd7e25f360e013a8ec44c82aedb5708" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -5190,6 +6915,29 @@ p-map@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" +pac-proxy-agent@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-2.0.2.tgz#90d9f6730ab0f4d2607dcdcd4d3d641aa26c3896" + dependencies: + agent-base "^4.2.0" + debug "^3.1.0" + get-uri "^2.0.0" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.1" + pac-resolver "^3.0.0" + raw-body "^2.2.0" + socks-proxy-agent "^3.0.0" + +pac-resolver@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-3.0.0.tgz#6aea30787db0a891704deb7800a722a7615a6f26" + dependencies: + co "^4.6.0" + degenerator "^1.0.4" + ip "^1.1.5" + netmask "^1.0.6" + thunkify "^2.1.2" + pako@~0.2.0: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" @@ -5231,6 +6979,24 @@ parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" +parse5@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" + dependencies: + "@types/node" "*" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + dependencies: + better-assert "~1.0.0" + parseurl@~1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" @@ -5243,7 +7009,11 @@ path-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" -path-exists@^2.0.0: +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + +path-exists@^2.0.0, path-exists@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" dependencies: @@ -5269,6 +7039,12 @@ path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" +path-proxy@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/path-proxy/-/path-proxy-1.0.0.tgz#18e8a36859fc9d2f1a53b48dee138543c020de5e" + dependencies: + inflection "~1.3.0" + path-root-regex@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" @@ -5314,6 +7090,10 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + performance-now@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" @@ -5667,6 +7447,13 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" +pretty-bytes@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84" + dependencies: + get-stdin "^4.0.1" + meow "^3.1.0" + pretty-hrtime@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" @@ -5687,6 +7474,13 @@ process@^0.11.0: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" +progress-stream@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77" + dependencies: + speedometer "~0.1.2" + through2 "~0.2.3" + progress@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" @@ -5718,6 +7512,12 @@ promise.prototype.finally@^1.0.1: dependencies: asap "~2.0.3" +promisify-call@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/promisify-call/-/promisify-call-2.0.4.tgz#d48c2d45652ccccd52801ddecbd533a6d4bd5fba" + dependencies: + with-callback "^1.0.2" + prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.0: version "15.6.0" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" @@ -5726,6 +7526,13 @@ prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.0: loose-envify "^1.3.1" object-assign "^4.1.1" +prop-types@^15.6.2: + version "15.6.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" + dependencies: + loose-envify "^1.3.1" + object-assign "^4.1.1" + protocol-buffers-schema@^2.0.2: version "2.2.0" resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-2.2.0.tgz#d29c6cd73fb655978fb6989691180db844119f61" @@ -5737,6 +7544,23 @@ proxy-addr@~2.0.2: forwarded "~0.1.2" ipaddr.js "1.5.2" +proxy-agent@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-3.0.1.tgz#4fb7b61b1476d0fe8e3a3384d90e2460bbded3f9" + dependencies: + agent-base "^4.2.0" + debug "^3.1.0" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.1" + lru-cache "^4.1.2" + pac-proxy-agent "^2.0.1" + proxy-from-env "^1.0.0" + socks-proxy-agent "^4.0.1" + +proxy-from-env@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" + prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" @@ -5755,18 +7579,35 @@ public-encrypt@^4.0.0: parse-asn1 "^5.0.0" randombytes "^2.0.1" +"pullstream@>= 0.4.1 < 1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/pullstream/-/pullstream-0.4.1.tgz#d6fb3bf5aed697e831150eb1002c25a3f8ae1314" + dependencies: + over ">= 0.0.5 < 1" + readable-stream "~1.0.31" + setimmediate ">= 1.0.2 < 2" + slice-stream ">= 1.0.0 < 2" + punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" -punycode@^1.2.4, punycode@^1.4.1: +punycode@1.4.1, punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -q@^1.1.2: +q@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" + +q@^1.1.2, q@^1.5.0, q@~1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" +qjobs@^1.1.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" + qs@2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/qs/-/qs-2.3.3.tgz#e9e85adbe75da0bbe4c8e0476a086290f863b404" @@ -5775,6 +7616,14 @@ qs@6.5.1, qs@~6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" +qs@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + +qs@~6.2.0: + version "6.2.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" + qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" @@ -5802,10 +7651,31 @@ querystringify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" +raf@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz#a28876881b4bc2ca9117d4138163ddb80f781575" + dependencies: + performance-now "^2.1.0" + +railroad-diagrams@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" + ramda@^0.24.0: version "0.24.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" +ramda@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" + +randexp@0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" + dependencies: + discontinuous-range "1.0.0" + ret "~0.1.10" + randomatic@^1.1.3: version "1.1.7" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" @@ -5826,7 +7696,7 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -range-parser@^1.0.3, range-parser@~1.2.0: +range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" @@ -5839,10 +7709,28 @@ raw-body@2.3.2: iconv-lite "0.4.19" unpipe "1.0.0" +raw-body@2.3.3, raw-body@^2.2.0: + version "2.3.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" + dependencies: + bytes "3.0.0" + http-errors "1.6.3" + iconv-lite "0.4.23" + unpipe "1.0.0" + raw-loader@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" +rc@^1.1.2, rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + rc@^1.1.7: version "1.2.2" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.2.tgz#d8ce9cb57e8d64d9c7badd9876c7c34cbe3c7077" @@ -5876,14 +7764,22 @@ react-datepicker@0.53.0: react-onclickoutside "^6.1.1" react-popper "^0.7.0" -react-dom@^15.5.4: - version "15.6.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730" +react-dom@^16.3.2: + version "16.4.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.4.2.tgz#4afed569689f2c561d2b8da0b819669c38a0bda4" dependencies: - fbjs "^0.8.9" + fbjs "^0.8.16" loose-envify "^1.1.0" - object-assign "^4.1.0" - prop-types "^15.5.10" + object-assign "^4.1.1" + prop-types "^15.6.0" + +react-is@^16.4.2: + version "16.4.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.4.2.tgz#84891b56c2b6d9efdee577cc83501dfc5ecead88" + +react-lifecycles-compat@^3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" react-onclickoutside@^6.1.1: version "6.6.3" @@ -5903,15 +7799,36 @@ react-rangeslider@^2.0.0: classnames "^2.2.3" resize-observer-polyfill "^1.4.2" -react@^15.5.4: - version "15.6.2" - resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72" +react-reconciler@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.7.0.tgz#9614894103e5f138deeeb5eabaf3ee80eb1d026d" dependencies: - create-react-class "^15.6.0" - fbjs "^0.8.9" + fbjs "^0.8.16" loose-envify "^1.1.0" - object-assign "^4.1.0" - prop-types "^15.5.10" + object-assign "^4.1.1" + prop-types "^15.6.0" + +react-shallow-testutils@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/react-shallow-testutils/-/react-shallow-testutils-3.0.1.tgz#41beb19aac29617569469cfe7945eaf525522432" + +react-test-renderer@^16.0.0-0, react-test-renderer@^16.3.2: + version "16.4.2" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.4.2.tgz#4e03eca9359bb3210d4373f7547d1364218ef74e" + dependencies: + fbjs "^0.8.16" + object-assign "^4.1.1" + prop-types "^15.6.0" + react-is "^16.4.2" + +react@^16.3.2: + version "16.4.2" + resolved "https://registry.yarnpkg.com/react/-/react-16.4.2.tgz#2cd90154e3a9d9dd8da2991149fdca3c260e129f" + dependencies: + fbjs "^0.8.16" + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.0" read-pkg-up@^1.0.1: version "1.0.1" @@ -5952,18 +7869,30 @@ readable-stream@1.0.27-1: isarray "0.0.1" string_decoder "~0.10.x" -"readable-stream@>=1.0.33-1 <1.1.0-0": - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" +readable-stream@1.1.x, "readable-stream@1.x >=1.1.9", readable-stream@^1.1.8, readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^1.1.8, readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" +readable-stream@2, readable-stream@^2.3.0: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + dependencies: + 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" + +"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.0, readable-stream@~1.0.31: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" @@ -5994,7 +7923,7 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable string_decoder "~1.0.3" util-deprecate "~1.0.1" -readable-stream@~2.0.0: +readable-stream@~2.0.0, readable-stream@~2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" dependencies: @@ -6036,6 +7965,22 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" +redis-commands@^1.2.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.3.5.tgz#4495889414f1e886261180b1442e7295602d83a2" + +redis-parser@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b" + +redis@^2.7.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/redis/-/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02" + dependencies: + double-ended-queue "^2.1.0-0" + redis-commands "^1.2.0" + redis-parser "^2.6.0" + reduce-component@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/reduce-component/-/reduce-component-1.0.1.tgz#e0c93542c574521bea13df0f9488ed82ab77c5da" @@ -6102,6 +8047,13 @@ regex-not@^1.0.0: dependencies: extend-shallow "^2.0.1" +regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + regex-parser@^2.2.1: version "2.2.8" resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.8.tgz#da4c0cda5a828559094168930f455f532b6ffbac" @@ -6140,6 +8092,10 @@ repeat-element@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" +repeat-string@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" + repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -6169,9 +8125,89 @@ request-promise@^4.0.1: stealthy-require "^1.1.0" tough-cookie ">=2.3.3" -request@2, request@^2.67.0, request@^2.79.0: - version "2.83.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" +request@2, request@^2.67.0, request@^2.79.0: + version "2.83.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + +request@2.75.x: + version "2.75.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + bl "~1.1.2" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.0.0" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + node-uuid "~1.4.7" + oauth-sign "~0.8.1" + qs "~6.2.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + +request@2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +request@2.85.0: + version "2.85.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" dependencies: aws-sign2 "~0.7.0" aws4 "^1.6.0" @@ -6196,32 +8232,39 @@ request@2, request@^2.67.0, request@^2.79.0: tunnel-agent "^0.6.0" uuid "^3.1.0" -request@2.81.0: - version "2.81.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" +request@^2.0.0, request@^2.45.0, request@^2.74.0: + version "2.87.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" + aws-sign2 "~0.7.0" + aws4 "^1.6.0" caseless "~0.12.0" combined-stream "~1.0.5" - extend "~3.0.0" + extend "~3.0.1" forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~4.2.1" - hawk "~3.1.3" - http-signature "~1.1.0" + form-data "~2.3.1" + har-validator "~5.0.3" + http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - performance-now "^0.2.0" - qs "~6.4.0" - safe-buffer "^5.0.1" - stringstream "~0.0.4" - tough-cookie "~2.3.0" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + tough-cookie "~2.3.3" tunnel-agent "^0.6.0" - uuid "^3.0.0" + uuid "^3.1.0" + +requestretry@^1.2.2: + version "1.13.0" + resolved "https://registry.yarnpkg.com/requestretry/-/requestretry-1.13.0.tgz#213ec1006eeb750e8b8ce54176283d15a8d55d94" + dependencies: + extend "^3.0.0" + lodash "^4.15.0" + request "^2.74.0" + when "^3.7.7" require-directory@^2.1.1: version "2.1.1" @@ -6242,7 +8285,7 @@ requirejs@^2.3.2: version "2.3.5" resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.3.5.tgz#617b9acbbcb336540ef4914d790323a8d4b861b0" -requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0: +requires-port@1.0.x, requires-port@1.x.x, requires-port@^1.0.0, requires-port@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -6314,6 +8357,10 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + reverse-arguments@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/reverse-arguments/-/reverse-arguments-1.0.0.tgz#c28095a3a921ac715d61834ddece9027992667cd" @@ -6335,7 +8382,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: @@ -6348,6 +8395,13 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^2.0.0" inherits "^2.0.1" +rst-selector-parser@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91" + dependencies: + lodash.flattendeep "^4.4.0" + nearley "^2.7.10" + run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" @@ -6368,6 +8422,20 @@ safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, s version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" +safe-buffer@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + sass-graph@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" @@ -6387,11 +8455,27 @@ sass-loader@^6.0.3: lodash.tail "^4.1.1" pify "^3.0.0" +sauce-connect-launcher@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sauce-connect-launcher/-/sauce-connect-launcher-1.2.4.tgz#8d38f85242a9fbede1b2303b559f7e20c5609a1c" + dependencies: + adm-zip "~0.4.3" + async "^2.1.2" + https-proxy-agent "^2.2.1" + lodash "^4.16.6" + rimraf "^2.5.4" + +saucelabs@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.5.0.tgz#9405a73c360d449b232839919a86c396d379fd9d" + dependencies: + https-proxy-agent "^2.2.1" + sax@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" -sax@>=0.6.0, sax@~1.2.1: +sax@>=0.6.0, sax@^1.2.4, sax@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" @@ -6430,6 +8514,14 @@ semver@^4.1.0: version "4.3.6" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" +semver@^5.0.1, semver@^5.4.1, semver@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +semver@~5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" + semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -6487,7 +8579,7 @@ set-getter@^0.1.0: dependencies: to-object-path "^0.3.0" -set-immediate-shim@^1.0.1: +set-immediate-shim@^1.0.0, set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" @@ -6509,7 +8601,7 @@ set-value@^2.0.0: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4, setimmediate@^1.0.5: +"setimmediate@>= 1.0.1 < 2", "setimmediate@>= 1.0.2 < 2", setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -6563,6 +8655,18 @@ simple-statistics@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/simple-statistics/-/simple-statistics-4.1.1.tgz#533c48d48336ba3d350d8135f20fa7138acb0c7d" +single-line-log@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" + dependencies: + string-width "^1.0.1" + +slack-node@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/slack-node/-/slack-node-0.2.0.tgz#de4b8dddaa8b793f61dbd2938104fdabf37dfa30" + dependencies: + requestretry "^1.2.2" + slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -6573,6 +8677,27 @@ slice-ansi@1.0.0: dependencies: is-fullwidth-code-point "^2.0.0" +"slice-stream@>= 1.0.0 < 2": + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-stream/-/slice-stream-1.0.0.tgz#5b33bd66f013b1a7f86460b03d463dec39ad3ea0" + dependencies: + readable-stream "~1.0.31" + +smart-buffer@^1.0.13, smart-buffer@^1.0.4: + version "1.1.15" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" + +smart-buffer@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.1.tgz#07ea1ca8d4db24eb4cac86537d7d18995221ace3" + +smtp-connection@2.12.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/smtp-connection/-/smtp-connection-2.12.0.tgz#d76ef9127cb23c2259edb1e8349c2e8d5e2d74c1" + dependencies: + httpntlm "1.6.1" + nodemailer-shared "1.1.0" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -6612,6 +8737,47 @@ sntp@2.x.x: dependencies: hoek "4.x.x" +socket.io-adapter@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" + +socket.io-client@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.0.4.tgz#0918a552406dc5e540b380dcd97afc4a64332f8e" + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~2.6.4" + engine.io-client "~3.1.0" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.1.1" + to-array "0.1.4" + +socket.io-parser@~3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.1.3.tgz#ed2da5ee79f10955036e3da413bfd7f1e4d86c8e" + dependencies: + component-emitter "1.2.1" + debug "~3.1.0" + has-binary2 "~1.0.2" + isarray "2.0.1" + +socket.io@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.0.4.tgz#c1a4590ceff87ecf13c72652f046f716b29e6014" + dependencies: + debug "~2.6.6" + engine.io "~3.1.0" + socket.io-adapter "~1.1.0" + socket.io-client "2.0.4" + socket.io-parser "~3.1.1" + sockjs-client@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" @@ -6630,6 +8796,41 @@ sockjs@0.3.18: faye-websocket "^0.10.0" uuid "^2.0.2" +socks-proxy-agent@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz#2eae7cf8e2a82d34565761539a7f9718c5617659" + dependencies: + agent-base "^4.1.0" + socks "^1.1.10" + +socks-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz#5936bf8b707a993079c6f37db2091821bffa6473" + dependencies: + agent-base "~4.2.0" + socks "~2.2.0" + +socks@1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.9.tgz#628d7e4d04912435445ac0b6e459376cb3e6d691" + dependencies: + ip "^1.1.2" + smart-buffer "^1.0.4" + +socks@^1.1.10: + version "1.1.10" + resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" + dependencies: + ip "^1.1.4" + smart-buffer "^1.0.13" + +socks@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.2.1.tgz#68ad678b3642fbc5d99c64c165bc561eab0215f9" + dependencies: + ip "^1.1.5" + smart-buffer "^4.0.1" + sort-array@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/sort-array/-/sort-array-1.1.2.tgz#b88986053c0170a7f9de63f18a49ec79c24c3e64" @@ -6648,6 +8849,14 @@ source-list-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" +source-map-loader@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.3.tgz#d4b0c8cd47d54edce3e6bfa0f523f452b5b0e521" + dependencies: + async "^2.5.0" + loader-utils "~0.2.2" + source-map "~0.6.1" + source-map-resolve@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.3.1.tgz#610f6122a445b8dd51535a2a71b783dfc1248761" @@ -6673,6 +8882,13 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" +source-map-support@^0.5.3: + version "0.5.8" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.8.tgz#04f5581713a8a65612d0175fbf3a01f80a162613" + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" @@ -6685,11 +8901,11 @@ source-map@0.5.6: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" -"source-map@>= 0.1.2", source-map@^0.6.1, source-map@~0.6.1: +"source-map@>= 0.1.2", source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" -source-map@^0.1.38, source-map@~0.1.38: +source-map@^0.1.38, source-map@^0.1.40, source-map@~0.1.38, source-map@~0.1.7: version "0.1.43" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" dependencies: @@ -6701,7 +8917,7 @@ source-map@^0.4.2: dependencies: amdefine ">=0.0.4" -source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: +source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -6752,6 +8968,10 @@ spdy@^3.4.1: select-hose "^2.0.0" spdy-transport "^2.0.18" +speedometer@~0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" + split-string@^3.0.1, split-string@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.0.2.tgz#6129bc92731716e5aa1fb73c333078f0b7c114c8" @@ -6791,6 +9011,10 @@ static-extend@^0.1.1: version "1.4.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + statuses@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" @@ -6840,6 +9064,15 @@ stream-via@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/stream-via/-/stream-via-0.1.1.tgz#0cee5df9c959fb1d3f4eda4819f289d5f9205afc" +streamroller@0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-0.7.0.tgz#a1d1b7cf83d39afb0d63049a5acbf93493bdf64b" + dependencies: + date-format "^1.2.0" + debug "^3.1.0" + mkdirp "^0.5.1" + readable-stream "^2.3.0" + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -6880,6 +9113,12 @@ string_decoder@~1.0.3: dependencies: safe-buffer "~5.1.0" +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + dependencies: + safe-buffer "~5.1.0" + stringstream@~0.0.4, stringstream@~0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" @@ -6940,6 +9179,13 @@ style-loader@^0.8.3: dependencies: loader-utils "^0.2.5" +sumchecker@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-1.3.1.tgz#79bb3b4456dd04f18ebdbc0d703a1d1daec5105d" + dependencies: + debug "^2.2.0" + es6-promise "^4.0.5" + superagent@^1.4.0: version "1.8.5" resolved "https://registry.yarnpkg.com/superagent/-/superagent-1.8.5.tgz#1c0ddc3af30e80eb84ebc05cb2122da8fe940b55" @@ -7023,6 +9269,10 @@ svgo@^0.7.0: sax "~1.2.1" whet.extend "~0.9.9" +"sylvester@>= 0.0.12", "sylvester@>= 0.0.8": + version "0.0.21" + resolved "https://registry.yarnpkg.com/sylvester/-/sylvester-0.0.21.tgz#2987b1ce2bd2f38b0dce2a34388884bfa4400ea7" + table@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" @@ -7072,6 +9322,18 @@ tar@^2.0.0, tar@^2.2.1: fstream "^1.0.2" inherits "2" +tar@^4: + version "4.4.6" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b" + dependencies: + 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" + temp-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-path/-/temp-path-1.0.0.tgz#24b1543973ab442896d9ad367dd9cbdbfafe918b" @@ -7080,13 +9342,23 @@ terriajs-catalog-editor@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/terriajs-catalog-editor/-/terriajs-catalog-editor-0.2.0.tgz#d9c6679e53c4d92e87a531af896c6148888ed8e4" -terriajs-cesium@1.41.1: - version "1.41.1" - resolved "https://registry.yarnpkg.com/terriajs-cesium/-/terriajs-cesium-1.41.1.tgz#765d30bbabdffc4fe532dc4e4aae5494fbb68f85" +terriajs-cesium@1.41.2: + version "1.41.2" + resolved "https://registry.yarnpkg.com/terriajs-cesium/-/terriajs-cesium-1.41.2.tgz#38a9462331eab5841d1950c556e65552e145800b" dependencies: deamdify "^0.1.1" requirejs "^2.3.2" +terriajs-html2canvas@1.0.0-alpha.12-terriajs-1: + version "1.0.0-alpha.12-terriajs-1" + resolved "https://registry.yarnpkg.com/terriajs-html2canvas/-/terriajs-html2canvas-1.0.0-alpha.12-terriajs-1.tgz#592a7fddcccbef3657f2a5259f283d56245f5b5a" + dependencies: + css-line-break "1.0.1" + +terriajs-jasmine-ajax@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/terriajs-jasmine-ajax/-/terriajs-jasmine-ajax-3.2.1.tgz#4339bcde4696e0d2523c8377d6f65df743851655" + terriajs-schema@latest: version "0.4.3" resolved "https://registry.yarnpkg.com/terriajs-schema/-/terriajs-schema-0.4.3.tgz#70ec29e110ab9f64297181980be269f0f446db74" @@ -7117,72 +9389,27 @@ terriajs-server@^2.7.0: when "^3.7.7" yargs "^6.0.0" -terriajs@5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/terriajs/-/terriajs-5.6.0.tgz#1440f2b1b21859ba80d54c9241c86bc0a727e3e4" - dependencies: - "@mapbox/point-geometry" "^0.1.0" - "@mapbox/togeojson" "^0.16.0" - "@mapbox/vector-tile" "^1.3.0" - babel-core "^6.7.4" - babel-loader "^7.0.0" - babel-plugin-jsx-control-statements "^3.2.8" - babel-preset-env "^1.6.1" - babel-preset-react "^6.5.0" - class-list "^0.1.1" - classnames "^2.2.3" - clipboard "^1.7.1" - create-react-class "^15.6.2" - d3-array "^1.0.0" - d3-axis "^1.0.0" - d3-collection "^1.0.0" - d3-scale "^1.0.1" - d3-selection "^1.0.0" - d3-shape "^1.0.0" - d3-transition "^1.0.0" - dateformat "^2.0.0" - dompurify "^1.0.2" - extract-text-webpack-plugin "^3.0.0" - file-loader "^1.1.5" - gulp "^3.9.1" - hammerjs "^2.0.6" - html-to-react "1.2.12" - html2canvas "0.5.0-beta4" - imports-loader "^0.7.0" - inobounce "^0.1.2" - javascript-natural-sort "^0.7.1" - json-loader "^0.5.4" +terriajs-server@^2.7.3: + version "2.7.3" + resolved "https://registry.yarnpkg.com/terriajs-server/-/terriajs-server-2.7.3.tgz#8212838f843e136d4d498235d3f8c8d507d0e6e6" + dependencies: + aws-sdk "^2.4.4" + base-x "^2.0.4" + basic-auth "^1.0.4" + body-parser "^1.15.0" + compression "^1.6.0" + cors "^2.7.1" + express "^4.8.0" + formidable "^1.0.17" json5 "^0.5.0" - leaflet "1.0.3" - linkify-it "^2.0.0" - lodash.debounce "^4.0.6" - markdown-it "^8.0.0" - moment "2.18.1" - mustache "^2.2.1" - mutationobserver-shim "^0.3.1" - pbf "^3.0.1" - point-in-polygon "^1.0.1" - proj4 "^2.4.4" - prop-types "^15.6.0" - raw-loader "^0.5.1" - react "^15.5.4" - react-addons-pure-render-mixin "^15.6.0" - react-anything-sortable "^1.5.2" - react-datepicker "0.53.0" - react-dom "^15.5.4" - react-rangeslider "^2.0.0" - resolve "^1.1.7" - resolve-url-loader "^2.0.2" - sass-loader "^6.0.3" - simple-statistics "^4.1.0" - string-replace-webpack-plugin "^0.1.3" - style-loader "^0.19.1" - terriajs-cesium "1.41.1" - urijs "^1.18.12" - url-loader "^0.5.7" - urthecast "^1.0.0" - webpack "^3.8.1" - worker-loader "^1.0.0" + morgan "^1.7.0" + ogr2ogr "^1.0.0" + proj4 "^2.3.12" + proj4js-defs "0.0.1" + request "^2.67.0" + request-promise "^4.0.1" + when "^3.7.7" + yargs "^6.0.0" test-value@^1.0.1, test-value@^1.1.0: version "1.1.0" @@ -7208,6 +9435,10 @@ then-fs@^2.0.0: dependencies: promise ">=3.2 <8" +throttleit@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" + through2@^0.6.1: version "0.6.5" resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" @@ -7222,10 +9453,21 @@ through2@^2.0.0: readable-stream "^2.1.5" xtend "~4.0.1" +through2@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f" + dependencies: + readable-stream "~1.1.9" + xtend "~2.1.1" + through@2.x.x, through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" +thunkify@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d" + thunky@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz#bf30146824e2b6e67b0f2d7a4ac8beb26908684e" @@ -7250,16 +9492,24 @@ timers-browserify@^2.0.2: dependencies: setimmediate "^1.0.4" +timespan@2.3.x: + version "2.3.0" + resolved "https://registry.yarnpkg.com/timespan/-/timespan-2.3.0.tgz#4902ce040bd13d845c8f59b27e9d59bad6f39929" + tiny-emitter@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.0.2.tgz#82d27468aca5ade8e5fd1e6d22b57dd43ebdfb7c" -tmp@^0.0.33: +tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" dependencies: os-tmpdir "~1.0.2" +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -7289,6 +9539,15 @@ to-regex@^3.0.1: extend-shallow "^2.0.1" regex-not "^1.0.0" +to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + touch@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/touch/-/touch-0.0.3.tgz#51aef3d449571d4f287a5d87c9c8b49181a0db1d" @@ -7321,6 +9580,33 @@ tryit@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" +ts-loader@^3.0.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-3.5.0.tgz#151d004dcddb4cf8e381a3bf9d6b74c2d957a9c0" + dependencies: + chalk "^2.3.0" + enhanced-resolve "^3.0.0" + loader-utils "^1.0.2" + micromatch "^3.1.4" + semver "^5.0.1" + +ts-node@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-5.0.1.tgz#78e5d1cb3f704de1b641e43b76be2d4094f06f81" + dependencies: + arrify "^1.0.0" + chalk "^2.3.0" + diff "^3.1.0" + make-error "^1.1.1" + minimist "^1.2.0" + mkdirp "^0.5.1" + source-map-support "^0.5.3" + yn "^2.0.0" + +tsscmp@~1.0.0: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -7331,6 +9617,10 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" +tunnel-agent@~0.4.1: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" @@ -7348,10 +9638,21 @@ type-is@~1.6.15: media-typer "0.3.0" mime-types "~2.1.15" +type-is@~1.6.16: + version "1.6.16" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.18" + typedarray@^0.0.6, typedarray@~0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" +typescript@^2.9.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" + typical@^2.3.0, typical@^2.4.2, typical@^2.5.0, typical@^2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" @@ -7373,6 +9674,14 @@ uglify-js@^2.8.29: optionalDependencies: uglify-to-browserify "~1.0.0" +uglify-js@~2.3: + version "2.3.6" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.3.6.tgz#fa0984770b428b7a9b2a8058f46355d14fef211a" + dependencies: + async "~0.2.6" + optimist "~0.3.5" + source-map "~0.1.7" + uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" @@ -7389,6 +9698,10 @@ uid-number@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + unc-path-regex@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" @@ -7416,6 +9729,18 @@ underscore@1.6.0, underscore@~1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" +underscore@>=1.3.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" + +underscore@~1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" + +underscore@~1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" + underscore@~1.8.3: version "1.8.3" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" @@ -7466,6 +9791,21 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +unzip@~0.1.11: + version "0.1.11" + resolved "https://registry.yarnpkg.com/unzip/-/unzip-0.1.11.tgz#89749c63b058d7d90d619f86b98aa1535d3b97f0" + dependencies: + binary ">= 0.3.0 < 1" + fstream ">= 0.1.30 < 1" + match-stream ">= 0.0.2 < 1" + pullstream ">= 0.4.1 < 1" + readable-stream "~1.0.31" + setimmediate ">= 1.0.1 < 2" + +upath@^1.0.5: + version "1.1.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" + urijs@^1.18.12: version "1.19.0" resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.0.tgz#d8aa284d0e7469703a6988ad045c4cbfdf08ada0" @@ -7533,6 +9873,13 @@ user-home@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" +useragent@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.2.1.tgz#cf593ef4f2d175875e8bb658ea92e18a4fd06d8e" + dependencies: + lru-cache "2.2.x" + tmp "0.0.x" + util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7555,6 +9902,10 @@ uuid@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" +uws@~9.14.0: + version "9.14.0" + resolved "https://registry.yarnpkg.com/uws/-/uws-9.14.0.tgz#fac8386befc33a7a3705cbd58dc47b430ca4dd95" + v8flags@^2.0.2: version "2.1.1" resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" @@ -7568,6 +9919,10 @@ validate-npm-package-license@^3.0.1: spdx-correct "~1.0.0" spdx-expression-parse "~1.0.0" +vargs@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/vargs/-/vargs-0.1.0.tgz#6b6184da6520cc3204ce1b407cac26d92609ebff" + vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -7618,6 +9973,10 @@ vm-browserify@0.0.4: dependencies: indexof "0.0.1" +void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + walk-back@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/walk-back/-/walk-back-2.0.1.tgz#554e2a9d874fac47a8cb006bf44c2f0c4998a0a4" @@ -7640,6 +9999,18 @@ wbuf@^1.1.0, wbuf@^1.7.2: dependencies: minimalistic-assert "^1.0.0" +wd@^1.4.0: + version "1.10.3" + resolved "https://registry.yarnpkg.com/wd/-/wd-1.10.3.tgz#395ac7eb58a98e556369f8f8e5f845d91fb152a3" + dependencies: + archiver "2.1.1" + async "2.0.1" + lodash "4.17.10" + mkdirp "^0.5.1" + q "1.4.1" + request "2.85.0" + vargs "0.1.0" + webpack-dev-middleware@^1.11.0: version "1.12.0" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz#d34efefb2edda7e1d3b5dbe07289513219651709" @@ -7753,6 +10124,12 @@ which@1, which@^1.2.12, which@^1.2.9: dependencies: isexe "^2.0.0" +which@^1.2.1, which@^1.2.4: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + dependencies: + isexe "^2.0.0" + wide-align@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" @@ -7767,6 +10144,10 @@ window-size@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" +with-callback@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/with-callback/-/with-callback-1.0.2.tgz#a09629b9a920028d721404fb435bdcff5c91bc21" + wkt-parser@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/wkt-parser/-/wkt-parser-1.2.1.tgz#3339689dbc549c103fc5c7447543534785ff8d4d" @@ -7775,6 +10156,10 @@ wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" @@ -7804,12 +10189,24 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" +wrench@^1.5.8: + version "1.5.9" + resolved "https://registry.yarnpkg.com/wrench/-/wrench-1.5.9.tgz#411691c63a9b2531b1700267279bdeca23b2142a" + write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" dependencies: mkdirp "^0.5.1" +ws@~3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + xml2js@0.4.17: version "0.4.17" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" @@ -7823,14 +10220,32 @@ xmlbuilder@4.2.1, xmlbuilder@^4.1.0: dependencies: lodash "^4.0.0" +xmlcreate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-1.0.2.tgz#fa6bf762a60a413fb3dd8f4b03c5b269238d308f" + xmldom@~0.1.19: version "0.1.27" resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + +xregexp@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" + "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" +xtend@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + dependencies: + object-keys "~0.4.0" + y18n@^3.2.0, y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" @@ -7839,6 +10254,10 @@ yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" + yargs-parser@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" @@ -7880,7 +10299,7 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" -yargs@^3.32.0: +yargs@^3.30.0, yargs@^3.32.0: version "3.32.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" dependencies: @@ -7961,7 +10380,21 @@ yargs@~3.10.0: decamelize "^1.0.0" window-size "0.1.0" -zip-stream@^1.1.0: +yauzl@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" + dependencies: + fd-slicer "~1.0.1" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + +yn@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" + +zip-stream@^1.1.0, zip-stream@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-1.2.0.tgz#a8bc45f4c1b49699c6b90198baacaacdbcd4ba04" dependencies: From 8a9ba14d14d1ef05ac695c841477bc9e9d89c130 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Thu, 4 Oct 2018 20:32:30 +1000 Subject: [PATCH 002/246] Make the UI work a little. --- index.js | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/index.js b/index.js index fa61412460..3f9bf569d3 100644 --- a/index.js +++ b/index.js @@ -16,7 +16,7 @@ import registerCustomComponentTypes from 'terriajs/lib/ReactViews/Custom/registe import Terria from 'terriajs/lib/Models/TerriaNew'; // import updateApplicationOnHashChange from 'terriajs/lib/ViewModels/updateApplicationOnHashChange'; // import updateApplicationOnMessageFromParentWindow from 'terriajs/lib/ViewModels/updateApplicationOnMessageFromParentWindow'; -// import ViewState from 'terriajs/lib/ReactViewModels/ViewState'; +import ViewState from 'terriajs/lib/ReactViewModels/ViewState'; // import BingMapsSearchProviderViewModel from 'terriajs/lib/ViewModels/BingMapsSearchProviderViewModel.js'; // import GazetteerSearchProviderViewModel from 'terriajs/lib/ViewModels/GazetteerSearchProviderViewModel.js'; // import GnafSearchProviderViewModel from 'terriajs/lib/ViewModels/GnafSearchProviderViewModel.js'; @@ -42,21 +42,8 @@ var terria = new Terria(terriaOptions); registerCustomComponentTypes(terria); // Create the ViewState before terria.start so that errors have somewhere to go. -// const viewState = new ViewState({ -// terria: terria -// }); -const viewState = observable({ - hideMapUi: function() {}, - searchState: { - catalogSearchText: '' - }, - explorerPanelIsVisible: false, - notifications: [], - activeTabCategory: 'data-catalog', - openAddData: function() { - this.explorerPanelIsVisible = true; - this.activeTabCategory = 'data-catalog'; - } +const viewState = new ViewState({ + terria: terria }); CatalogMemberFactory.register('wms-group', WebMapServiceCatalogGroup); From 2d2555b725b931d28acf6fc08e4f3e6241da7d66 Mon Sep 17 00:00:00 2001 From: Stephen Davies Date: Fri, 30 Nov 2018 17:14:06 +1100 Subject: [PATCH 003/246] WIP mobx --- index.js | 16 +++++----- package.json | 8 ++--- yarn.lock | 89 +++++++++++++++++++++++++++++++++------------------- 3 files changed, 69 insertions(+), 44 deletions(-) diff --git a/index.js b/index.js index 3f9bf569d3..5dca49ee74 100644 --- a/index.js +++ b/index.js @@ -84,16 +84,16 @@ terria.start({ // updateApplicationOnMessageFromParentWindow(terria, window); // Create the various base map options. - // var createAustraliaBaseMapOptions = require('terriajs/lib/ViewModels/createAustraliaBaseMapOptions'); - // var createGlobalBaseMapOptions = require('terriajs/lib/ViewModels/createGlobalBaseMapOptions'); - // var selectBaseMap = require('terriajs/lib/ViewModels/selectBaseMap'); + var createAustraliaBaseMapOptions = require('terriajs/lib/ViewModels/createAustraliaBaseMapOptions'); + var createGlobalBaseMapOptions = require('terriajs/lib/ViewModels/createGlobalBaseMapOptions'); + var selectBaseMap = require('terriajs/lib/ViewModels/selectBaseMap'); - // var australiaBaseMaps = createAustraliaBaseMapOptions(terria); - // var globalBaseMaps = createGlobalBaseMapOptions(terria, terria.configParameters.bingMapsKey); + var australiaBaseMaps = createAustraliaBaseMapOptions(terria); + var globalBaseMaps = createGlobalBaseMapOptions(terria, terria.configParameters.bingMapsKey); - // var allBaseMaps = australiaBaseMaps.concat(globalBaseMaps); - // selectBaseMap(terria, allBaseMaps, 'Bing Maps Aerial with Labels', true); - const allBaseMaps = undefined; + var allBaseMaps = australiaBaseMaps.concat(globalBaseMaps); + selectBaseMap(terria, allBaseMaps, 'Bing Maps Aerial with Labels', true); + // const allBaseMaps = undefined; // Show a modal disclaimer before user can do anything else. // if (defined(terria.configParameters.globalDisclaimer)) { diff --git a/package.json b/package.json index c6184519db..af59f0688b 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "url": "http://github.com/TerriaJS/TerriaMap" }, "dependencies": { - "terriajs-server": "^2.7.0" + "terriajs-server": "^2.7.4" }, "config": { "awsProfile": "terria", @@ -62,9 +62,9 @@ "semver": "^5.0.0", "style-loader": "^0.19.1", "svg-sprite-loader": "^3.4.0", - "terriajs": "6.0.5", + "terriajs": ">6.0.0", "terriajs-catalog-editor": "^0.2.0", - "terriajs-cesium": "1.41.2", + "terriajs-cesium": "1.50.1", "terriajs-schema": "latest", "urijs": "^1.18.12", "url-loader": "^0.5.7", @@ -86,4 +86,4 @@ "deploy-current": "npm run get-deploy-overrides && gulp make-package --serverConfigOverride ./privateserverconfig.json --clientConfigOverride ./wwwroot/privateconfig.json && cd deploy/aws && ./stack create && cd ../..", "get-deploy-overrides": "aws s3 --profile $npm_package_config_awsProfile cp $npm_package_config_awsS3ServerConfigOverridePath ./privateserverconfig.json && aws s3 --profile $npm_package_config_awsProfile cp $npm_package_config_awsS3ClientConfigOverridePath ./wwwroot/privateconfig.json" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 58840e03d6..1c9cd207c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2270,6 +2270,10 @@ css-loader@^0.9.1: loader-utils "~0.2.2" source-map "~0.1.38" +css-mediaquery@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/css-mediaquery/-/css-mediaquery-0.1.2.tgz#6a2c37344928618631c54bd33cedd301da18bea0" + css-select@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" @@ -2951,9 +2955,9 @@ enzyme-matchers@^6.0.3: circular-json-es6 "^2.0.1" deep-equal-ident "^1.1.1" -enzyme@^3.3.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.4.1.tgz#d305af5bdb30b8aca56d199110421588c670ea0e" +enzyme@~3.4.0: + version "3.4.4" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.4.4.tgz#92c7c6b9e59d4ef0c3d36a75dccc0e41a5c14d21" dependencies: array.prototype.flat "^1.2.1" cheerio "^1.0.0-rc.2" @@ -3549,6 +3553,10 @@ file-loader@^1.1.5: loader-utils "^1.0.2" schema-utils "^0.3.0" +file-saver@^1.3.8: + version "1.3.8" + resolved "http://registry.npmjs.org/file-saver/-/file-saver-1.3.8.tgz#e68a30c7cb044e2fb362b428469feb291c2e09d8" + file-set@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/file-set/-/file-set-1.1.1.tgz#d3ec70c080ec8f18f204ba1de106780c9056926b" @@ -4581,6 +4589,10 @@ https-proxy-agent@^2.2.1: agent-base "^4.1.0" debug "^3.1.0" +hyphenate-style-name@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" + iconv-lite@0.4.15: version "0.4.15" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" @@ -4739,10 +4751,18 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" +ip6@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/ip6/-/ip6-0.0.4.tgz#44c5a9db79e39d405201b4d78d13b3870e48db31" + ip@^1.1.0, ip@^1.1.2, ip@^1.1.4, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" +ipaddr.js@1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.2.0.tgz#8aba49c9192799585bdd643e0ccb50e8ae777ba4" + ipaddr.js@1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0" @@ -5940,6 +5960,12 @@ marked@~0.3.6: buffers "~0.1.1" readable-stream "~1.0.0" +matchmediaquery@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/matchmediaquery/-/matchmediaquery-0.3.0.tgz#6f672bcdbc44de16825c6917fbcdcfb9b82607b1" + dependencies: + css-mediaquery "^0.1.2" + math-expression-evaluator@^1.2.14: version "1.2.17" resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" @@ -7526,7 +7552,7 @@ prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.0: loose-envify "^1.3.1" object-assign "^4.1.1" -prop-types@^15.6.2: +prop-types@^15.6.1, prop-types@^15.6.2: version "15.6.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" dependencies: @@ -7700,6 +7726,13 @@ range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" +range_check@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/range_check/-/range_check-1.4.0.tgz#cd87c7ac62c40ba9df69b8703c604f60c3748635" + dependencies: + ip6 "0.0.4" + ipaddr.js "1.2" + raw-body@2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" @@ -7808,6 +7841,14 @@ react-reconciler@^0.7.0: object-assign "^4.1.1" prop-types "^15.6.0" +react-responsive@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/react-responsive/-/react-responsive-5.0.0.tgz#b6e559b2ce8c4d82b0d47a7a78a74645b977e4af" + dependencies: + hyphenate-style-name "^1.0.0" + matchmediaquery "^0.3.0" + prop-types "^15.6.1" + react-shallow-testutils@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/react-shallow-testutils/-/react-shallow-testutils-3.0.1.tgz#41beb19aac29617569469cfe7945eaf525522432" @@ -8361,6 +8402,10 @@ ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + reverse-arguments@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/reverse-arguments/-/reverse-arguments-1.0.0.tgz#c28095a3a921ac715d61834ddece9027992667cd" @@ -9342,11 +9387,12 @@ terriajs-catalog-editor@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/terriajs-catalog-editor/-/terriajs-catalog-editor-0.2.0.tgz#d9c6679e53c4d92e87a531af896c6148888ed8e4" -terriajs-cesium@1.41.2: - version "1.41.2" - resolved "https://registry.yarnpkg.com/terriajs-cesium/-/terriajs-cesium-1.41.2.tgz#38a9462331eab5841d1950c556e65552e145800b" +terriajs-cesium@1.50.1: + version "1.50.1" + resolved "https://registry.yarnpkg.com/terriajs-cesium/-/terriajs-cesium-1.50.1.tgz#b9dfa03edc606e58daeb731aa06cfa45d10ead4f" dependencies: deamdify "^0.1.1" + dompurify "^1.0.2" requirejs "^2.3.2" terriajs-html2canvas@1.0.0-alpha.12-terriajs-1: @@ -9367,31 +9413,9 @@ terriajs-schema@latest: when "^3.7.7" yargs "^3.32.0" -terriajs-server@^2.7.0: - version "2.7.1" - resolved "https://registry.yarnpkg.com/terriajs-server/-/terriajs-server-2.7.1.tgz#654a707a066eb153f2c80bed192753d99ec632f6" - dependencies: - aws-sdk "^2.4.4" - base-x "^2.0.4" - basic-auth "^1.0.4" - body-parser "^1.15.0" - compression "^1.6.0" - cors "^2.7.1" - express "^4.8.0" - formidable "^1.0.17" - json5 "^0.5.0" - morgan "^1.7.0" - ogr2ogr "^1.0.0" - proj4 "^2.3.12" - proj4js-defs "0.0.1" - request "^2.67.0" - request-promise "^4.0.1" - when "^3.7.7" - yargs "^6.0.0" - -terriajs-server@^2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/terriajs-server/-/terriajs-server-2.7.3.tgz#8212838f843e136d4d498235d3f8c8d507d0e6e6" +terriajs-server@^2.7.4: + version "2.8.0" + resolved "https://registry.yarnpkg.com/terriajs-server/-/terriajs-server-2.8.0.tgz#c05c661fe6b20c6d0c83b7c845a1c5193feab2a2" dependencies: aws-sdk "^2.4.4" base-x "^2.0.4" @@ -9406,6 +9430,7 @@ terriajs-server@^2.7.3: ogr2ogr "^1.0.0" proj4 "^2.3.12" proj4js-defs "0.0.1" + range_check "^1.4.0" request "^2.67.0" request-promise "^4.0.1" when "^3.7.7" From f6f1c16ef77188887ba6bcae727efb8cd00aa89e Mon Sep 17 00:00:00 2001 From: Stephen Davies Date: Wed, 19 Dec 2018 16:35:33 +1100 Subject: [PATCH 004/246] Remove basemaps for now and use a WMS one --- index.js | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/index.js b/index.js index 5dca49ee74..7ebba27c14 100644 --- a/index.js +++ b/index.js @@ -25,6 +25,9 @@ import render from './lib/Views/render'; import { observable } from 'mobx'; import CatalogMemberFactory from 'terriajs/lib/Models/CatalogMemberFactory'; import WebMapServiceCatalogGroup from 'terriajs/lib/Models/WebMapServiceCatalogGroupNew'; +import WebMapServiceCatalogItem from 'terriajs/lib/Models/WebMapServiceCatalogItem3'; +import CommonStrata from 'terriajs/lib/Models/CommonStrata'; + // Register all types of catalog members in the core TerriaJS. If you only want to register a subset of them // (i.e. to reduce the size of your application if you don't actually use them all), feel free to copy a subset of @@ -84,15 +87,26 @@ terria.start({ // updateApplicationOnMessageFromParentWindow(terria, window); // Create the various base map options. - var createAustraliaBaseMapOptions = require('terriajs/lib/ViewModels/createAustraliaBaseMapOptions'); - var createGlobalBaseMapOptions = require('terriajs/lib/ViewModels/createGlobalBaseMapOptions'); - var selectBaseMap = require('terriajs/lib/ViewModels/selectBaseMap'); - - var australiaBaseMaps = createAustraliaBaseMapOptions(terria); - var globalBaseMaps = createGlobalBaseMapOptions(terria, terria.configParameters.bingMapsKey); - - var allBaseMaps = australiaBaseMaps.concat(globalBaseMaps); - selectBaseMap(terria, allBaseMaps, 'Bing Maps Aerial with Labels', true); + // var createAustraliaBaseMapOptions = require('terriajs/lib/ViewModels/createAustraliaBaseMapOptions'); + // var createGlobalBaseMapOptions = require('terriajs/lib/ViewModels/createGlobalBaseMapOptions'); + // var selectBaseMap = require('terriajs/lib/ViewModels/selectBaseMap'); + + // var australiaBaseMaps = createAustraliaBaseMapOptions(terria); + // var globalBaseMaps = createGlobalBaseMapOptions(terria, terria.configParameters.bingMapsKey); + + // var allBaseMaps = australiaBaseMaps.concat(globalBaseMaps); + // selectBaseMap(terria, allBaseMaps, 'Bing Maps Aerial with Labels', true); + const blackMarble = new WebMapServiceCatalogItem(terria); + const codedProperties = blackMarble.addStratum(CommonStrata.user); + codedProperties.name = 'NASA Black Marble'; + codedProperties.url = 'http://geoserver.nationalmap.nicta.com.au/imagery/nasa-black-marble/wms'; + codedProperties.layers = 'nasa-black-marble:dnb_land_ocean_ice.2012.54000x27000_geo'; + codedProperties.parameters = { + tiled: true + }; + codedProperties.opacity = 1.0; + codedProperties.isRequiredForRendering = true; + terria.baseMap = blackMarble; // const allBaseMaps = undefined; // Show a modal disclaimer before user can do anything else. @@ -121,7 +135,7 @@ terria.start({ // } // } - render(terria, allBaseMaps, viewState); + render(terria, [], viewState); } catch (e) { console.error(e); console.error(e.stack); From fdac1708e7d20b95855d35bdd4477f39b6900c55 Mon Sep 17 00:00:00 2001 From: Stephen Davies Date: Mon, 14 Jan 2019 16:45:59 +1100 Subject: [PATCH 005/246] Fix to match current state of terriajs refactor --- index.js | 16 ++++++++-------- lib/Views/UserInterface.jsx | 18 +++++++++--------- package.json | 4 ++-- yarn.lock | 6 +++--- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/index.js b/index.js index 7ebba27c14..7303f5d2f3 100644 --- a/index.js +++ b/index.js @@ -10,9 +10,9 @@ var terriaOptions = { import GoogleAnalytics from 'terriajs/lib/Core/GoogleAnalytics'; import ShareDataService from 'terriajs/lib/Models/ShareDataService'; import raiseErrorToUser from 'terriajs/lib/Models/raiseErrorToUser'; -import registerAnalytics from 'terriajs/lib/Models/registerAnalytics'; -import registerCatalogMembers from 'terriajs/lib/Models/registerCatalogMembers'; -import registerCustomComponentTypes from 'terriajs/lib/ReactViews/Custom/registerCustomComponentTypes'; +// import registerAnalytics from 'terriajs/lib/Models/registerAnalytics'; +// import registerCatalogMembers from 'terriajs/lib/Models/registerCatalogMembers'; +// import registerCustomComponentTypes from 'terriajs/lib/ReactViews/Custom/registerCustomComponentTypes'; import Terria from 'terriajs/lib/Models/TerriaNew'; // import updateApplicationOnHashChange from 'terriajs/lib/ViewModels/updateApplicationOnHashChange'; // import updateApplicationOnMessageFromParentWindow from 'terriajs/lib/ViewModels/updateApplicationOnMessageFromParentWindow'; @@ -24,16 +24,16 @@ import ViewState from 'terriajs/lib/ReactViewModels/ViewState'; import render from './lib/Views/render'; import { observable } from 'mobx'; import CatalogMemberFactory from 'terriajs/lib/Models/CatalogMemberFactory'; -import WebMapServiceCatalogGroup from 'terriajs/lib/Models/WebMapServiceCatalogGroupNew'; -import WebMapServiceCatalogItem from 'terriajs/lib/Models/WebMapServiceCatalogItem3'; +import WebMapServiceCatalogGroup from 'terriajs/lib/Models/WebMapServiceCatalogGroup'; +import WebMapServiceCatalogItem from 'terriajs/lib/Models/WebMapServiceCatalogItem'; import CommonStrata from 'terriajs/lib/Models/CommonStrata'; // Register all types of catalog members in the core TerriaJS. If you only want to register a subset of them // (i.e. to reduce the size of your application if you don't actually use them all), feel free to copy a subset of // the code in the registerCatalogMembers function here instead. -registerCatalogMembers(); -registerAnalytics(); +// registerCatalogMembers(); +// registerAnalytics(); terriaOptions.analytics = new GoogleAnalytics(); @@ -42,7 +42,7 @@ var terria = new Terria(terriaOptions); // Register custom components in the core TerriaJS. If you only want to register a subset of them, or to add your own, // insert your custom version of the code in the registerCustomComponentTypes function here instead. -registerCustomComponentTypes(terria); +// registerCustomComponentTypes(terria); // Create the ViewState before terria.start so that errors have somewhere to go. const viewState = new ViewState({ diff --git a/lib/Views/UserInterface.jsx b/lib/Views/UserInterface.jsx index e318b6d4f4..fad74ebf53 100644 --- a/lib/Views/UserInterface.jsx +++ b/lib/Views/UserInterface.jsx @@ -10,16 +10,16 @@ import version from '../../version'; import './global.scss'; -function loadAugmentedVirtuality(callback) { - require.ensure('terriajs/lib/ReactViews/Map/Navigation/AugmentedVirtualityTool', () => { - const AugmentedVirtualityTool = require('terriajs/lib/ReactViews/Map/Navigation/AugmentedVirtualityTool'); - callback(AugmentedVirtualityTool); - }, 'AugmentedVirtuality'); -} +// function loadAugmentedVirtuality(callback) { +// require.ensure('terriajs/lib/ReactViews/Map/Navigation/AugmentedVirtualityTool', () => { +// const AugmentedVirtualityTool = require('terriajs/lib/ReactViews/Map/Navigation/AugmentedVirtualityTool'); +// callback(AugmentedVirtualityTool); +// }, 'AugmentedVirtuality'); +// } -function isBrowserSupportedAV() { - return /Android|iPhone|iPad/i.test(navigator.userAgent); -} +// function isBrowserSupportedAV() { +// return /Android|iPhone|iPad/i.test(navigator.userAgent); +// } export default function UserInterface(props) { return ( diff --git a/package.json b/package.json index af59f0688b..f7c518c48e 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "svg-sprite-loader": "^3.4.0", "terriajs": ">6.0.0", "terriajs-catalog-editor": "^0.2.0", - "terriajs-cesium": "1.50.1", + "terriajs-cesium": "1.51.0", "terriajs-schema": "latest", "urijs": "^1.18.12", "url-loader": "^0.5.7", @@ -86,4 +86,4 @@ "deploy-current": "npm run get-deploy-overrides && gulp make-package --serverConfigOverride ./privateserverconfig.json --clientConfigOverride ./wwwroot/privateconfig.json && cd deploy/aws && ./stack create && cd ../..", "get-deploy-overrides": "aws s3 --profile $npm_package_config_awsProfile cp $npm_package_config_awsS3ServerConfigOverridePath ./privateserverconfig.json && aws s3 --profile $npm_package_config_awsProfile cp $npm_package_config_awsS3ClientConfigOverridePath ./wwwroot/privateconfig.json" } -} +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 1c9cd207c5..15e639ea57 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9387,9 +9387,9 @@ terriajs-catalog-editor@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/terriajs-catalog-editor/-/terriajs-catalog-editor-0.2.0.tgz#d9c6679e53c4d92e87a531af896c6148888ed8e4" -terriajs-cesium@1.50.1: - version "1.50.1" - resolved "https://registry.yarnpkg.com/terriajs-cesium/-/terriajs-cesium-1.50.1.tgz#b9dfa03edc606e58daeb731aa06cfa45d10ead4f" +terriajs-cesium@1.51.0: + version "1.51.0" + resolved "https://registry.yarnpkg.com/terriajs-cesium/-/terriajs-cesium-1.51.0.tgz#e19102ab6442087794b3f12400a73d1c232c40fa" dependencies: deamdify "^0.1.1" dompurify "^1.0.2" From 247056de3de8e2bdcb2bb44836354643daddf732 Mon Sep 17 00:00:00 2001 From: Stephen Davies Date: Mon, 14 Jan 2019 23:12:04 +1100 Subject: [PATCH 006/246] Fix initialisation of base map --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 7303f5d2f3..f677e41a3a 100644 --- a/index.js +++ b/index.js @@ -96,7 +96,7 @@ terria.start({ // var allBaseMaps = australiaBaseMaps.concat(globalBaseMaps); // selectBaseMap(terria, allBaseMaps, 'Bing Maps Aerial with Labels', true); - const blackMarble = new WebMapServiceCatalogItem(terria); + const blackMarble = new WebMapServiceCatalogItem('basemap-black-marble', terria); const codedProperties = blackMarble.addStratum(CommonStrata.user); codedProperties.name = 'NASA Black Marble'; codedProperties.url = 'http://geoserver.nationalmap.nicta.com.au/imagery/nasa-black-marble/wms'; From 35fc79b3bdbd75fa1deaa2222e91262e471e5eb4 Mon Sep 17 00:00:00 2001 From: Stephen Davies Date: Fri, 18 Jan 2019 16:35:34 +1100 Subject: [PATCH 007/246] WIP stuff --- index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 7303f5d2f3..9740d2e40f 100644 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ import raiseErrorToUser from 'terriajs/lib/Models/raiseErrorToUser'; // import registerAnalytics from 'terriajs/lib/Models/registerAnalytics'; // import registerCatalogMembers from 'terriajs/lib/Models/registerCatalogMembers'; // import registerCustomComponentTypes from 'terriajs/lib/ReactViews/Custom/registerCustomComponentTypes'; -import Terria from 'terriajs/lib/Models/TerriaNew'; +import Terria from 'terriajs/lib/Models/Terria'; // import updateApplicationOnHashChange from 'terriajs/lib/ViewModels/updateApplicationOnHashChange'; // import updateApplicationOnMessageFromParentWindow from 'terriajs/lib/ViewModels/updateApplicationOnMessageFromParentWindow'; import ViewState from 'terriajs/lib/ReactViewModels/ViewState'; @@ -106,6 +106,7 @@ terria.start({ }; codedProperties.opacity = 1.0; codedProperties.isRequiredForRendering = true; + blackMarble.show = true; terria.baseMap = blackMarble; // const allBaseMaps = undefined; From f4c080e4b3dd497075da247915f6db98bfd779e4 Mon Sep 17 00:00:00 2001 From: Stephen Davies Date: Tue, 22 Jan 2019 23:56:22 +1100 Subject: [PATCH 008/246] Call load on basemap --- index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/index.js b/index.js index 5a07128f64..e621196c50 100644 --- a/index.js +++ b/index.js @@ -106,6 +106,7 @@ terria.start({ }; codedProperties.opacity = 1.0; codedProperties.isRequiredForRendering = true; + blackMarble.loadData(); blackMarble.show = true; terria.baseMap = blackMarble; // const allBaseMaps = undefined; From 593b5fcabbd47f46f1a14535c04a2a0800bbc290 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Tue, 12 Mar 2019 20:36:57 +1100 Subject: [PATCH 009/246] addStratum -> getOrCreateStratum --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index e621196c50..c44e921f15 100644 --- a/index.js +++ b/index.js @@ -97,7 +97,7 @@ terria.start({ // var allBaseMaps = australiaBaseMaps.concat(globalBaseMaps); // selectBaseMap(terria, allBaseMaps, 'Bing Maps Aerial with Labels', true); const blackMarble = new WebMapServiceCatalogItem('basemap-black-marble', terria); - const codedProperties = blackMarble.addStratum(CommonStrata.user); + const codedProperties = blackMarble.getOrCreateStratum(CommonStrata.user); codedProperties.name = 'NASA Black Marble'; codedProperties.url = 'http://geoserver.nationalmap.nicta.com.au/imagery/nasa-black-marble/wms'; codedProperties.layers = 'nasa-black-marble:dnb_land_ocean_ice.2012.54000x27000_geo'; From ab5ffe6e38d5696451752541b0cec870b4849cc7 Mon Sep 17 00:00:00 2001 From: Nanda Date: Fri, 12 Apr 2019 16:31:33 +1000 Subject: [PATCH 010/246] Register GeoJsonCatalogItem. --- index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.js b/index.js index 36e90a88c5..8dffce9f0e 100644 --- a/index.js +++ b/index.js @@ -26,6 +26,7 @@ import { observable } from 'mobx'; import CatalogMemberFactory from 'terriajs/lib/Models/CatalogMemberFactory'; import WebMapServiceCatalogGroup from 'terriajs/lib/Models/WebMapServiceCatalogGroup'; import WebMapServiceCatalogItem from 'terriajs/lib/Models/WebMapServiceCatalogItem'; +import GeoJsonCatalogItem from "terriajs/lib/Models/GeoJsonCatalogItem"; import CommonStrata from 'terriajs/lib/Models/CommonStrata'; @@ -50,6 +51,7 @@ const viewState = new ViewState({ }); CatalogMemberFactory.register('wms-group', WebMapServiceCatalogGroup); +CatalogMemberFactory.register('geojson', GeoJsonCatalogItem); if (process.env.NODE_ENV === "development") { window.viewState = viewState; From e7f944bd701974212a460a19d848c2798b6a9d4c Mon Sep 17 00:00:00 2001 From: Nanda Date: Fri, 12 Apr 2019 16:32:45 +1000 Subject: [PATCH 011/246] Do not set `.show` --- index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/index.js b/index.js index 8dffce9f0e..a2155f7d1d 100644 --- a/index.js +++ b/index.js @@ -109,7 +109,6 @@ module.exports = terria.start({ codedProperties.opacity = 1.0; codedProperties.isRequiredForRendering = true; blackMarble.loadData(); - blackMarble.show = true; terria.baseMap = blackMarble; // const allBaseMaps = undefined; From eaf88d8e89a142d393964c0a99cbd0255d47b1bd Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Sun, 14 Apr 2019 20:54:39 +1000 Subject: [PATCH 012/246] Add example GeoJSON to the catalog, improve sourcemaps. --- buildprocess/webpack.config.js | 2 +- wwwroot/init/simple.json | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/buildprocess/webpack.config.js b/buildprocess/webpack.config.js index d13883caed..f3efbf321f 100644 --- a/buildprocess/webpack.config.js +++ b/buildprocess/webpack.config.js @@ -17,7 +17,7 @@ module.exports = function(devMode, hot) { sourcePrefix: '', // to avoid breaking multi-line string literals by inserting extra tabs. globalObject: '(self || window)' // to avoid breaking in web worker (https://github.com/webpack/webpack/issues/6642) }, - devtool: devMode ? 'cheap-inline-source-map' : 'source-map', + devtool: 'source-map', //devMode ? 'cheap-inline-source-map' : 'source-map', module: { rules: [ { diff --git a/wwwroot/init/simple.json b/wwwroot/init/simple.json index 833613e24b..7ffd48ff3a 100644 --- a/wwwroot/init/simple.json +++ b/wwwroot/init/simple.json @@ -4,6 +4,11 @@ "type": "wms-group", "name": "Test", "url": "https://programs.communications.gov.au/geoserver/ows" + }, + { + "type": "geojson", + "name": "GeoJSON Test", + "url": "test/bike_racks.geojson" } ] } From 733b04fc54d4bd2d125e776e9230f7abdb33ba30 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Sun, 14 Apr 2019 23:49:22 +1000 Subject: [PATCH 013/246] loadData -> loadMapItems --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index a2155f7d1d..df88263471 100644 --- a/index.js +++ b/index.js @@ -108,7 +108,7 @@ module.exports = terria.start({ }; codedProperties.opacity = 1.0; codedProperties.isRequiredForRendering = true; - blackMarble.loadData(); + blackMarble.loadMapItems(); terria.baseMap = blackMarble; // const allBaseMaps = undefined; From b97f5742d4a6d023ddea05f2269dd0c90aeb5285 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 1 May 2019 17:53:01 +1000 Subject: [PATCH 014/246] Add new catalog entries and model registration. --- index.js | 7 +++++-- wwwroot/index.html | 2 +- wwwroot/init/simple.json | 11 +++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index df88263471..23c8c3aa41 100644 --- a/index.js +++ b/index.js @@ -27,6 +27,7 @@ import CatalogMemberFactory from 'terriajs/lib/Models/CatalogMemberFactory'; import WebMapServiceCatalogGroup from 'terriajs/lib/Models/WebMapServiceCatalogGroup'; import WebMapServiceCatalogItem from 'terriajs/lib/Models/WebMapServiceCatalogItem'; import GeoJsonCatalogItem from "terriajs/lib/Models/GeoJsonCatalogItem"; +import MagdaCatalogItem from "terriajs/lib/Models/MagdaCatalogItem"; import CommonStrata from 'terriajs/lib/Models/CommonStrata'; @@ -50,8 +51,10 @@ const viewState = new ViewState({ terria: terria }); -CatalogMemberFactory.register('wms-group', WebMapServiceCatalogGroup); -CatalogMemberFactory.register('geojson', GeoJsonCatalogItem); +CatalogMemberFactory.register(WebMapServiceCatalogItem.type, WebMapServiceCatalogItem); +CatalogMemberFactory.register(WebMapServiceCatalogGroup.type, WebMapServiceCatalogGroup); +CatalogMemberFactory.register(GeoJsonCatalogItem.type, GeoJsonCatalogItem); +CatalogMemberFactory.register(MagdaCatalogItem.type, MagdaCatalogItem); if (process.env.NODE_ENV === "development") { window.viewState = viewState; diff --git a/wwwroot/index.html b/wwwroot/index.html index 8589c96b3d..26a855f52d 100644 --- a/wwwroot/index.html +++ b/wwwroot/index.html @@ -30,7 +30,7 @@ - + diff --git a/wwwroot/init/simple.json b/wwwroot/init/simple.json index 7ffd48ff3a..6cabadca54 100644 --- a/wwwroot/init/simple.json +++ b/wwwroot/init/simple.json @@ -9,6 +9,17 @@ "type": "geojson", "name": "GeoJSON Test", "url": "test/bike_racks.geojson" + }, + { + "type": "wms-group", + "name": "Marine water quality grids for the Great Barrier Reef region - monthly data", + "url": "/proxy/_0d/http://ereeftds.bom.gov.au/ereefs/tds/wms/ereefs/mwq_gridAgg_P1M" + }, + { + "type": "magda", + "url": "https://data.gov.au", + "name": "Magda Item", + "datasetId": "ds-ga-93e51355-f5b9-4219-8dc4-815732d9e869" } ] } From 11da0b4a3842e16a25867749392309229afbc6a3 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Fri, 10 May 2019 17:08:04 +1000 Subject: [PATCH 015/246] Register CsvCatalogItem, add example to catalog. --- index.js | 2 ++ wwwroot/init/simple.json | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/index.js b/index.js index 23c8c3aa41..2adbeb7463 100644 --- a/index.js +++ b/index.js @@ -28,6 +28,7 @@ import WebMapServiceCatalogGroup from 'terriajs/lib/Models/WebMapServiceCatalogG import WebMapServiceCatalogItem from 'terriajs/lib/Models/WebMapServiceCatalogItem'; import GeoJsonCatalogItem from "terriajs/lib/Models/GeoJsonCatalogItem"; import MagdaCatalogItem from "terriajs/lib/Models/MagdaCatalogItem"; +import CsvCatalogItem from "terriajs/lib/Models/CsvCatalogItem"; import CommonStrata from 'terriajs/lib/Models/CommonStrata'; @@ -55,6 +56,7 @@ CatalogMemberFactory.register(WebMapServiceCatalogItem.type, WebMapServiceCatalo CatalogMemberFactory.register(WebMapServiceCatalogGroup.type, WebMapServiceCatalogGroup); CatalogMemberFactory.register(GeoJsonCatalogItem.type, GeoJsonCatalogItem); CatalogMemberFactory.register(MagdaCatalogItem.type, MagdaCatalogItem); +CatalogMemberFactory.register(CsvCatalogItem.type, CsvCatalogItem); if (process.env.NODE_ENV === "development") { window.viewState = viewState; diff --git a/wwwroot/init/simple.json b/wwwroot/init/simple.json index 6cabadca54..c55863b07d 100644 --- a/wwwroot/init/simple.json +++ b/wwwroot/init/simple.json @@ -20,6 +20,11 @@ "url": "https://data.gov.au", "name": "Magda Item", "datasetId": "ds-ga-93e51355-f5b9-4219-8dc4-815732d9e869" + }, + { + "type": "csv", + "url": "test/incidents_notime.csv", + "name": "CSV Test" } ] } From 60dd886c3d8b8b0e06af5c57bb012c81565d4993 Mon Sep 17 00:00:00 2001 From: Stephen Davies Date: Wed, 22 May 2019 09:45:14 +1000 Subject: [PATCH 016/246] Register basemaps for basemap switcher --- index.js | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/index.js b/index.js index 2adbeb7463..9369ce8d9c 100644 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ import raiseErrorToUser from 'terriajs/lib/Models/raiseErrorToUser'; // import registerAnalytics from 'terriajs/lib/Models/registerAnalytics'; // import registerCatalogMembers from 'terriajs/lib/Models/registerCatalogMembers'; // import registerCustomComponentTypes from 'terriajs/lib/ReactViews/Custom/registerCustomComponentTypes'; -import Terria from 'terriajs/lib/Models/Terria'; +import Terria, { BaseMapViewModel } from 'terriajs/lib/Models/Terria'; // import updateApplicationOnHashChange from 'terriajs/lib/ViewModels/updateApplicationOnHashChange'; // import updateApplicationOnMessageFromParentWindow from 'terriajs/lib/ViewModels/updateApplicationOnMessageFromParentWindow'; import ViewState from 'terriajs/lib/ReactViewModels/ViewState'; @@ -30,6 +30,7 @@ import GeoJsonCatalogItem from "terriajs/lib/Models/GeoJsonCatalogItem"; import MagdaCatalogItem from "terriajs/lib/Models/MagdaCatalogItem"; import CsvCatalogItem from "terriajs/lib/Models/CsvCatalogItem"; import CommonStrata from 'terriajs/lib/Models/CommonStrata'; +import createGlobalBaseMapOptions from 'terriajs/lib/ViewModels/createGlobalBaseMapOptions'; // Register all types of catalog members in the core TerriaJS. If you only want to register a subset of them @@ -95,26 +96,14 @@ module.exports = terria.start({ // Create the various base map options. // var createAustraliaBaseMapOptions = require('terriajs/lib/ViewModels/createAustraliaBaseMapOptions'); - // var createGlobalBaseMapOptions = require('terriajs/lib/ViewModels/createGlobalBaseMapOptions'); // var selectBaseMap = require('terriajs/lib/ViewModels/selectBaseMap'); // var australiaBaseMaps = createAustraliaBaseMapOptions(terria); - // var globalBaseMaps = createGlobalBaseMapOptions(terria, terria.configParameters.bingMapsKey); + const globalBaseMaps = createGlobalBaseMapOptions(terria, terria.configParameters.bingMapsKey); + terria.baseMaps.push(...globalBaseMaps); // var allBaseMaps = australiaBaseMaps.concat(globalBaseMaps); // selectBaseMap(terria, allBaseMaps, 'Bing Maps Aerial with Labels', true); - const blackMarble = new WebMapServiceCatalogItem('basemap-black-marble', terria); - const codedProperties = blackMarble.getOrCreateStratum(CommonStrata.user); - codedProperties.name = 'NASA Black Marble'; - codedProperties.url = 'http://geoserver.nationalmap.nicta.com.au/imagery/nasa-black-marble/wms'; - codedProperties.layers = 'nasa-black-marble:dnb_land_ocean_ice.2012.54000x27000_geo'; - codedProperties.parameters = { - tiled: true - }; - codedProperties.opacity = 1.0; - codedProperties.isRequiredForRendering = true; - blackMarble.loadMapItems(); - terria.baseMap = blackMarble; // const allBaseMaps = undefined; // Show a modal disclaimer before user can do anything else. From 785974d7468e64c90d901e3143bf2c1cbcc097a4 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Thu, 23 May 2019 09:29:57 +1000 Subject: [PATCH 017/246] Add another CSV layer. --- wwwroot/init/simple.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wwwroot/init/simple.json b/wwwroot/init/simple.json index c55863b07d..cdd4f15878 100644 --- a/wwwroot/init/simple.json +++ b/wwwroot/init/simple.json @@ -25,6 +25,11 @@ "type": "csv", "url": "test/incidents_notime.csv", "name": "CSV Test" + }, + { + "type": "csv", + "url": "test/localphotostories20092014.csv", + "name": "ABC Photo Stories" } ] } From 6670bd1841c7ece18832c91c3ab30dc1aed8ece2 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Thu, 23 May 2019 14:15:35 +1000 Subject: [PATCH 018/246] Add region-mapped CSV to the catalog. --- wwwroot/init/simple.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wwwroot/init/simple.json b/wwwroot/init/simple.json index cdd4f15878..844ba99714 100644 --- a/wwwroot/init/simple.json +++ b/wwwroot/init/simple.json @@ -30,6 +30,11 @@ "type": "csv", "url": "test/localphotostories20092014.csv", "name": "ABC Photo Stories" + }, + { + "type": "csv", + "url": "test/NSW_LGA_NEXIS_201212.csv", + "name": "NSW LGA NEXIS 2012" } ] } From 3af22397facb61c9a2b46b69d347ca960b9cc425 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Sun, 26 May 2019 22:08:17 +1000 Subject: [PATCH 019/246] Fix eslint warnings. --- index.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/index.js b/index.js index 9369ce8d9c..64e09f1d3f 100644 --- a/index.js +++ b/index.js @@ -13,7 +13,7 @@ import raiseErrorToUser from 'terriajs/lib/Models/raiseErrorToUser'; // import registerAnalytics from 'terriajs/lib/Models/registerAnalytics'; // import registerCatalogMembers from 'terriajs/lib/Models/registerCatalogMembers'; // import registerCustomComponentTypes from 'terriajs/lib/ReactViews/Custom/registerCustomComponentTypes'; -import Terria, { BaseMapViewModel } from 'terriajs/lib/Models/Terria'; +import Terria from 'terriajs/lib/Models/Terria'; // import updateApplicationOnHashChange from 'terriajs/lib/ViewModels/updateApplicationOnHashChange'; // import updateApplicationOnMessageFromParentWindow from 'terriajs/lib/ViewModels/updateApplicationOnMessageFromParentWindow'; import ViewState from 'terriajs/lib/ReactViewModels/ViewState'; @@ -22,14 +22,12 @@ import ViewState from 'terriajs/lib/ReactViewModels/ViewState'; // import GnafSearchProviderViewModel from 'terriajs/lib/ViewModels/GnafSearchProviderViewModel.js'; // import defined from 'terriajs-cesium/Source/Core/defined'; import render from './lib/Views/render'; -import { observable } from 'mobx'; import CatalogMemberFactory from 'terriajs/lib/Models/CatalogMemberFactory'; import WebMapServiceCatalogGroup from 'terriajs/lib/Models/WebMapServiceCatalogGroup'; import WebMapServiceCatalogItem from 'terriajs/lib/Models/WebMapServiceCatalogItem'; import GeoJsonCatalogItem from "terriajs/lib/Models/GeoJsonCatalogItem"; import MagdaCatalogItem from "terriajs/lib/Models/MagdaCatalogItem"; import CsvCatalogItem from "terriajs/lib/Models/CsvCatalogItem"; -import CommonStrata from 'terriajs/lib/Models/CommonStrata'; import createGlobalBaseMapOptions from 'terriajs/lib/ViewModels/createGlobalBaseMapOptions'; From 262d4ab25322995ff5e559000643c928cc458b86 Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Fri, 31 May 2019 17:55:49 +1000 Subject: [PATCH 020/246] add wip routing --- buildprocess/generate-init-routes.js | 35 +++++++++++++++++++++++ buildprocess/webpack.config.js | 24 +++++++++++++++- lib/Styles/loader.css | 3 ++ package.json | 2 ++ wwwroot/index.html | 3 +- wwwroot/index_prerender.html | 42 ++++++++++++++++++++++++++++ 6 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 buildprocess/generate-init-routes.js create mode 100644 wwwroot/index_prerender.html diff --git a/buildprocess/generate-init-routes.js b/buildprocess/generate-init-routes.js new file mode 100644 index 0000000000..b31ba6ecbb --- /dev/null +++ b/buildprocess/generate-init-routes.js @@ -0,0 +1,35 @@ +var fs = require("fs"); +var path = require("path"); + +const rootGroupName = "Root Group"; + +const getNameFromItem = item => item.id || item.name; + +const resUrl = url => + path.resolve(__dirname, "..", "wwwroot", "init", `${url}.json`); + +const getCatalogFromInitName = initName => resUrl(initName); + +const getRoutes = (topCatalogItem, currentRoute = rootGroupName) => + topCatalogItem.reduce((acc, catalogItem) => { + const nameForCurrentItem = getNameFromItem(catalogItem); + const finalRoute = `${currentRoute}/${nameForCurrentItem}`; + const items = catalogItem.items && getRoutes(catalogItem.items, finalRoute); + + if (items) { + return [...acc, ...items, finalRoute]; + } + return [...acc, finalRoute]; + }, []); + +function generateRoutes(initUrls) { + return initUrls.reduce((acc, initName) => { + const fsPathForInit = getCatalogFromInitName(initName); + const data = fs.readFileSync(fsPathForInit, "utf8"); + const literal = JSON.parse(data).catalog; + + return [...acc, ...getRoutes(literal, rootGroupName)]; + }, []); +} + +module.exports = generateRoutes; diff --git a/buildprocess/webpack.config.js b/buildprocess/webpack.config.js index d13883caed..757588bec2 100644 --- a/buildprocess/webpack.config.js +++ b/buildprocess/webpack.config.js @@ -3,6 +3,9 @@ /*global require*/ var configureWebpackForTerriaJS = require('terriajs/buildprocess/configureWebpack'); var MiniCssExtractPlugin = require('mini-css-extract-plugin'); +var generateRoutes = require("./generate-init-routes"); +var PrerenderSPAPlugin = require("prerender-spa-plugin"); +var Renderer = PrerenderSPAPlugin.PuppeteerRenderer; var path = require('path'); module.exports = function(devMode, hot) { @@ -100,7 +103,26 @@ module.exports = function(devMode, hot) { ] }, plugins: [ - new MiniCssExtractPlugin({filename: "TerriaMap.css", disable: hot, ignoreOrder: true, allChunks: true}) + new MiniCssExtractPlugin({filename: "TerriaMap.css", disable: hot, ignoreOrder: true, allChunks: true}), + new PrerenderSPAPlugin({ + staticDir: path.resolve(__dirname, '..', "wwwroot/"), + indexPath: path.resolve(__dirname, '..', "wwwroot/", 'index_prerender.html'), + // routes: [ + // "/", + // "/catalog/", + // "/catalog/Root%20Group%2FExample%20Datasets%2FChart%20examples%2FStar%20Stations", + // "/catalog/Root%20Group%2FExample%20Datasets%2FChart%20examples%2FTime%20series", + // ], + // routes: generateRoutes(require('../wwwroot/config.json')), + routes: generateRoutes(["terria"]), + renderer: new Renderer({ + // renderAfterDocumentEvent: 'some terria catalog loaded event', + // renderAfterElementExists: 'some element? instead of event?', + // renderAfterTime: 5000, + maxConcurrentRoutes: 4, + // headless: false, // set to false for debugging + }), + }), ], resolve: { alias: {}, diff --git a/lib/Styles/loader.css b/lib/Styles/loader.css index b72b5d9736..6e2fa393d7 100644 --- a/lib/Styles/loader.css +++ b/lib/Styles/loader.css @@ -1,3 +1,6 @@ + .tjs-explorer-window__modal-wrapper { + z-index:10000 !important; + } .loader-ui-right img{ display: block; margin: calc(50vh - 150px) auto; diff --git a/package.json b/package.json index e7401f01b0..b5b98dd527 100644 --- a/package.json +++ b/package.json @@ -48,10 +48,12 @@ "node-notifier": "^5.1.2", "node-sass": "^4.11.0", "plugin-error": "^1.0.1", + "prerender-spa-plugin": "^3.4.0", "prop-types": "^15.6.0", "raw-loader": "^1.0.0", "react": "^16.3.2", "react-dom": "^16.3.2", + "react-router-dom": "^5.0.0", "redbox-react": "^1.3.6", "resolve-url-loader": "^3.0.1", "sass-loader": "^7.1.0", diff --git a/wwwroot/index.html b/wwwroot/index.html index 8589c96b3d..ea51a55f62 100644 --- a/wwwroot/index.html +++ b/wwwroot/index.html @@ -1,6 +1,7 @@ + @@ -36,6 +37,6 @@
- + diff --git a/wwwroot/index_prerender.html b/wwwroot/index_prerender.html new file mode 100644 index 0000000000..ea51a55f62 --- /dev/null +++ b/wwwroot/index_prerender.html @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Terria Map + + + + + + + + +
+ + + From b817dc2a8244ee5f296652d46b262c87d5722e53 Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Mon, 3 Jun 2019 13:42:53 +1000 Subject: [PATCH 021/246] Add prettier deps --- .prettierignore | 10 ++++ package-lock.json | 145 ++++++++++++++++++++++++++++++++++++++++++++-- package.json | 2 + yarn.lock | 95 ++++++++++++++++++++++++++---- 4 files changed, 235 insertions(+), 17 deletions(-) create mode 100644 .prettierignore diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000000..ca3832430d --- /dev/null +++ b/.prettierignore @@ -0,0 +1,10 @@ +# Ignore everything +* + +# Unignore directories (to all depths) and unignore code and style files +!lib/**/ +!lib/**/*.js +!lib/**/*.jsx +!lib/**/*.ts +!lib/**/*.tsx +!lib/**/*.scss diff --git a/package-lock.json b/package-lock.json index ce0537d244..933c0ea36a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1724,6 +1724,12 @@ "typical": "^2.6.1" } }, + "array-differ": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz", + "integrity": "sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w==", + "dev": true + }, "array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", @@ -1831,6 +1837,12 @@ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -8562,6 +8574,12 @@ "run-queue": "^1.0.3" } }, + "mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", + "dev": true + }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", @@ -8583,6 +8601,18 @@ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, + "multimatch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz", + "integrity": "sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA==", + "dev": true, + "requires": { + "array-differ": "^2.0.3", + "array-union": "^1.0.2", + "arrify": "^1.0.1", + "minimatch": "^3.0.4" + } + }, "mustache": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz", @@ -9607,11 +9637,6 @@ "sha.js": "^2.4.8" } }, - "pell": { - "version": "git://github.com/TerriaJS/pell.git#7cd23a55cdfd130fedf3679433991bb7d958fc42", - "from": "git://github.com/TerriaJS/pell.git#master", - "dev": true - }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -9949,6 +9974,12 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, + "prettier": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.17.0.tgz", + "integrity": "sha512-sXe5lSt2WQlCbydGETgfm1YBShgOX4HxQkFPvbxkcwgDvGDeqVau8h+12+lmSVlP3rHPz0oavfddSZg/q+Szjw==", + "dev": true + }, "pretty-error": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", @@ -9965,6 +9996,103 @@ "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "dev": true }, + "pretty-quick": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-1.11.0.tgz", + "integrity": "sha512-hy0yOSnqVykrgoHcCcB72p3B5ERQJcjQI6ExeSGSTFE2cDrPwCQtFb3kXA1F+jUPrbt7orra8U+fjS/Emjgpuw==", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "execa": "^0.8.0", + "find-up": "^2.1.0", + "ignore": "^3.3.7", + "mri": "^1.1.0", + "multimatch": "^3.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } + } + }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -12765,7 +12893,6 @@ "mustache": "^2.2.1", "mutationobserver-shim": "^0.3.1", "pbf": "^3.0.1", - "pell": "git://github.com/TerriaJS/pell.git#7cd23a55cdfd130fedf3679433991bb7d958fc42", "point-in-polygon": "^1.0.1", "proj4": "^2.4.4", "prop-types": "^15.6.0", @@ -12791,6 +12918,12 @@ "url-loader": "^1.1.2", "webpack": "^4.29.5", "worker-loader": "^2.0.0" + }, + "dependencies": { + "pell": { + "version": "git://github.com/TerriaJS/pell.git#7cd23a55cdfd130fedf3679433991bb7d958fc42", + "from": "git://github.com/TerriaJS/pell.git#7cd23a55cdfd130fedf3679433991bb7d958fc42" + } } }, "terriajs-catalog-editor": { diff --git a/package.json b/package.json index e7401f01b0..4a8f2ea570 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,8 @@ "node-notifier": "^5.1.2", "node-sass": "^4.11.0", "plugin-error": "^1.0.1", + "prettier": "1.17.0", + "pretty-quick": "^1.10.0", "prop-types": "^15.6.0", "raw-loader": "^1.0.0", "react": "^16.3.2", diff --git a/yarn.lock b/yarn.lock index 2c220c6eb2..c2573ea3d1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1246,6 +1246,11 @@ array-back@^3.0.1: resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== +array-differ@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" + integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w== + array-each@^1.0.0, array-each@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" @@ -1303,7 +1308,7 @@ array-sort@^1.0.0: get-value "^2.0.6" kind-of "^5.0.2" -array-union@^1.0.1: +array-union@^1.0.1, array-union@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= @@ -1320,6 +1325,11 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -1995,7 +2005,7 @@ chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -3648,6 +3658,19 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -4765,6 +4788,11 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" +ignore@^3.3.7: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -6107,6 +6135,11 @@ move-concurrently@^1.0.1: rimraf "^2.5.4" run-queue "^1.0.3" +mri@^1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.4.tgz#7cb1dd1b9b40905f1fac053abe25b6720f44744a" + integrity sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w== + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -6130,6 +6163,16 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" +multimatch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" + integrity sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA== + dependencies: + array-differ "^2.0.3" + array-union "^1.0.2" + arrify "^1.0.1" + minimatch "^3.0.4" + mustache@^2.2.1: version "2.3.2" resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz#a6d4d9c3f91d13359ab889a812954f9230a3d0c5" @@ -6919,6 +6962,10 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +"pell@git://github.com/TerriaJS/pell#master": + version "1.0.6" + resolved "git://github.com/TerriaJS/pell#7cd23a55cdfd130fedf3679433991bb7d958fc42" + performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -7193,6 +7240,11 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +prettier@1.17.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.17.0.tgz#53b303676eed22cc14a9f0cec09b477b3026c008" + integrity sha512-sXe5lSt2WQlCbydGETgfm1YBShgOX4HxQkFPvbxkcwgDvGDeqVau8h+12+lmSVlP3rHPz0oavfddSZg/q+Szjw== + pretty-error@^2.0.2: version "2.1.1" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" @@ -7206,6 +7258,18 @@ pretty-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= +pretty-quick@^1.10.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-1.11.0.tgz#d0bf997f3eb7de3d1bac5ffeb9c335f404d844c8" + integrity sha512-hy0yOSnqVykrgoHcCcB72p3B5ERQJcjQI6ExeSGSTFE2cDrPwCQtFb3kXA1F+jUPrbt7orra8U+fjS/Emjgpuw== + dependencies: + chalk "^2.3.0" + execa "^0.8.0" + find-up "^2.1.0" + ignore "^3.3.7" + mri "^1.1.0" + multimatch "^3.0.0" + private@^0.1.6: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -7629,6 +7693,13 @@ react-responsive@^5.0.0: matchmediaquery "^0.3.0" prop-types "^15.6.1" +react-swipeable@^5.1.0: + version "5.2.3" + resolved "https://registry.yarnpkg.com/react-swipeable/-/react-swipeable-5.2.3.tgz#392d6cba328090d10fcb25a06047f5ad808f7e6c" + integrity sha512-J92RJNIZ7wE5czNWtVUTnTTOdgsnWXcj5fcKiEhf7ZU5JYSh5wOFosKWu8FyTFa6FXwmHKMzhaKUC/p9L2n2Lw== + dependencies: + prop-types "^15.6.2" + react@^16.3.2: version "16.8.6" resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe" @@ -9028,10 +9099,10 @@ terriajs-catalog-editor@^0.2.0: resolved "https://registry.yarnpkg.com/terriajs-catalog-editor/-/terriajs-catalog-editor-0.2.0.tgz#d9c6679e53c4d92e87a531af896c6148888ed8e4" integrity sha1-2cZnnlPE2S6HpTGviWxhSIiO2OQ= -terriajs-cesium@1.57.0: - version "1.57.0" - resolved "https://registry.yarnpkg.com/terriajs-cesium/-/terriajs-cesium-1.57.0.tgz#0d75a703daee23cd99b91c4e234557b3e36c2d5d" - integrity sha512-kJXyAMfo/hUnlQqgvg+K0KxvDocP8ystyyFax1VCw0B3XkVyzkLhO8BS3JwfUN9WdyxRHL4aWddtHsu3XfiqnA== +terriajs-cesium@1.57.2: + version "1.57.2" + resolved "https://registry.yarnpkg.com/terriajs-cesium/-/terriajs-cesium-1.57.2.tgz#519117a24c422c7d15e34b12b4798563f5e35ff5" + integrity sha512-dDZ0u7SpcX3I6hpwPHnEq8nNmW8jLiCD4NThUsLaH6M+ILHmPBX1uU6S46a1DJxkzP98r/rJsnh9rchhGTXh5w== dependencies: deamdify "^0.1.1" dompurify "^1.0.2" @@ -9090,10 +9161,10 @@ terriajs-server@^3.0.0: when "^3.7.7" yargs "^13.2.4" -terriajs@7.4.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/terriajs/-/terriajs-7.4.1.tgz#f1e01486061a2f5d49e107bc19adb9cf2ab9d52e" - integrity sha512-JiRNGQGnmGFkrE/zKOb67JhQY1I/X6UmfFa1+k+NCvEYSrhGrVFAnrKqjVsXvE12OJLdnLasrPCu5ZPWt8FnKA== +terriajs@7.5.1: + version "7.5.1" + resolved "https://registry.yarnpkg.com/terriajs/-/terriajs-7.5.1.tgz#17eb2ff441bbc5beaeafe38ed4dbae6411198013" + integrity sha512-H/IOh+LhuYp+DUrwTMgiAifiYPuc3Z8vQBmuZZnKKCAQo26eX/8zGFj7PI71E9qhEuwNOHqCS/tnpTkfKj6cEA== dependencies: "@babel/core" "^7.3.3" "@babel/plugin-transform-modules-commonjs" "^7.2.0" @@ -9138,6 +9209,7 @@ terriajs@7.4.1: mustache "^2.2.1" mutationobserver-shim "^0.3.1" pbf "^3.0.1" + pell "git://github.com/TerriaJS/pell#master" point-in-polygon "^1.0.1" proj4 "^2.4.4" prop-types "^15.6.0" @@ -9149,6 +9221,7 @@ terriajs@7.4.1: react-datepicker "0.53.0" react-dom "^16.3.2" react-responsive "^5.0.0" + react-swipeable "^5.1.0" resolve-url-loader "^3.0.1" retry "^0.12.0" sass-loader "^7.1.0" @@ -9156,7 +9229,7 @@ terriajs@7.4.1: string-replace-webpack-plugin "^0.1.3" style-loader "^0.23.1" svg-sprite-loader "4.1.3" - terriajs-cesium "1.57.0" + terriajs-cesium "1.57.2" terriajs-html2canvas "1.0.0-alpha.12-terriajs-1" urijs "^1.18.12" url-loader "^1.1.2" From a9bbb6092d79646313899e74f3e9ba3026289650 Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Mon, 3 Jun 2019 13:44:34 +1000 Subject: [PATCH 022/246] Add scripts --- package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 4a8f2ea570..0bb5bc285c 100644 --- a/package.json +++ b/package.json @@ -84,6 +84,9 @@ "deploy": "aws --profile $npm_package_config_awsProfile s3 ls && npm ci && npm run deploy-without-reinstall", "deploy-without-reinstall": "gulp clean && gulp release && npm run deploy-current", "deploy-current": "npm run get-deploy-overrides && gulp make-package --serverConfigOverride ./privateserverconfig.json --clientConfigOverride ./wwwroot/privateconfig.json && cd deploy/aws && ./stack create && cd ../..", - "get-deploy-overrides": "aws s3 --profile $npm_package_config_awsProfile cp $npm_package_config_awsS3ServerConfigOverridePath ./privateserverconfig.json && aws s3 --profile $npm_package_config_awsProfile cp $npm_package_config_awsS3ClientConfigOverridePath ./wwwroot/privateconfig.json" + "get-deploy-overrides": "aws s3 --profile $npm_package_config_awsProfile cp $npm_package_config_awsS3ServerConfigOverridePath ./privateserverconfig.json && aws s3 --profile $npm_package_config_awsProfile cp $npm_package_config_awsS3ClientConfigOverridePath ./wwwroot/privateconfig.json", + "prettier": "prettier --write \"**/*\"", + "pretty-quick": "pretty-quick", + "prettier-check": "prettier --check \"**/*\"" } } From db434c7f8896a17ae9b6e5375efab5bef66e06ec Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Mon, 3 Jun 2019 13:45:30 +1000 Subject: [PATCH 023/246] Add husky --- .editorconfig | 15 +++++ package.json | 6 ++ yarn.lock | 163 ++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 179 insertions(+), 5 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000..7df700c043 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,15 @@ +# http://editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false + +[*.scss] +indent_size = 2 diff --git a/package.json b/package.json index 0bb5bc285c..ce95c0ae00 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "fs-extra": "^7.0.1", "generate-terriajs-schema": "^1.4.0", "gulp": "^4.0.0", + "husky": "^2.2.0", "json5": "^2.1.0", "node-notifier": "^5.1.2", "node-sass": "^4.11.0", @@ -88,5 +89,10 @@ "prettier": "prettier --write \"**/*\"", "pretty-quick": "pretty-quick", "prettier-check": "prettier --check \"**/*\"" + }, + "husky": { + "hooks": { + "pre-commit": "pretty-quick --staged" + } } } diff --git a/yarn.lock b/yarn.lock index c2573ea3d1..3ae57981b9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -812,6 +812,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.48.tgz#e385073561643a9ba6199a1985ffc03530f90781" integrity sha512-c35YEBTkL4rzXY2ucpSKy+UYHjUBIIkuJbWYbsGIrKLEWU5dgJMmLkkIb3qeC3O3Tpb1ZQCwecscvJTDjDjkRw== +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + "@webassemblyjs/ast@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" @@ -1924,6 +1929,25 @@ cache-point@^0.4.1: fs-then-native "^2.0.0" mkdirp2 "^1.0.3" +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -2074,6 +2098,11 @@ chrome-trace-event@^1.0.0: dependencies: tslib "^1.9.0" +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -2540,6 +2569,16 @@ cors@^2.7.1: object-assign "^4" vary "^1" +cosmiconfig@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + crc32-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-2.0.0.tgz#e3cdd3b4df3168dd74e3de3fbbcb7b297fe908f4" @@ -3316,7 +3355,7 @@ errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" -error-ex@^1.2.0: +error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== @@ -3971,6 +4010,13 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" +find-up@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.0.0.tgz#c367f8024de92efb75f2d4906536d24682065c3a" + integrity sha512-zoH7ZWPkRdgwYCDVoQTzqjG8JSPANhtvLhh4KVUHyKnaUJJrNeFmWIkTcNuJmR3GLMEmGYEf2S2bjgx26JTF+Q== + dependencies: + locate-path "^5.0.0" + findit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/findit/-/findit-2.0.0.tgz#6509f0126af4c178551cfa99394e032e13a4d56e" @@ -4234,6 +4280,11 @@ get-stdin@^4.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= +get-stdin@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" + integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== + get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -4735,6 +4786,22 @@ https-proxy-agent@^2.2.1: agent-base "^4.1.0" debug "^3.1.0" +husky@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/husky/-/husky-2.3.0.tgz#8b78ed24d763042df7fd899991985d65a976dd13" + integrity sha512-A/ZQSEILoq+mQM3yC3RIBSaw1bYXdkKnyyKVSUiJl+iBjVZc5LQEXdGY1ZjrDxC4IzfRPiJ0IqzEQGCN5TQa/A== + dependencies: + cosmiconfig "^5.2.0" + execa "^1.0.0" + find-up "^3.0.0" + get-stdin "^7.0.0" + is-ci "^2.0.0" + pkg-dir "^4.1.0" + please-upgrade-node "^3.1.1" + read-pkg "^5.1.1" + run-node "^1.0.0" + slash "^3.0.0" + hyphenate-style-name@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz#097bb7fa0b8f1a9cf0bd5c734cf95899981a9b48" @@ -4803,6 +4870,14 @@ image-size@^0.5.1: resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + import-fresh@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" @@ -5005,6 +5080,13 @@ is-callable@^1.1.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -5042,6 +5124,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -5278,7 +5365,7 @@ js-levenshtein@^1.1.3: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.0: +js-yaml@^3.13.0, js-yaml@^3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== @@ -5366,7 +5453,7 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -5610,6 +5697,13 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" @@ -6405,7 +6499,7 @@ nopt@~1.0.10: dependencies: abbrev "1" -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -6733,7 +6827,7 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== @@ -6754,6 +6848,13 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" @@ -6855,6 +6956,14 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + parse-node-version@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" @@ -7012,6 +7121,20 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +please-upgrade-node@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" + integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ== + dependencies: + semver-compare "^1.0.0" + plugin-error@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" @@ -7727,6 +7850,16 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" +read-pkg@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.1.1.tgz#5cf234dde7a405c90c88a519ab73c467e9cb83f5" + integrity sha512-dFcTLQi6BZ+aFUaICg7er+/usEoqFdQxiEBsEMNGoipenihtxxtdrQuBXvyANCEI8VuUIVYFgeHGx9sLLvim4w== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^4.0.0" + type-fest "^0.4.1" + read@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" @@ -8186,6 +8319,11 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" +run-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" + integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== + run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" @@ -8299,6 +8437,11 @@ selfsigned@^1.10.4: dependencies: node-forge "0.7.5" +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + semver-greatest-satisfied-range@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" @@ -8483,6 +8626,11 @@ simple-statistics@^7.0.1: resolved "https://registry.yarnpkg.com/simple-statistics/-/simple-statistics-7.0.2.tgz#46671f45cb6f9b68207dccd6a3c4f7e745e6e638" integrity sha512-wqTjlmbiaL6Fqaw28tSjQrthjxVV17MMfi/H/qvE0jAvtLspB2S7gEtcR27uvhSRAa64LhjhoO169rX8sFW3pg== +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" @@ -9492,6 +9640,11 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-fest@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" + integrity sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw== + type-is@~1.6.16, type-is@~1.6.17: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" From 32f68521e4b7c2da8c91504a94e48d3da3de8e20 Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Mon, 3 Jun 2019 13:45:48 +1000 Subject: [PATCH 024/246] Apply prettier --- lib/Styles/variables.scss | 4 +- lib/ViewModels/PreviewLinkViewModel.js | 25 +-- lib/Views/AboutButton.jsx | 8 +- lib/Views/RelatedMaps.jsx | 239 +++++++++++++++---------- lib/Views/UserInterface.jsx | 79 ++++---- lib/Views/global.scss | 23 ++- lib/Views/related-maps.scss | 6 +- lib/Views/render.jsx | 25 ++- 8 files changed, 237 insertions(+), 172 deletions(-) diff --git a/lib/Styles/variables.scss b/lib/Styles/variables.scss index f27276e68f..3a48a97e4c 100644 --- a/lib/Styles/variables.scss +++ b/lib/Styles/variables.scss @@ -1,4 +1,4 @@ -@import '~terriajs/lib/Sass/common/_variables.scss'; +@import "~terriajs/lib/Sass/common/_variables.scss"; // To customise the look of your map, uncomment and change values here and in lib/Views/global.scss /* @@ -24,4 +24,4 @@ $dark-lighter: hsl(0,30%,50%); $color-primary-light:lighten($color-primary,10%); $color-primary-dark:darken($color-primary,10%); $dark-darker: hsl(0,30%,15%); -*/ \ No newline at end of file +*/ diff --git a/lib/ViewModels/PreviewLinkViewModel.js b/lib/ViewModels/PreviewLinkViewModel.js index e7574e6f9d..30c4e74773 100644 --- a/lib/ViewModels/PreviewLinkViewModel.js +++ b/lib/ViewModels/PreviewLinkViewModel.js @@ -1,26 +1,29 @@ -'use strict'; +"use strict"; /*global require*/ -var knockout = require('terriajs-cesium/Source/ThirdParty/knockout'); -var loadView = require('terriajs/lib/Core/loadView'); -var URI = require('urijs'); +var knockout = require("terriajs-cesium/Source/ThirdParty/knockout"); +var loadView = require("terriajs/lib/Core/loadView"); +var URI = require("urijs"); function PreviewLinkViewModel(options) { - this.terria = options.terria; + this.terria = options.terria; - this.isShown = window.location && window.location.href && new URI(window.location.href).hash().length === 0; + this.isShown = + window.location && + window.location.href && + new URI(window.location.href).hash().length === 0; - knockout.track(this, ['isShown']); + knockout.track(this, ["isShown"]); } PreviewLinkViewModel.prototype.hide = function(container) { - this.isShown = false; + this.isShown = false; }; PreviewLinkViewModel.create = function(options) { - var viewModel = new PreviewLinkViewModel(options); - loadView(require('../Views/PreviewLink.html'), options.container, viewModel); - return viewModel; + var viewModel = new PreviewLinkViewModel(options); + loadView(require("../Views/PreviewLink.html"), options.container, viewModel); + return viewModel; }; module.exports = PreviewLinkViewModel; diff --git a/lib/Views/AboutButton.jsx b/lib/Views/AboutButton.jsx index 8500d3bda4..15e426961f 100644 --- a/lib/Views/AboutButton.jsx +++ b/lib/Views/AboutButton.jsx @@ -1,5 +1,7 @@ -import React from 'react'; +import React from "react"; -import MenuButton from 'terriajs/lib/ReactViews/Map/MenuButton'; +import MenuButton from "terriajs/lib/ReactViews/Map/MenuButton"; -export default function AboutButton() { return ()}; \ No newline at end of file +export default function AboutButton() { + return ; +} diff --git a/lib/Views/RelatedMaps.jsx b/lib/Views/RelatedMaps.jsx index 8f1fc87ff8..f25b8331bf 100644 --- a/lib/Views/RelatedMaps.jsx +++ b/lib/Views/RelatedMaps.jsx @@ -1,103 +1,152 @@ -import React from 'react'; -import PropTypes from 'prop-types'; +import React from "react"; +import PropTypes from "prop-types"; -import MenuPanel from 'terriajs/lib/ReactViews/StandardUserInterface/customizable/MenuPanel.jsx'; -import PanelStyles from 'terriajs/lib/ReactViews/Map/Panels/panel.scss'; -import Styles from './related-maps.scss'; -import classNames from 'classnames'; +import MenuPanel from "terriajs/lib/ReactViews/StandardUserInterface/customizable/MenuPanel.jsx"; +import PanelStyles from "terriajs/lib/ReactViews/Map/Panels/panel.scss"; +import Styles from "./related-maps.scss"; +import classNames from "classnames"; function RelatedMaps(props) { - const dropdownTheme = { - inner: Styles.dropdownInner, - icon: 'gallery' - - }; - - return ( - -
- -
- -

- Clicking on a map below will open it in a separate window or tab. -

- -
- - AREMI - - - AREMI - -

- AREMI provides access to Australian spatial data relevant to the Renewable Energy industry, - sourced from Government, Industry and Research. -

-
- -
- - Northern Australia - - - Northern - Australia - -

- The Northern Australia NationalMap forms part of the Government's commitment to developing - northern Australia by providing easy access to authoritative and other spatial data on northern - Australia to governments, business and the public. - - More information on the Government's White Paper on Developing Northern Australia is available - here: - https://northernaustralia.dpmc.gov.au. -

-
- -
- - NEII Viewer - - - NEII Viewer - -

- The National Environmental Information Infrastructure (NEII) is an information platform designed - to improve discovery, access and re-use of nationally significant environmental data. More - information on the NEII is available here: - neii.gov.au/data-viewer. -

-
- -
- - AURIN Map - - - AURIN Map - -

- AURIN Map provides access to datasets on urban infrastructure for urban researchers, policy and - decision makers. -

-
-
- ); + const dropdownTheme = { + inner: Styles.dropdownInner, + icon: "gallery" + }; + + return ( + +
+ +
+ +

Clicking on a map below will open it in a separate window or tab.

+ +
+ + AREMI + + + + AREMI + + +

+ AREMI provides access to Australian spatial data relevant to the + Renewable Energy industry, sourced from Government, Industry and + Research. +

+
+ +
+ + Northern Australia + + + + Northern Australia + + +

+ The Northern Australia NationalMap forms part of the Government's + commitment to developing northern Australia by providing easy access + to authoritative and other spatial data on northern Australia to + governments, business and the public. More information on the + Government's White Paper on Developing Northern Australia is available + here:{" "} + + https://northernaustralia.dpmc.gov.au + + . +

+
+ +
+ + NEII Viewer + + + + NEII Viewer + + +

+ The National Environmental Information Infrastructure (NEII) is an + information platform designed to improve discovery, access and re-use + of nationally significant environmental data. More information on the + NEII is available here:{" "} + + neii.gov.au/data-viewer + + . +

+
+ +
+ + AURIN Map + + + + AURIN Map + + +

+ AURIN Map provides access to datasets on urban infrastructure for + urban researchers, policy and decision makers. +

+
+
+ ); } RelatedMaps.propTypes = { - viewState: PropTypes.object.isRequired, - smallScreen: PropTypes.bool + viewState: PropTypes.object.isRequired, + smallScreen: PropTypes.bool }; -export default RelatedMaps; \ No newline at end of file +export default RelatedMaps; diff --git a/lib/Views/UserInterface.jsx b/lib/Views/UserInterface.jsx index 90705ad377..44cc194f04 100644 --- a/lib/Views/UserInterface.jsx +++ b/lib/Views/UserInterface.jsx @@ -1,46 +1,59 @@ -import { Menu, Nav, ExperimentalMenu } from 'terriajs/lib/ReactViews/StandardUserInterface/customizable/Groups'; -import MeasureTool from 'terriajs/lib/ReactViews/Map/Navigation/MeasureTool'; -import MenuItem from 'terriajs/lib/ReactViews/StandardUserInterface/customizable/MenuItem'; -import PropTypes from 'prop-types'; -import React from 'react'; -import RelatedMaps from './RelatedMaps'; -import SplitPoint from 'terriajs/lib/ReactViews/SplitPoint'; -import StandardUserInterface from 'terriajs/lib/ReactViews/StandardUserInterface/StandardUserInterface.jsx'; -import version from '../../version'; +import { + Menu, + Nav, + ExperimentalMenu +} from "terriajs/lib/ReactViews/StandardUserInterface/customizable/Groups"; +import MeasureTool from "terriajs/lib/ReactViews/Map/Navigation/MeasureTool"; +import MenuItem from "terriajs/lib/ReactViews/StandardUserInterface/customizable/MenuItem"; +import PropTypes from "prop-types"; +import React from "react"; +import RelatedMaps from "./RelatedMaps"; +import SplitPoint from "terriajs/lib/ReactViews/SplitPoint"; +import StandardUserInterface from "terriajs/lib/ReactViews/StandardUserInterface/StandardUserInterface.jsx"; +import version from "../../version"; -import './global.scss'; +import "./global.scss"; function loadAugmentedVirtuality(callback) { - require.ensure('terriajs/lib/ReactViews/Map/Navigation/AugmentedVirtualityTool', () => { - const AugmentedVirtualityTool = require('terriajs/lib/ReactViews/Map/Navigation/AugmentedVirtualityTool'); - callback(AugmentedVirtualityTool); - }, 'AugmentedVirtuality'); + require.ensure( + "terriajs/lib/ReactViews/Map/Navigation/AugmentedVirtualityTool", + () => { + const AugmentedVirtualityTool = require("terriajs/lib/ReactViews/Map/Navigation/AugmentedVirtualityTool"); + callback(AugmentedVirtualityTool); + }, + "AugmentedVirtuality" + ); } function isBrowserSupportedAV() { - return /Android|iPhone|iPad/i.test(navigator.userAgent); + return /Android|iPhone|iPad/i.test(navigator.userAgent); } export default function UserInterface(props) { - return ( - - - - - - - - - - - - - ); + return ( + + + + + + + + + + + + + ); } UserInterface.propTypes = { - terria: PropTypes.object, - viewState: PropTypes.object + terria: PropTypes.object, + viewState: PropTypes.object }; diff --git a/lib/Views/global.scss b/lib/Views/global.scss index 412c140eaa..271d493c73 100644 --- a/lib/Views/global.scss +++ b/lib/Views/global.scss @@ -2,21 +2,21 @@ @import "~terriajs/lib/Sass/global/global"; body { - margin: 0; - overflow: hidden; + margin: 0; + overflow: hidden; } :global { - @media print { - .nationalmap-print-disclaimer { - color: #000; - display: block; - } + @media print { + .nationalmap-print-disclaimer { + color: #000; + display: block; } + } - // To customise the look of your Terria Map, uncomment this section and make changes to your heart's content - // You will also want to uncomment and change values in lib/Styles/variables.scss - /* + // To customise the look of your Terria Map, uncomment this section and make changes to your heart's content + // You will also want to uncomment and change values in lib/Styles/variables.scss + /* // Import any custom fonts here //@import url(https://fonts.googleapis.com/css?family=Josefin+Sans:300,400,700); @@ -152,5 +152,4 @@ body { color:$color-secondary; } */ - -} \ No newline at end of file +} diff --git a/lib/Views/related-maps.scss b/lib/Views/related-maps.scss index aefc788e2c..fe0ffa5c47 100644 --- a/lib/Views/related-maps.scss +++ b/lib/Views/related-maps.scss @@ -5,7 +5,7 @@ } .section { - composes: clearfix from '~terriajs/lib/Sass/common/_base.scss'; + composes: clearfix from "~terriajs/lib/Sass/common/_base.scss"; margin-bottom: 10px; padding: 0; } @@ -19,5 +19,5 @@ } .link { - composes: link from '~terriajs/lib/Sass/common/_base.scss'; -} \ No newline at end of file + composes: link from "~terriajs/lib/Sass/common/_base.scss"; +} diff --git a/lib/Views/render.jsx b/lib/Views/render.jsx index 8a8afc37c2..21522be856 100644 --- a/lib/Views/render.jsx +++ b/lib/Views/render.jsx @@ -1,25 +1,24 @@ -import ReactDOM from 'react-dom'; -import RedBox from 'redbox-react'; -import React from 'react'; +import ReactDOM from "react-dom"; +import RedBox from "redbox-react"; +import React from "react"; export default function renderUi(terria, allBaseMaps, viewState) { let render = () => { - const UI = require('./UserInterface').default; - ReactDOM.render(, document.getElementById('ui')); + const UI = require("./UserInterface").default; + ReactDOM.render( + , + document.getElementById("ui") + ); }; if (module.hot && process.env.NODE_ENV !== "production") { // Support hot reloading of components // and display an overlay for runtime errors const renderApp = render; - const renderError = (error) => { + const renderError = error => { console.error(error); console.error(error.stack); - ReactDOM.render( - , - document.getElementById('ui') - ); + ReactDOM.render(, document.getElementById("ui")); }; render = () => { try { @@ -28,10 +27,10 @@ export default function renderUi(terria, allBaseMaps, viewState) { renderError(error); } }; - module.hot.accept('./UserInterface', () => { + module.hot.accept("./UserInterface", () => { setTimeout(render); }); } render(); -} \ No newline at end of file +} From 0b046c346ace4bd96b654ec8b17f1f2d6c3cdc39 Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Thu, 6 Jun 2019 11:27:11 +1000 Subject: [PATCH 025/246] Move prerendered routes into /prerender/ --- .gitignore | 1 + buildprocess/generate-init-routes.js | 34 ++++++++++++++----- buildprocess/webpack.config.js | 49 ++++++++++++++++------------ 3 files changed, 55 insertions(+), 29 deletions(-) diff --git a/.gitignore b/.gitignore index ca012eda8e..38291549d1 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ node_modules/ .idea/ wwwroot/build/ wwwroot/doc/ +wwwroot/prerendered/ npm-debug.log version.js wwwroot/init/nm.json diff --git a/buildprocess/generate-init-routes.js b/buildprocess/generate-init-routes.js index b31ba6ecbb..67d79d300b 100644 --- a/buildprocess/generate-init-routes.js +++ b/buildprocess/generate-init-routes.js @@ -1,19 +1,20 @@ var fs = require("fs"); var path = require("path"); +var URI = require("urijs"); +var CATALOG_ROUTE = require("terriajs/lib/ReactViewModels/TerriaRouting").CATALOG_ROUTE; const rootGroupName = "Root Group"; -const getNameFromItem = item => item.id || item.name; +const getNameFromItem = item => item.name; +const getIdFromItem = item => item.id; -const resUrl = url => - path.resolve(__dirname, "..", "wwwroot", "init", `${url}.json`); - -const getCatalogFromInitName = initName => resUrl(initName); const getRoutes = (topCatalogItem, currentRoute = rootGroupName) => topCatalogItem.reduce((acc, catalogItem) => { const nameForCurrentItem = getNameFromItem(catalogItem); - const finalRoute = `${currentRoute}/${nameForCurrentItem}`; + // Id is used for uniqueid, so disregard any pathing + const idFromItem = getIdFromItem(catalogItem); + const finalRoute = idFromItem || `${currentRoute}/${nameForCurrentItem}`; const items = catalogItem.items && getRoutes(catalogItem.items, finalRoute); if (items) { @@ -21,15 +22,30 @@ const getRoutes = (topCatalogItem, currentRoute = rootGroupName) => } return [...acc, finalRoute]; }, []); - +/** + * Given an array of init names for files in wwwroot/init/, traverse the catalog + * and generate a list of routes to be prerendered at build time + * + * @param {Array} initUrls + */ function generateRoutes(initUrls) { - return initUrls.reduce((acc, initName) => { + const resUrl = url => + path.resolve(__dirname, "..", "wwwroot", "init", `${url}.json`); + + const getCatalogFromInitName = initName => resUrl(initName); + + const routesFromInitCatalogs = initUrls.reduce((acc, initName) => { const fsPathForInit = getCatalogFromInitName(initName); const data = fs.readFileSync(fsPathForInit, "utf8"); const literal = JSON.parse(data).catalog; - return [...acc, ...getRoutes(literal, rootGroupName)]; + return [...acc, ...getRoutes(literal, `${rootGroupName}`)]; }, []); + + const encodedRoutes = routesFromInitCatalogs.map(route => `${CATALOG_ROUTE}${URI.encode(route)}`); + + // Make sure we also prerender /catalog/ incase user reloads on it? or serve up in terriajs server? + return [CATALOG_ROUTE, ...encodedRoutes]; } module.exports = generateRoutes; diff --git a/buildprocess/webpack.config.js b/buildprocess/webpack.config.js index 757588bec2..eb9723cd6a 100644 --- a/buildprocess/webpack.config.js +++ b/buildprocess/webpack.config.js @@ -1,12 +1,14 @@ 'use strict'; /*global require*/ +var fs = require('fs'); var configureWebpackForTerriaJS = require('terriajs/buildprocess/configureWebpack'); var MiniCssExtractPlugin = require('mini-css-extract-plugin'); var generateRoutes = require("./generate-init-routes"); var PrerenderSPAPlugin = require("prerender-spa-plugin"); var Renderer = PrerenderSPAPlugin.PuppeteerRenderer; var path = require('path'); +var json5 = require("json5"); module.exports = function(devMode, hot) { var config = { @@ -103,26 +105,7 @@ module.exports = function(devMode, hot) { ] }, plugins: [ - new MiniCssExtractPlugin({filename: "TerriaMap.css", disable: hot, ignoreOrder: true, allChunks: true}), - new PrerenderSPAPlugin({ - staticDir: path.resolve(__dirname, '..', "wwwroot/"), - indexPath: path.resolve(__dirname, '..', "wwwroot/", 'index_prerender.html'), - // routes: [ - // "/", - // "/catalog/", - // "/catalog/Root%20Group%2FExample%20Datasets%2FChart%20examples%2FStar%20Stations", - // "/catalog/Root%20Group%2FExample%20Datasets%2FChart%20examples%2FTime%20series", - // ], - // routes: generateRoutes(require('../wwwroot/config.json')), - routes: generateRoutes(["terria"]), - renderer: new Renderer({ - // renderAfterDocumentEvent: 'some terria catalog loaded event', - // renderAfterElementExists: 'some element? instead of event?', - // renderAfterTime: 5000, - maxConcurrentRoutes: 4, - // headless: false, // set to false for debugging - }), - }), + new MiniCssExtractPlugin({filename: "TerriaMap.css", disable: hot, ignoreOrder: true, allChunks: true}) ], resolve: { alias: {}, @@ -130,5 +113,31 @@ module.exports = function(devMode, hot) { } }; config.resolve.alias['terriajs-variables'] = require.resolve('../lib/Styles/variables.scss'); + + if (!devMode) { + var configJsonPath = fs.readFileSync(path.resolve(__dirname, '..','wwwroot', 'config.json'), 'utf8'); + var configJson = json5.parse(configJsonPath); + var prerenderRoutes = + (configJson && + configJson.initializationUrls && + configJson.initializationUrls.length > 0 && + generateRoutes(configJson.initializationUrls)) || + []; + console.log('The following routes generated from config.json\'s initializationUrls will be prerendered:'); + console.log(prerenderRoutes); + config.plugins = [...config.plugins, new PrerenderSPAPlugin({ + staticDir: path.resolve(__dirname, '..', 'wwwroot', ), + outputDir: path.resolve(__dirname, '..', 'wwwroot', 'prerendered'), + indexPath: path.resolve(__dirname, '..', 'wwwroot', 'index_prerender.html'), + routes: prerenderRoutes, + renderer: new Renderer({ + // renderAfterDocumentEvent: 'some terria catalog loaded event', + // renderAfterElementExists: 'some element? instead of event?', + renderAfterTime: 13000, + maxConcurrentRoutes: 8, + // headless: false, // set to false for debugging + }), + })]; + } return configureWebpackForTerriaJS(path.dirname(require.resolve('terriajs/package.json')), config, devMode, hot, MiniCssExtractPlugin); }; From 5c1ff17ab45619ddee9522e0e564ac4c810b81a6 Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Thu, 6 Jun 2019 12:37:14 +1000 Subject: [PATCH 026/246] Ensure there are no multiple meta description tags --- wwwroot/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wwwroot/index.html b/wwwroot/index.html index ea51a55f62..b194eba4eb 100644 --- a/wwwroot/index.html +++ b/wwwroot/index.html @@ -5,7 +5,7 @@ - + From 3ae279e24bcf4796ced7b4fd7cd1c668f75eb044 Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Thu, 6 Jun 2019 12:40:32 +1000 Subject: [PATCH 027/246] Remove seperate prerender index to ejs --- devserverconfig.json | 2 ++ gulpfile.js | 8 ++++++++ wwwroot/{index_prerender.html => index.ejs} | 6 +++--- 3 files changed, 13 insertions(+), 3 deletions(-) rename wwwroot/{index_prerender.html => index.ejs} (94%) diff --git a/devserverconfig.json b/devserverconfig.json index c42498ddf2..a34226cd1e 100644 --- a/devserverconfig.json +++ b/devserverconfig.json @@ -1,6 +1,8 @@ { "port": 3001, + "baseHref": "/", + "allowProxyFor" : [ "nicta.com.au", "gov.au", diff --git a/gulpfile.js b/gulpfile.js index 800971262f..ddd430fd1a 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -250,6 +250,14 @@ function mergeConfigs(original, override) { gulp.task('render-datasource-templates', function(done) { var ejs = require('ejs'); var JSON5 = require('json5'); + var serverConfig = JSON5.parse(fs.readFileSync('devserverconfig.json', 'utf8')); + + var index = fs.readFileSync('wwwroot/index.ejs', 'utf8'); + var baseHrefFromConfig = serverConfig.baseHref; + var indexResult = ejs.render(index, { baseHref: baseHrefFromConfig || "/"}); + + fs.writeFileSync(path.join('wwwroot', 'index.html'), new Buffer(indexResult)); + var templateDir = 'datasources'; try { fs.accessSync(templateDir); diff --git a/wwwroot/index_prerender.html b/wwwroot/index.ejs similarity index 94% rename from wwwroot/index_prerender.html rename to wwwroot/index.ejs index ea51a55f62..c91bcdf60b 100644 --- a/wwwroot/index_prerender.html +++ b/wwwroot/index.ejs @@ -1,11 +1,11 @@ - + - + @@ -37,6 +37,6 @@
- + From b67a03fa3ea91c7deb72c01abca1372e4fa0facc Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Thu, 6 Jun 2019 16:19:49 +1000 Subject: [PATCH 028/246] Update proper path for index --- buildprocess/webpack.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildprocess/webpack.config.js b/buildprocess/webpack.config.js index eb9723cd6a..59722c7531 100644 --- a/buildprocess/webpack.config.js +++ b/buildprocess/webpack.config.js @@ -128,7 +128,7 @@ module.exports = function(devMode, hot) { config.plugins = [...config.plugins, new PrerenderSPAPlugin({ staticDir: path.resolve(__dirname, '..', 'wwwroot', ), outputDir: path.resolve(__dirname, '..', 'wwwroot', 'prerendered'), - indexPath: path.resolve(__dirname, '..', 'wwwroot', 'index_prerender.html'), + indexPath: path.resolve(__dirname, '..', 'wwwroot', 'index.html'), routes: prerenderRoutes, renderer: new Renderer({ // renderAfterDocumentEvent: 'some terria catalog loaded event', From d6da6aa04b007e496b46cd6719ce0cf2326b44bb Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Thu, 6 Jun 2019 16:48:10 +1000 Subject: [PATCH 029/246] wip remote stash --- deploy/docker/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deploy/docker/Dockerfile b/deploy/docker/Dockerfile index 85813c3887..648e3c19d9 100644 --- a/deploy/docker/Dockerfile +++ b/deploy/docker/Dockerfile @@ -2,6 +2,8 @@ FROM node:8 RUN apt-get update && apt-get install -y gdal-bin +RUN apt-get -qq -y install gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget + RUN mkdir -p /usr/src/app && mkdir -p /etc/config/client WORKDIR /usr/src/app/component From d67df544a3b73425875ffa37e4c1b505ac385d72 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Thu, 13 Jun 2019 10:19:56 +1000 Subject: [PATCH 030/246] Add custom legend to Broadband Availability layer. --- wwwroot/init/simple.json | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/wwwroot/init/simple.json b/wwwroot/init/simple.json index 844ba99714..dd07321668 100644 --- a/wwwroot/init/simple.json +++ b/wwwroot/init/simple.json @@ -3,7 +3,45 @@ { "type": "wms-group", "name": "Test", - "url": "https://programs.communications.gov.au/geoserver/ows" + "url": "https://programs.communications.gov.au/geoserver/ows", + "members": [ + { + "type": "wms", + "localId": "mybroadband%3AMyBroadband_ADSL_Availability", + "legends": [ + { + "items": [ + { + "title": "A - Best", + "color": "#6B0038" + }, + { + "title": "B", + "color": "#F41911" + }, + { + "title": "C", + "color": "#F67F00" + }, + { + "title": "D", + "color": "#D78B6D" + }, + { + "title": "E - Worst", + "color": "#ECD2BE" + }, + { + "title": "No data", + "color": "rgba(0,0,0,0)", + "outlineColor": "black", + "addSpacingAbove": true + } + ] + } + ] + } + ] }, { "type": "geojson", From 12b67cd76efe3626abaa48d8720935837c4c11ba Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Wed, 19 Jun 2019 16:14:10 +1000 Subject: [PATCH 031/246] Native instead of when.js promises. --- index.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 64e09f1d3f..6148ec4030 100644 --- a/index.js +++ b/index.js @@ -75,9 +75,12 @@ module.exports = terria.start({ shareDataService: new ShareDataService({ terria: terria }) -}).otherwise(function(e) { +}).catch(function(e) { raiseErrorToUser(terria, e); -}).always(function() { +}).finally(function() { + terria.loadInitSources().catch(e => { + raiseErrorToUser(terria, e); + }); try { // viewState.searchState.locationSearchProviders = [ // new BingMapsSearchProviderViewModel({ From 253162db2fb7ad342c4188621be4d4dd743fc331 Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Wed, 19 Jun 2019 17:54:22 +1000 Subject: [PATCH 032/246] Add sitemap generator --- buildprocess/generate-terria-sitemap.js | 35 +++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 buildprocess/generate-terria-sitemap.js diff --git a/buildprocess/generate-terria-sitemap.js b/buildprocess/generate-terria-sitemap.js new file mode 100644 index 0000000000..de6a0379a2 --- /dev/null +++ b/buildprocess/generate-terria-sitemap.js @@ -0,0 +1,35 @@ +const generateUrl = (loc, lastmod, changefreq, priority) => (` + + ${loc} + ${lastmod} + ${changefreq} + ${priority} + +`); + +/** + * Generate a sitemap to be written out during build + * + * @param {string} baseUrl absolute URL to where your map is going to be deployed to, with a trailing slash + * @param {array} catalogRoutes list of routes, e.g. ['/catalog', '/catalog/someId'] + */ +const generateTerriaSitemap = (baseUrl, catalogRoutes) => { + if (typeof baseUrl !== 'string') { + throw 'baseUrl passed to generateTerriaSitemap is not a string?'; + } + if (baseUrl.substr(0,4) !== 'http') { + throw 'baseUrl does not look absolute, check that it begins with http or https'; + } + const baseUrlWithoutTrailingSlash = (baseUrl.substr(-1) === '/') ? baseUrl.slice(0,-1) : baseUrl; + const date = new Date().toISOString().substr(0, 10); + + const start = ''; + const urlsetStart = ''; + const urlsetEnd = ``; + const homeUrl = generateUrl(baseUrl, date, 'daily', '0.9'); + const routeUrls = catalogRoutes.map(route => generateUrl(`${baseUrlWithoutTrailingSlash}${route}`, date, 'weekly', '0.5')); + + return `${start}${urlsetStart}${homeUrl}${routeUrls.join('')}${urlsetEnd}`; +}; + +module.exports = generateTerriaSitemap; From 4f525fcb7398e48373dda7c66b2e2546ebc8e00a Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Thu, 20 Jun 2019 19:29:51 +1000 Subject: [PATCH 033/246] Add sitemap generation --- .gitignore | 1 + buildprocess/webpack.config.js | 28 +++++++++++++++++++++++----- wwwroot/config.json | 4 ++++ 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 38291549d1..97267eb02c 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ datasources/00_National_Data_Sets.json /error.log /output.log privateserverconfig.json +wwwroot/sitemap.xml wwwroot/privateconfig.json deploy/packages/ deploy/work/ diff --git a/buildprocess/webpack.config.js b/buildprocess/webpack.config.js index 59722c7531..5837de9a9b 100644 --- a/buildprocess/webpack.config.js +++ b/buildprocess/webpack.config.js @@ -5,6 +5,7 @@ var fs = require('fs'); var configureWebpackForTerriaJS = require('terriajs/buildprocess/configureWebpack'); var MiniCssExtractPlugin = require('mini-css-extract-plugin'); var generateRoutes = require("./generate-init-routes"); +var generateTerriaSitemap = require("./generate-terria-sitemap"); var PrerenderSPAPlugin = require("prerender-spa-plugin"); var Renderer = PrerenderSPAPlugin.PuppeteerRenderer; var path = require('path'); @@ -118,13 +119,30 @@ module.exports = function(devMode, hot) { var configJsonPath = fs.readFileSync(path.resolve(__dirname, '..','wwwroot', 'config.json'), 'utf8'); var configJson = json5.parse(configJsonPath); var prerenderRoutes = - (configJson && - configJson.initializationUrls && - configJson.initializationUrls.length > 0 && - generateRoutes(configJson.initializationUrls)) || - []; + (configJson && + configJson.initializationUrls && + configJson.initializationUrls.length > 0 && + generateRoutes(configJson.initializationUrls)) || + []; + var appBaseUrl = + (configJson && + configJson.appBaseUrl && + configJson.appBaseUrl.length > 0 && + configJson.appBaseUrl); + console.log('The following routes generated from config.json\'s initializationUrls will be prerendered:'); console.log(prerenderRoutes); + + if (appBaseUrl) { + try { + var sitemap = generateTerriaSitemap(appBaseUrl, prerenderRoutes); + var sitemapPath = path.resolve(__dirname, '..', 'wwwroot', 'sitemap.xml'); + fs.writeFileSync(sitemapPath, new Buffer(sitemap)); + console.log('Wrote out sitemap to: ' + sitemapPath); + } catch (e) { + console.error("Couldn't generate sitemap?", e); + } + } config.plugins = [...config.plugins, new PrerenderSPAPlugin({ staticDir: path.resolve(__dirname, '..', 'wwwroot', ), outputDir: path.resolve(__dirname, '..', 'wwwroot', 'prerendered'), diff --git a/wwwroot/config.json b/wwwroot/config.json index e304798fd2..9d81e074d7 100644 --- a/wwwroot/config.json +++ b/wwwroot/config.json @@ -4,6 +4,10 @@ "terria" ], parameters: { + // For sitemap.xml generation, specify the protocol + fully qualified domain + // name + path of where you'll be serving your site, e.g.: + appBaseUrl: "https://nationalmap.gov.au/", + googleUrlShortenerKey: null, googleAnalyticsKey: null, googleAnalyticsOptions: null, From 9f5de411dbaadc3e82c3faf6acf5c00822f2b2ea Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Fri, 21 Jun 2019 17:56:18 +1000 Subject: [PATCH 034/246] Fix sitemap generation, speed up prerendering Also remove appBaseUrl default --- buildprocess/webpack.config.js | 16 +++++++++------- wwwroot/config.json | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/buildprocess/webpack.config.js b/buildprocess/webpack.config.js index 5837de9a9b..c329c283db 100644 --- a/buildprocess/webpack.config.js +++ b/buildprocess/webpack.config.js @@ -126,15 +126,17 @@ module.exports = function(devMode, hot) { []; var appBaseUrl = (configJson && - configJson.appBaseUrl && - configJson.appBaseUrl.length > 0 && - configJson.appBaseUrl); + configJson.parameters && + configJson.parameters.appBaseUrl && + configJson.parameters.appBaseUrl.length > 0 && + configJson.parameters.appBaseUrl); console.log('The following routes generated from config.json\'s initializationUrls will be prerendered:'); console.log(prerenderRoutes); if (appBaseUrl) { try { + console.log('Attempting to write sitemap with appBaseUrl: ', appBaseUrl); var sitemap = generateTerriaSitemap(appBaseUrl, prerenderRoutes); var sitemapPath = path.resolve(__dirname, '..', 'wwwroot', 'sitemap.xml'); fs.writeFileSync(sitemapPath, new Buffer(sitemap)); @@ -142,6 +144,8 @@ module.exports = function(devMode, hot) { } catch (e) { console.error("Couldn't generate sitemap?", e); } + } else { + console.warn("Warning - no appBaseUrl specified, no sitemap will be generated.") } config.plugins = [...config.plugins, new PrerenderSPAPlugin({ staticDir: path.resolve(__dirname, '..', 'wwwroot', ), @@ -149,10 +153,8 @@ module.exports = function(devMode, hot) { indexPath: path.resolve(__dirname, '..', 'wwwroot', 'index.html'), routes: prerenderRoutes, renderer: new Renderer({ - // renderAfterDocumentEvent: 'some terria catalog loaded event', - // renderAfterElementExists: 'some element? instead of event?', - renderAfterTime: 13000, - maxConcurrentRoutes: 8, + renderAfterDocumentEvent: 'prerender-end', + maxConcurrentRoutes: 12, // headless: false, // set to false for debugging }), })]; diff --git a/wwwroot/config.json b/wwwroot/config.json index 9d81e074d7..23e1299359 100644 --- a/wwwroot/config.json +++ b/wwwroot/config.json @@ -6,7 +6,7 @@ parameters: { // For sitemap.xml generation, specify the protocol + fully qualified domain // name + path of where you'll be serving your site, e.g.: - appBaseUrl: "https://nationalmap.gov.au/", + // appBaseUrl: "https://nationalmap.gov.au/", googleUrlShortenerKey: null, googleAnalyticsKey: null, From d2aa91023d564897584082c7ca8e7e2461e1a403 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Sat, 22 Jun 2019 22:17:47 +1000 Subject: [PATCH 035/246] Improve polyfilling. --- entry.js | 28 +++++++++++++++------------- wwwroot/index.html | 1 - 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/entry.js b/entry.js index ef714c98de..5d7d469d18 100644 --- a/entry.js +++ b/entry.js @@ -1,4 +1,6 @@ const globeGif = require('./lib/Styles/globe.gif'); +const polyfill = require("terriajs/lib/Core/polyfill"); + require('./lib/Styles/loader.css'); function loadMainScript() { @@ -23,24 +25,24 @@ function createLoader() { loaderGrabber.classList.add('loader-ui-grabber'); const loaderRight = document.createElement('div'); loaderRight.classList.add("loader-ui-right"); - loaderRight.append(loaderGif); + loaderRight.appendChild(loaderGif); - loaderDiv.append(loaderLeft); - loaderDiv.append(loaderRight); - loaderDiv.append(loaderGrabber); + loaderDiv.appendChild(loaderLeft); + loaderDiv.appendChild(loaderRight); + loaderDiv.appendChild(loaderGrabber); loaderDiv.style.backgroundColor ='#383F4D'; document.body.appendChild(loaderDiv); - loadMainScript().catch(() => { - // Ignore errors and try to show the map anyway - }).then(() => { - loaderDiv.classList.add('loader-ui-hide'); - setTimeout(()=> { - document.body.removeChild(loaderDiv); - }, 2000); + polyfill(function() { + loadMainScript().catch(() => { + // Ignore errors and try to show the map anyway + }).then(() => { + loaderDiv.classList.add('loader-ui-hide'); + setTimeout(()=> { + document.body.removeChild(loaderDiv); + }, 2000); + }); }); } createLoader(); - - diff --git a/wwwroot/index.html b/wwwroot/index.html index 26a855f52d..8184ce6194 100644 --- a/wwwroot/index.html +++ b/wwwroot/index.html @@ -30,7 +30,6 @@ - From 81b96163ae5cd7192851b50fea731d8c87e966c7 Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Mon, 24 Jun 2019 20:01:01 +1000 Subject: [PATCH 036/246] Use named export --- lib/Views/UserInterface.jsx | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Views/UserInterface.jsx b/lib/Views/UserInterface.jsx index 44cc194f04..2a99f6fe3a 100644 --- a/lib/Views/UserInterface.jsx +++ b/lib/Views/UserInterface.jsx @@ -9,7 +9,7 @@ import PropTypes from "prop-types"; import React from "react"; import RelatedMaps from "./RelatedMaps"; import SplitPoint from "terriajs/lib/ReactViews/SplitPoint"; -import StandardUserInterface from "terriajs/lib/ReactViews/StandardUserInterface/StandardUserInterface.jsx"; +import { StandardUserInterface } from "terriajs/lib/ReactViews/StandardUserInterface/StandardUserInterface.jsx"; import version from "../../version"; import "./global.scss"; diff --git a/package.json b/package.json index 8bfe5114d2..622923689e 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "semver": "^5.0.0", "style-loader": "^0.23.1", "svg-sprite-loader": "4.1.3", - "terriajs": "7.6.2", + "terriajs": "7.6.3", "terriajs-catalog-editor": "^0.2.0", "terriajs-cesium": "1.58.1", "terriajs-schema": "latest", From f1a4ebc9fdedbd7bc369ea4357e3c66791373533 Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Tue, 25 Jun 2019 18:49:57 +1000 Subject: [PATCH 037/246] Make sure disclaimer gets shown on top, on load --- entry.js | 25 ++++++++++++++++++++++--- lib/Styles/loader.css | 4 +--- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/entry.js b/entry.js index ef714c98de..46f39095a8 100644 --- a/entry.js +++ b/entry.js @@ -13,6 +13,19 @@ function loadMainScript() { } function createLoader() { + // We only want this briefly so the explorer-window modal can be displayed + // until we load in other modal-like-things like disclaimer windows, + // but also other notification windows like error messages + // So, reset it back to app defaults after + const catalogzIndexOverride = document.createElement('style'); + catalogzIndexOverride.setAttribute('type', 'text/css'); + catalogzIndexOverride.innerHTML = ` + .tjs-explorer-window__modal-wrapper { + z-index:10000 !important; + } + `; + document.body.appendChild(catalogzIndexOverride); + const loaderDiv = document.createElement('div'); loaderDiv.classList.add("loader-ui"); const loaderGif = document.createElement('img'); @@ -34,10 +47,16 @@ function createLoader() { loadMainScript().catch(() => { // Ignore errors and try to show the map anyway }).then(() => { - loaderDiv.classList.add('loader-ui-hide'); - setTimeout(()=> { + const removeLoaderElements = () => { document.body.removeChild(loaderDiv); - }, 2000); + document.body.removeChild(catalogzIndexOverride); + }; + loaderDiv.classList.add('loader-ui-hide'); + setTimeout(() => document.body.removeChild(catalogzIndexOverride), 300); + loaderDiv.addEventListener('transitionend', removeLoaderElements); + // also fallback with setTimeout here + // so we can remove the elements anyway in case of transitionend event failure + setTimeout(removeLoaderElements, 2000); }); } diff --git a/lib/Styles/loader.css b/lib/Styles/loader.css index 6e2fa393d7..2cde8699fd 100644 --- a/lib/Styles/loader.css +++ b/lib/Styles/loader.css @@ -1,6 +1,3 @@ - .tjs-explorer-window__modal-wrapper { - z-index:10000 !important; - } .loader-ui-right img{ display: block; margin: calc(50vh - 150px) auto; @@ -47,6 +44,7 @@ .loader-ui{ transition: opacity, 2s; + transition-timing-function: cubic-bezier(.2,1.22,.83,.89); opacity: 1; height: 100vh; width: 100vw; From acba78044aa3cf0947eb14adf0a8796deebd1be5 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Tue, 25 Jun 2019 20:47:44 +1000 Subject: [PATCH 038/246] updateApplicatOnHashChange, set homeCamera. --- index.js | 4 +- wwwroot/init/simple.json | 150 ++++++++++++++++++++------------------- 2 files changed, 80 insertions(+), 74 deletions(-) diff --git a/index.js b/index.js index 6148ec4030..fbab175b40 100644 --- a/index.js +++ b/index.js @@ -14,7 +14,7 @@ import raiseErrorToUser from 'terriajs/lib/Models/raiseErrorToUser'; // import registerCatalogMembers from 'terriajs/lib/Models/registerCatalogMembers'; // import registerCustomComponentTypes from 'terriajs/lib/ReactViews/Custom/registerCustomComponentTypes'; import Terria from 'terriajs/lib/Models/Terria'; -// import updateApplicationOnHashChange from 'terriajs/lib/ViewModels/updateApplicationOnHashChange'; +import updateApplicationOnHashChange from 'terriajs/lib/ViewModels/updateApplicationOnHashChange'; // import updateApplicationOnMessageFromParentWindow from 'terriajs/lib/ViewModels/updateApplicationOnMessageFromParentWindow'; import ViewState from 'terriajs/lib/ReactViewModels/ViewState'; // import BingMapsSearchProviderViewModel from 'terriajs/lib/ViewModels/BingMapsSearchProviderViewModel.js'; @@ -92,7 +92,7 @@ module.exports = terria.start({ // ]; // Automatically update Terria (load new catalogs, etc.) when the hash part of the URL changes. - // updateApplicationOnHashChange(terria, window); + updateApplicationOnHashChange(terria, window); // updateApplicationOnMessageFromParentWindow(terria, window); // Create the various base map options. diff --git a/wwwroot/init/simple.json b/wwwroot/init/simple.json index dd07321668..7265eabb20 100644 --- a/wwwroot/init/simple.json +++ b/wwwroot/init/simple.json @@ -1,78 +1,84 @@ { - "catalog": [ + "homeCamera": { + "north": -8, + "east": 158, + "south": -45, + "west": 109 + }, + "catalog": [ + { + "type": "wms-group", + "name": "Test", + "url": "https://programs.communications.gov.au/geoserver/ows", + "members": [ { - "type": "wms-group", - "name": "Test", - "url": "https://programs.communications.gov.au/geoserver/ows", - "members": [ + "type": "wms", + "localId": "mybroadband%3AMyBroadband_ADSL_Availability", + "legends": [ + { + "items": [ { - "type": "wms", - "localId": "mybroadband%3AMyBroadband_ADSL_Availability", - "legends": [ - { - "items": [ - { - "title": "A - Best", - "color": "#6B0038" - }, - { - "title": "B", - "color": "#F41911" - }, - { - "title": "C", - "color": "#F67F00" - }, - { - "title": "D", - "color": "#D78B6D" - }, - { - "title": "E - Worst", - "color": "#ECD2BE" - }, - { - "title": "No data", - "color": "rgba(0,0,0,0)", - "outlineColor": "black", - "addSpacingAbove": true - } - ] - } - ] + "title": "A - Best", + "color": "#6B0038" + }, + { + "title": "B", + "color": "#F41911" + }, + { + "title": "C", + "color": "#F67F00" + }, + { + "title": "D", + "color": "#D78B6D" + }, + { + "title": "E - Worst", + "color": "#ECD2BE" + }, + { + "title": "No data", + "color": "rgba(0,0,0,0)", + "outlineColor": "black", + "addSpacingAbove": true } - ] - }, - { - "type": "geojson", - "name": "GeoJSON Test", - "url": "test/bike_racks.geojson" - }, - { - "type": "wms-group", - "name": "Marine water quality grids for the Great Barrier Reef region - monthly data", - "url": "/proxy/_0d/http://ereeftds.bom.gov.au/ereefs/tds/wms/ereefs/mwq_gridAgg_P1M" - }, - { - "type": "magda", - "url": "https://data.gov.au", - "name": "Magda Item", - "datasetId": "ds-ga-93e51355-f5b9-4219-8dc4-815732d9e869" - }, - { - "type": "csv", - "url": "test/incidents_notime.csv", - "name": "CSV Test" - }, - { - "type": "csv", - "url": "test/localphotostories20092014.csv", - "name": "ABC Photo Stories" - }, - { - "type": "csv", - "url": "test/NSW_LGA_NEXIS_201212.csv", - "name": "NSW LGA NEXIS 2012" + ] + } + ] } - ] + ] + }, + { + "type": "geojson", + "name": "GeoJSON Test", + "url": "test/bike_racks.geojson" + }, + { + "type": "wms-group", + "name": "Marine water quality grids for the Great Barrier Reef region - monthly data", + "url": "/proxy/_0d/http://ereeftds.bom.gov.au/ereefs/tds/wms/ereefs/mwq_gridAgg_P1M" + }, + { + "type": "magda", + "url": "https://data.gov.au", + "name": "Magda Item", + "datasetId": "ds-ga-93e51355-f5b9-4219-8dc4-815732d9e869" + }, + { + "type": "csv", + "url": "test/incidents_notime.csv", + "name": "CSV Test" + }, + { + "type": "csv", + "url": "test/localphotostories20092014.csv", + "name": "ABC Photo Stories" + }, + { + "type": "csv", + "url": "test/NSW_LGA_NEXIS_201212.csv", + "name": "NSW LGA NEXIS 2012" + } + ] } From 8704431fc0f24fb8d1d08be492fb0050dea34e2d Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Wed, 26 Jun 2019 10:59:52 +1000 Subject: [PATCH 039/246] Use safer puppeteer concurrent route # --- buildprocess/webpack.config.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/buildprocess/webpack.config.js b/buildprocess/webpack.config.js index c329c283db..2d9ff3462e 100644 --- a/buildprocess/webpack.config.js +++ b/buildprocess/webpack.config.js @@ -153,8 +153,9 @@ module.exports = function(devMode, hot) { indexPath: path.resolve(__dirname, '..', 'wwwroot', 'index.html'), routes: prerenderRoutes, renderer: new Renderer({ - renderAfterDocumentEvent: 'prerender-end', - maxConcurrentRoutes: 12, + renderAfterDocumentEvent: 'prerender-end', + // If you run out of memory, try a lower value here + maxConcurrentRoutes: 8, // headless: false, // set to false for debugging }), })]; From fcdb65541e109715b4f66bc9150b1429e8f69ec5 Mon Sep 17 00:00:00 2001 From: Wing Ho Date: Wed, 26 Jun 2019 11:04:46 +1000 Subject: [PATCH 040/246] Update travis for prerender test --- .travis.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.travis.yml b/.travis.yml index f995813f38..41920ac806 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,15 @@ language: node_js +dist: trusty +addons: + apt: + packages: + - libnss3 node_js: - '8' script: - gulp lint release env: - NODE_OPTIONS=--max_old_space_size=2048 +before_install: + # Enable user namespace cloning + - "sysctl kernel.unprivileged_userns_clone=1" From b463ca1cabcec74d4869ef97fb1b039635178c5f Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Fri, 28 Jun 2019 10:36:35 +1000 Subject: [PATCH 041/246] Add CzmlCatalogItem, Bing search. --- index.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/index.js b/index.js index fbab175b40..301fdc9a7e 100644 --- a/index.js +++ b/index.js @@ -17,7 +17,7 @@ import Terria from 'terriajs/lib/Models/Terria'; import updateApplicationOnHashChange from 'terriajs/lib/ViewModels/updateApplicationOnHashChange'; // import updateApplicationOnMessageFromParentWindow from 'terriajs/lib/ViewModels/updateApplicationOnMessageFromParentWindow'; import ViewState from 'terriajs/lib/ReactViewModels/ViewState'; -// import BingMapsSearchProviderViewModel from 'terriajs/lib/ViewModels/BingMapsSearchProviderViewModel.js'; +import BingMapsSearchProviderViewModel from 'terriajs/lib/Models/BingMapsSearchProvider'; // import GazetteerSearchProviderViewModel from 'terriajs/lib/ViewModels/GazetteerSearchProviderViewModel.js'; // import GnafSearchProviderViewModel from 'terriajs/lib/ViewModels/GnafSearchProviderViewModel.js'; // import defined from 'terriajs-cesium/Source/Core/defined'; @@ -28,6 +28,7 @@ import WebMapServiceCatalogItem from 'terriajs/lib/Models/WebMapServiceCatalogIt import GeoJsonCatalogItem from "terriajs/lib/Models/GeoJsonCatalogItem"; import MagdaCatalogItem from "terriajs/lib/Models/MagdaCatalogItem"; import CsvCatalogItem from "terriajs/lib/Models/CsvCatalogItem"; +import CzmlCatalogItem from "terriajs/lib/Models/CzmlCatalogItem"; import createGlobalBaseMapOptions from 'terriajs/lib/ViewModels/createGlobalBaseMapOptions'; @@ -56,6 +57,7 @@ CatalogMemberFactory.register(WebMapServiceCatalogGroup.type, WebMapServiceCatal CatalogMemberFactory.register(GeoJsonCatalogItem.type, GeoJsonCatalogItem); CatalogMemberFactory.register(MagdaCatalogItem.type, MagdaCatalogItem); CatalogMemberFactory.register(CsvCatalogItem.type, CsvCatalogItem); +CatalogMemberFactory.register(CzmlCatalogItem.type, CzmlCatalogItem); if (process.env.NODE_ENV === "development") { window.viewState = viewState; @@ -82,14 +84,14 @@ module.exports = terria.start({ raiseErrorToUser(terria, e); }); try { - // viewState.searchState.locationSearchProviders = [ - // new BingMapsSearchProviderViewModel({ - // terria: terria, - // key: terria.configParameters.bingMapsKey - // }), - // new GazetteerSearchProviderViewModel({terria}), - // new GnafSearchProviderViewModel({terria}) - // ]; + viewState.searchState.locationSearchProviders = [ + new BingMapsSearchProviderViewModel({ + terria: terria, + key: terria.configParameters.bingMapsKey + }), + // new GazetteerSearchProviderViewModel({terria}), + // new GnafSearchProviderViewModel({terria}) + ]; // Automatically update Terria (load new catalogs, etc.) when the hash part of the URL changes. updateApplicationOnHashChange(terria, window); From 37ab0bc0cf516130403be9035b8909523814c2b9 Mon Sep 17 00:00:00 2001 From: Nanda Date: Tue, 2 Jul 2019 16:23:01 +1000 Subject: [PATCH 042/246] Enabling ArcGisMapServer & Cesium3DTiles catalog items. --- index.js | 4 +++ wwwroot/init/simple.json | 61 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/index.js b/index.js index 301fdc9a7e..0e12c308de 100644 --- a/index.js +++ b/index.js @@ -29,6 +29,8 @@ import GeoJsonCatalogItem from "terriajs/lib/Models/GeoJsonCatalogItem"; import MagdaCatalogItem from "terriajs/lib/Models/MagdaCatalogItem"; import CsvCatalogItem from "terriajs/lib/Models/CsvCatalogItem"; import CzmlCatalogItem from "terriajs/lib/Models/CzmlCatalogItem"; +import ArcGisMapServerCatalogItem from "terriajs/lib/Models/ArcGisMapServerCatalogItem"; +import Cesium3DTilesCatalogItem from "terriajs/lib/Models/Cesium3DTilesCatalogItem"; import createGlobalBaseMapOptions from 'terriajs/lib/ViewModels/createGlobalBaseMapOptions'; @@ -58,6 +60,8 @@ CatalogMemberFactory.register(GeoJsonCatalogItem.type, GeoJsonCatalogItem); CatalogMemberFactory.register(MagdaCatalogItem.type, MagdaCatalogItem); CatalogMemberFactory.register(CsvCatalogItem.type, CsvCatalogItem); CatalogMemberFactory.register(CzmlCatalogItem.type, CzmlCatalogItem); +CatalogMemberFactory.register(ArcGisMapServerCatalogItem.type, ArcGisMapServerCatalogItem); +CatalogMemberFactory.register(Cesium3DTilesCatalogItem.type, Cesium3DTilesCatalogItem); if (process.env.NODE_ENV === "development") { window.viewState = viewState; diff --git a/wwwroot/init/simple.json b/wwwroot/init/simple.json index 7265eabb20..d98d72e8b8 100644 --- a/wwwroot/init/simple.json +++ b/wwwroot/init/simple.json @@ -79,6 +79,67 @@ "type": "csv", "url": "test/NSW_LGA_NEXIS_201212.csv", "name": "NSW LGA NEXIS 2012" + }, + { + "url": "http://services.ga.gov.au/gis/rest/services/GA_Surface_Geology/MapServer", + "type": "esri-mapServer", + "dataCustodian": "[Geoscience Australia](http://www.ga.gov.au/)", + "name": "Surface Geology", + "rectangle": { "west": 106, "south": -52, "east": 172, "north": -8 }, + "info": [ + { + "name": "Licence", + "content": "[Creative Commons Attribution 4.0 International (CC BY 4.0)](http://creativecommons.org/licenses/by/4.0/)" + } + ] + }, + { + "name": "Brisbane 3D city model (aero3Dpro)", + "type": "3d-tiles", + "description": "![aero3Dpro](http://aero3dpro.com.au/images/aero3dpro-logo2.png)\n\nAero3Dpro is an Australian 3D mapping service for the generation of geographically accurate, fully textured and high resolution 3D models of natural and urban environments.\n\nIt is an end-to-end service based on aerial photogrammetry techniques including flight planning, image acquisition, 3D processing, geo-registration and final delivery.\n\nAero3Dpro models can be provided as stand-alone data for use in common 3D rendering and CAD software or as 3D GIS-ready products.\n\nhttp://aero3dpro.com.au/\n\nThese datasets use the [Cesium 3D Tiles](https://github.com/AnalyticalGraphicsInc/3d-tiles) format.", + "url": "https://sample.aero3dpro.com.au/BrisbaneCBD/Scene/recon_h_3DTiles.json", + "options": { + "maximumScreenSpaceError": 1, + "maximumNumberOfLoadedTiles": 1000 + }, + "rectangle": { + "west": 153.01, + "south": -27.484, + "east": 153.034, + "north": -27.46 + } + }, + { + "name": "Melbourne 3D city model (aero3Dpro)", + "type": "3d-tiles", + "description": "![aero3Dpro](http://aero3dpro.com.au/images/aero3dpro-logo2.png)\n\nAero3Dpro is an Australian 3D mapping service for the generation of geographically accurate, fully textured and high resolution 3D models of natural and urban environments.\n\nIt is an end-to-end service based on aerial photogrammetry techniques including flight planning, image acquisition, 3D processing, geo-registration and final delivery.\n\nAero3Dpro models can be provided as stand-alone data for use in common 3D rendering and CAD software or as 3D GIS-ready products.\n\nhttp://aero3dpro.com.au/\n\nThese datasets use the [Cesium 3D Tiles](https://github.com/AnalyticalGraphicsInc/3d-tiles) format.", + "url": "https://sample.aero3dpro.com.au/Melbourne/Scene/recon_h_3DTiles.json", + "options": { + "maximumScreenSpaceError": 1, + "maximumNumberOfLoadedTiles": 1000 + }, + "rectangle": { + "west": 144.868, + "south": -37.885, + "east": 145.018, + "north": -37.775 + } + }, + { + "name": "Sydney 3D city model (aero3Dpro)", + "type": "3d-tiles", + "description": "![aero3Dpro](http://aero3dpro.com.au/images/aero3dpro-logo2.png)\n\nAero3Dpro is an Australian 3D mapping service for the generation of geographically accurate, fully textured and high resolution 3D models of natural and urban environments.\n\nIt is an end-to-end service based on aerial photogrammetry techniques including flight planning, image acquisition, 3D processing, geo-registration and final delivery.\n\nAero3Dpro models can be provided as stand-alone data for use in common 3D rendering and CAD software or as 3D GIS-ready products.\n\nhttp://aero3dpro.com.au/\n\nThese datasets use the [Cesium 3D Tiles](https://github.com/AnalyticalGraphicsInc/3d-tiles) format.", + "url": "https://sample.aero3dpro.com.au/Sydney/Scene/recon_h_3DTiles.json", + "options": { + "maximumScreenSpaceError": 1, + "maximumNumberOfLoadedTiles": 1000 + }, + "rectangle": { + "west": 151.161, + "south": -33.923, + "east": 151.3075, + "north": -33.796 + } } ] } From 6dfa3fb2fd8928dc6e317485aa6e6f8489a5f474 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Thu, 4 Jul 2019 13:34:24 +1000 Subject: [PATCH 043/246] Quick workaround for missing regenerator runtime. --- index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.js b/index.js index 0e12c308de..74cc036124 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,7 @@ 'use strict'; +import runtime from "regenerator-runtime/runtime"; + /*global require,window */ var terriaOptions = { From 98df4b1f550175b5101052abb8f955dfea6dc7e0 Mon Sep 17 00:00:00 2001 From: Stephen Davies Date: Thu, 4 Jul 2019 14:55:08 +1000 Subject: [PATCH 044/246] Add GltfCatalogItem to TerriaMap --- index.js | 2 ++ wwwroot/init/simple.json | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/index.js b/index.js index 0e12c308de..f166688e25 100644 --- a/index.js +++ b/index.js @@ -23,6 +23,7 @@ import BingMapsSearchProviderViewModel from 'terriajs/lib/Models/BingMapsSearchP // import defined from 'terriajs-cesium/Source/Core/defined'; import render from './lib/Views/render'; import CatalogMemberFactory from 'terriajs/lib/Models/CatalogMemberFactory'; +import GltfCatalogItem from 'terriajs/lib/Models/GltfCatalogItem'; import WebMapServiceCatalogGroup from 'terriajs/lib/Models/WebMapServiceCatalogGroup'; import WebMapServiceCatalogItem from 'terriajs/lib/Models/WebMapServiceCatalogItem'; import GeoJsonCatalogItem from "terriajs/lib/Models/GeoJsonCatalogItem"; @@ -56,6 +57,7 @@ const viewState = new ViewState({ CatalogMemberFactory.register(WebMapServiceCatalogItem.type, WebMapServiceCatalogItem); CatalogMemberFactory.register(WebMapServiceCatalogGroup.type, WebMapServiceCatalogGroup); +CatalogMemberFactory.register(GltfCatalogItem.type, GltfCatalogItem); CatalogMemberFactory.register(GeoJsonCatalogItem.type, GeoJsonCatalogItem); CatalogMemberFactory.register(MagdaCatalogItem.type, MagdaCatalogItem); CatalogMemberFactory.register(CsvCatalogItem.type, CsvCatalogItem); diff --git a/wwwroot/init/simple.json b/wwwroot/init/simple.json index d98d72e8b8..2d2265baca 100644 --- a/wwwroot/init/simple.json +++ b/wwwroot/init/simple.json @@ -140,6 +140,18 @@ "east": 151.3075, "north": -33.796 } + }, + { + "type": "gltf", + "url": "https://cesiumjs.org/Cesium/Apps/SampleData/models/CesiumAir/Cesium_Air.glb", + "name": "Cesium Air", + "origin": { + "longitude": 151.197, + "latitude": -33.895, + "height": 100 + }, + "upAxis": "Y", + "forwardAxis": "X" } ] } From fc5aebec61b8fbbf40e2c92aa4ca508d2dc7e93e Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Thu, 4 Jul 2019 17:09:37 +1000 Subject: [PATCH 045/246] Better mechanism for loading regenerator-runtime. --- entry.js | 9 +++++---- index.js | 2 -- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/entry.js b/entry.js index 5d7d469d18..8c8c37cea2 100644 --- a/entry.js +++ b/entry.js @@ -6,11 +6,12 @@ require('./lib/Styles/loader.css'); function loadMainScript() { // load the main chunk return new Promise((resolve, reject) => { + require.ensure(['terriajs/lib/Core/prerequisites'], function(require) { + require('terriajs/lib/Core/prerequisites'); require.ensure(['./index'], function(require) { - resolve(require('./index')); - }, function(error) { - reject(error); - }, 'index'); + resolve(require('./index')); + }, reject, 'index'); + }, reject, 'index'); }); } diff --git a/index.js b/index.js index cc2af14f9d..f166688e25 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,5 @@ 'use strict'; -import runtime from "regenerator-runtime/runtime"; - /*global require,window */ var terriaOptions = { From 4e43147d5c6caf5e44429e82cde666f747ea5f71 Mon Sep 17 00:00:00 2001 From: "Caleb (Contractor) Hemphill PR" Date: Fri, 5 Jul 2019 14:48:58 -0500 Subject: [PATCH 046/246] changed terriajs version to mobx branch --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 671bddab02..3b7bfbfafa 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "semver": "^5.0.0", "style-loader": "^0.23.1", "svg-sprite-loader": "4.1.3", - "terriajs": ">7.0.0", + "terriajs": "TerriaJS/terriajs#mobx", "terriajs-catalog-editor": "^0.2.0", "terriajs-cesium": "1.58.1", "terriajs-schema": "latest", From 618ef4f6f2edd0e67706af92f7f7e1a971a75fde Mon Sep 17 00:00:00 2001 From: "Caleb (Contractor) Hemphill PR" Date: Fri, 5 Jul 2019 15:05:52 -0500 Subject: [PATCH 047/246] changed terriajs version to mobx branch --- package-lock.json | 567 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 510 insertions(+), 57 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9ca9121b7d..725c936dc0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1090,12 +1090,39 @@ } } }, + "@types/cesium": { + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@types/cesium/-/cesium-1.59.0.tgz", + "integrity": "sha512-CGXl5UBUVbBTvqoOetGvvZ4YxGD1XDh4yCJIboNE2cyFz4hvK0HeHlerEWbNGvEchk+0nFiJBrYSnxazG2ye5Q==", + "dev": true + }, + "@types/classnames": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.9.tgz", + "integrity": "sha512-MNl+rT5UmZeilaPxAVs6YaPC2m6aA8rofviZbhbxpPpl61uKodfdQVsBtgJGTqGizEf02oW3tsVe7FYB8kK14A==", + "dev": true + }, + "@types/create-react-class": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/@types/create-react-class/-/create-react-class-15.6.2.tgz", + "integrity": "sha512-jeDUr85ld9dTUmrb0VEX1P4dGDPZocWXjeW/+jFJpdCqpCcs0Hdrv3awZqjkEsRaB/IEDe+v0ARYgBqNoDORFQ==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, "@types/events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", "dev": true }, + "@types/geojson": { + "version": "7946.0.7", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz", + "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==", + "dev": true + }, "@types/glob": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", @@ -1107,6 +1134,42 @@ "@types/node": "*" } }, + "@types/jasmine": { + "version": "2.8.16", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.16.tgz", + "integrity": "sha512-056oRlBBp7MDzr+HoU5su099s/s7wjZ3KcHxLfv+Byqb9MwdLUvsfLgw1VS97hsh3ddxSPyQu+olHMnoVTUY6g==", + "dev": true + }, + "@types/json5": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.30.tgz", + "integrity": "sha512-sqm9g7mHlPY/43fcSNrCYfOeX9zkTTK+euO5E6+CVijSMm5tTjkVdwdqRkY3ljjIAf8679vps5jKUoJBCLsMDA==", + "dev": true + }, + "@types/leaflet": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.4.4.tgz", + "integrity": "sha512-CROxHvsRDFyR1OQKZv/WJsCVFv8Wj6wFF/FOI/yiGwX7GMivyvF8Ks5AT3/JYk269pGiE43wP9JOgcr7EK2eUw==", + "dev": true, + "requires": { + "@types/geojson": "*" + } + }, + "@types/lodash": { + "version": "4.14.135", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.135.tgz", + "integrity": "sha512-Ed+tSZ9qM1oYpi5kzdsBuOzcAIn1wDW+e8TFJ50IMJMlSopGdJgKAbhHzN6h1E1OfjlGOr2JepzEWtg9NIfoNg==", + "dev": true + }, + "@types/lodash-es": { + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.3.tgz", + "integrity": "sha512-iHI0i7ZAL1qepz1Y7f3EKg/zUMDwDfTzitx+AlHhJJvXwenP682ZyGbgPSc5Ej3eEAKVbNWKFuwOadCj5vBbYQ==", + "dev": true, + "requires": { + "@types/lodash": "*" + } + }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -1118,6 +1181,49 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.48.tgz", "integrity": "sha512-c35YEBTkL4rzXY2ucpSKy+UYHjUBIIkuJbWYbsGIrKLEWU5dgJMmLkkIb3qeC3O3Tpb1ZQCwecscvJTDjDjkRw==" }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "dev": true + }, + "@types/papaparse": { + "version": "4.5.11", + "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-4.5.11.tgz", + "integrity": "sha512-zOw6K7YyA/NuZ2yZ8lzZFe2U3fn+vFfcRfiQp4ZJHG6y8WYWy2SYFbq6mp4yUgpIruJHBjKZtgyE0vvCoWEq+A==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/pbf": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.1.tgz", + "integrity": "sha512-CjmHEbG9rB5e2eRg9aTDCw/HnZ/CXWlPiMXH+0d4D+/Tm18EiFL+G9wCgPCSdPnePLV+cDV6zeSQz9ysJz38UA==", + "dev": true + }, + "@types/prop-types": { + "version": "15.7.1", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.1.tgz", + "integrity": "sha512-CFzn9idOEpHrgdw8JsoTkaDDyRWk1jrzIV8djzcgpq0y9tG4B4lFT+Nxh52DVpDXV+n4+NPNv7M1Dj5uMp6XFg==", + "dev": true + }, + "@types/react": { + "version": "16.8.23", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.23.tgz", + "integrity": "sha512-abkEOIeljniUN9qB5onp++g0EY38h7atnDHxwKUFz1r3VH1+yG1OKi2sNPTyObL40goBmfKFpdii2lEzwLX1cA==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "csstype": "^2.2.0" + } + }, + "@types/urijs": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/urijs/-/urijs-1.19.2.tgz", + "integrity": "sha512-8Q7e4XLsVuqWkvl5Q9osdxi4R2nciXOu2sNWaroAY1rL58PEiSFU23q/elrAAUQdsHMaHk4kwsiOZh1rZ+7APA==", + "dev": true + }, "@webassemblyjs/ast": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", @@ -2610,6 +2716,32 @@ "mkdirp2": "^1.0.3" } }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + } + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -2732,6 +2864,12 @@ "tslib": "^1.9.0" } }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", @@ -3411,6 +3549,46 @@ "vary": "^1" } }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "dependencies": { + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, "crc": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", @@ -3642,6 +3820,12 @@ "dev": true, "optional": true }, + "csstype": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.5.tgz", + "integrity": "sha512-JsTaiksRsel5n7XwqPAfB0l3TFKdpjW/kgAELf9vrb5adGA7UCPLajKK5s3nFrcFm3Rkyp/Qkgl73ENc1UY3cA==", + "dev": true + }, "culvert": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", @@ -3690,9 +3874,9 @@ "dev": true }, "d3-color": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.2.3.tgz", - "integrity": "sha512-x37qq3ChOTLd26hnps36lexMRhNXEtVxZ4B25rL0DVdDsGQIJGB18S7y9XDwlDD6MD/ZBzITCf4JjGMM10TZkw==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.2.8.tgz", + "integrity": "sha512-yeANXzP37PHk0DbSTMNPhnJD+Nn4G//O5E825bR6fAfHH43hobSBpgB9G9oWVl9+XgUaQ4yCnsX1H+l8DoaL9A==", "dev": true }, "d3-dispatch": { @@ -4097,6 +4281,12 @@ "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", "dev": true }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, "diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -4163,9 +4353,9 @@ } }, "dom-align": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.8.3.tgz", - "integrity": "sha512-thE1qB8mvtRZgwN4+IGFz1rv7zVsr08c2/IEYtOJIeTzW4YDadIOd5nQ4BpiiAvUWg55xTeGq7zLTDxDYWDrnw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.9.0.tgz", + "integrity": "sha512-HvPfXISxoU7dKrbqS4vIFa1hx88wD7VdKaZ7sHWeow8y76tuzsxXkiPGbeilemLXrTd9cWbPqR4MOl4y3dkcXA==", "dev": true }, "dom-converter": { @@ -5462,7 +5652,8 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -5827,7 +6018,8 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true + "bundled": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -5875,6 +6067,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5913,11 +6106,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "yallist": { "version": "3.0.3", - "bundled": true + "bundled": true, + "optional": true } } }, @@ -6723,6 +6918,15 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "hoist-non-react-statics": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz", + "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==", + "dev": true, + "requires": { + "react-is": "^16.7.0" + } + }, "homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -6993,6 +7197,99 @@ "debug": "^3.1.0" } }, + "husky": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/husky/-/husky-2.7.0.tgz", + "integrity": "sha512-LIi8zzT6PyFpcYKdvWRCn/8X+6SuG2TgYYMrM6ckEYhlp44UcEduVymZGIZNLiwOUjrEud+78w/AsAiqJA/kRg==", + "dev": true, + "requires": { + "cosmiconfig": "^5.2.0", + "execa": "^1.0.0", + "find-up": "^3.0.0", + "get-stdin": "^7.0.0", + "is-ci": "^2.0.0", + "pkg-dir": "^4.1.0", + "please-upgrade-node": "^3.1.1", + "read-pkg": "^5.1.1", + "run-node": "^1.0.0", + "slash": "^3.0.0" + }, + "dependencies": { + "get-stdin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", + "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + } + } + }, + "read-pkg": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.1.1.tgz", + "integrity": "sha512-dFcTLQi6BZ+aFUaICg7er+/usEoqFdQxiEBsEMNGoipenihtxxtdrQuBXvyANCEI8VuUIVYFgeHGx9sLLvim4w==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^4.0.0", + "type-fest": "^0.4.1" + } + } + } + }, "hyphenate-style-name": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz", @@ -7315,6 +7612,15 @@ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", "dev": true }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -7356,6 +7662,12 @@ } } }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -7548,6 +7860,18 @@ "requires": { "node-fetch": "^1.0.1", "whatwg-fetch": ">=0.10.0" + }, + "dependencies": { + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + } } }, "isstream": { @@ -7872,9 +8196,9 @@ } }, "leaflet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.3.1.tgz", - "integrity": "sha512-adQOIzh+bfdridLM1xIgJ9VnJbAUY3wqs/ueF+ITla+PLQ1z47USdBKUf+iD9FuUA8RtlT6j6hZBfZoA6mW+XQ==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.5.1.tgz", + "integrity": "sha512-ekM9KAeG99tYisNBg0IzEywAlp0hYI5XRipsqRXyRTeuU8jcuntilpp+eFf5gaE0xubc9RuSNIVtByEKwqFV0w==", "dev": true }, "levn": { @@ -7980,6 +8304,12 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, + "lodash-es": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.11.tgz", + "integrity": "sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q==", + "dev": true + }, "lodash._getnative": { "version": "3.9.1", "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", @@ -7992,12 +8322,6 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, "lodash.findindex": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.findindex/-/lodash.findindex-4.6.0.tgz", @@ -8065,12 +8389,6 @@ "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", "dev": true }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, "log-driver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", @@ -8131,6 +8449,12 @@ "semver": "^5.6.0" } }, + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, "make-iterator": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", @@ -8529,6 +8853,28 @@ "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-0.1.0.tgz", "integrity": "sha1-dVSm+Nhxg0zJe1RisSLEwSTW3pE=" }, + "mobx": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-4.12.0.tgz", + "integrity": "sha512-ydTbIbe4fjIS+EVBvtgI4K/KHLKZqdO7YVXo7530uLO/Y7l8lsxq0eD0pZkZvdLlC071flMYXS+By8+MwOPF0w==", + "dev": true + }, + "mobx-react": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-5.4.4.tgz", + "integrity": "sha512-2mTzpyEjVB/RGk2i6KbcmP4HWcAUFox5ZRCrGvSyz49w20I4C4qql63grPpYrS9E9GKwgydBHQlA4y665LuRCQ==", + "dev": true, + "requires": { + "hoist-non-react-statics": "^3.0.0", + "react-lifecycles-compat": "^3.0.2" + } + }, + "mobx-utils": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/mobx-utils/-/mobx-utils-5.4.1.tgz", + "integrity": "sha512-u5BSvFiSx1ZkzBz/7V96RB7xWn7oOFwczI+AVi1v8TV8HbT8rXLco1Aqb87tEA8Jsc2e5uvTwHdYoiv81qspaA==", + "dev": true + }, "module-details-from-path": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", @@ -8726,14 +9072,10 @@ } }, "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dev": true, - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==", + "dev": true }, "node-forge": { "version": "0.7.5", @@ -9427,6 +9769,12 @@ "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" }, + "papaparse": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-4.6.3.tgz", + "integrity": "sha512-LRq7BrHC2kHPBYSD50aKuw/B/dGcg29omyJbKWY3KsYUZU69RKwaBHu13jGmCYBtOc4odsLCrFyk6imfyNubJQ==", + "dev": true + }, "parallel-transform": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", @@ -9651,6 +9999,11 @@ "sha.js": "^2.4.8" } }, + "pell": { + "version": "git://github.com/TerriaJS/pell.git#7cd23a55cdfd130fedf3679433991bb7d958fc42", + "from": "git://github.com/TerriaJS/pell.git#master", + "dev": true + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -9694,6 +10047,15 @@ "find-up": "^3.0.0" } }, + "please-upgrade-node": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz", + "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==", + "dev": true, + "requires": { + "semver-compare": "^1.0.0" + } + }, "plugin-error": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", @@ -10454,9 +10816,9 @@ } }, "rc-trigger": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-2.6.3.tgz", - "integrity": "sha512-wcYFTdWBcHjK+Wu72sLzpKttKBqJpFoIv7Ho6AnAjjsJZlxi+MpHrQs9ozRM3Q9G1M87BSYYrORGSgx5HpGI1w==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-2.6.4.tgz", + "integrity": "sha512-dN/Iia5E+xLh33OyvIol1Gg1WfHVfL9fUdq34/ejeYENghUNkF0965PDe+GYIgypYplhUM967rjbr/UEm6ctjA==", "dev": true, "requires": { "babel-runtime": "6.x", @@ -10587,9 +10949,9 @@ } }, "react-swipeable": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/react-swipeable/-/react-swipeable-5.2.3.tgz", - "integrity": "sha512-J92RJNIZ7wE5czNWtVUTnTTOdgsnWXcj5fcKiEhf7ZU5JYSh5wOFosKWu8FyTFa6FXwmHKMzhaKUC/p9L2n2Lw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/react-swipeable/-/react-swipeable-5.3.0.tgz", + "integrity": "sha512-mOfRfPxbcfl0jC/3DHSYWRkTElr8aU+ZVc4qv+VOhOQfw8+UM7Mhlky+1YhpRQ/5F9NRR36NZHhHP0kC1yEjGQ==", "dev": true, "requires": { "prop-types": "^15.6.2" @@ -11256,6 +11618,12 @@ "is-promise": "^2.1.0" } }, + "run-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz", + "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==", + "dev": true + }, "run-queue": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", @@ -11526,6 +11894,12 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, "semver-greatest-satisfied-range": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", @@ -11756,6 +12130,12 @@ "integrity": "sha512-wqTjlmbiaL6Fqaw28tSjQrthjxVV17MMfi/H/qvE0jAvtLspB2S7gEtcR27uvhSRAa64LhjhoO169rX8sFW3pg==", "dev": true }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", @@ -12364,6 +12744,16 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, + "string-replace-loader": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/string-replace-loader/-/string-replace-loader-2.2.0.tgz", + "integrity": "sha512-Ukt4ZC8+xVWdBRut3/iwnPJCNL1yV8AbVKXn8UcWdYrHgtuW4UDDAbBSi/J/CQDEWQBt824AJvPYahF23eJLRg==", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^1.0.0" + } + }, "string-replace-webpack-plugin": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/string-replace-webpack-plugin/-/string-replace-webpack-plugin-0.1.3.tgz", @@ -12859,9 +13249,8 @@ "dev": true }, "terriajs": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/terriajs/-/terriajs-7.6.2.tgz", - "integrity": "sha512-MsX9EPaGR25wbhdQpQFIj8fiYK8jlUb5jSEu4upbFkBq/PozwYOcpArfzLQHX38wzcl0YSddro9PRYXtSyNsVA==", + "version": "github:TerriaJS/terriajs#db9884a8ea9d9b44d0afe8786188bfa104cd2aa2", + "from": "github:TerriaJS/terriajs#mobx", "dev": true, "requires": { "@babel/core": "^7.3.3", @@ -12871,6 +13260,18 @@ "@mapbox/point-geometry": "^0.1.0", "@mapbox/togeojson": "^0.16.0", "@mapbox/vector-tile": "^1.3.0", + "@types/cesium": "^1.47.3", + "@types/classnames": "^2.2.7", + "@types/create-react-class": "^15.6.2", + "@types/geojson": "^7946.0.7", + "@types/jasmine": "^2.8.8", + "@types/json5": "^0.0.30", + "@types/leaflet": "^1.4.3", + "@types/lodash-es": "^4.17.3", + "@types/papaparse": "^4.5.9", + "@types/pbf": "^3.0.1", + "@types/react": "^16.8.18", + "@types/urijs": "^1.19.1", "babel-loader": "^8.0.5", "babel-plugin-jsx-control-statements": "^4.0.0", "class-list": "^0.1.1", @@ -12899,16 +13300,21 @@ "interactjs": "1.4.0-alpha.17", "javascript-natural-sort": "^0.7.1", "json5": "^2.1.0", - "leaflet": "1.3.1", + "leaflet": "^1.4.0", "linkify-it": "^2.0.0", - "lodash.debounce": "^4.0.6", - "lodash.uniq": "^4.5.0", + "lodash-es": "^4.17.11", "markdown-it": "^8.0.0", "mini-css-extract-plugin": "^0.5.0", + "mobx": "^4.11.0", + "mobx-react": "^5.2.5", + "mobx-utils": "^5.4.1", "moment": "^2.21.0", "mustache": "^2.2.1", "mutationobserver-shim": "^0.3.1", + "node-fetch": "^2.1.1", + "papaparse": "^4.6.3", "pbf": "^3.0.1", + "pell": "git://github.com/TerriaJS/pell.git#7cd23a55cdfd130fedf3679433991bb7d958fc42", "point-in-polygon": "^1.0.1", "proj4": "^2.4.4", "prop-types": "^15.6.0", @@ -12925,21 +13331,19 @@ "retry": "^0.12.0", "sass-loader": "^7.1.0", "simple-statistics": "^7.0.1", + "string-replace-loader": "^2.1.1", "string-replace-webpack-plugin": "^0.1.3", "style-loader": "^0.23.1", "svg-sprite-loader": "4.1.3", "terriajs-cesium": "1.58.1", "terriajs-html2canvas": "1.0.0-alpha.12-terriajs-1", + "ts-loader": "^5.3.3", + "ts-node": "^5.0.1", + "typescript": "^3.5.1", "urijs": "^1.18.12", "url-loader": "^1.1.2", "webpack": "^4.29.5", "worker-loader": "^2.0.0" - }, - "dependencies": { - "pell": { - "version": "git://github.com/TerriaJS/pell.git#7cd23a55cdfd130fedf3679433991bb7d958fc42", - "from": "git://github.com/TerriaJS/pell.git#7cd23a55cdfd130fedf3679433991bb7d958fc42" - } } }, "terriajs-catalog-editor": { @@ -12986,7 +13390,6 @@ "integrity": "sha1-cOwp4RCrn2QpcYGYC+Jp8PRG23Q=", "dev": true, "requires": { - "jsonschema": "git+https://github.com/terriajs/jsonschema.git#55cedb27a265bbae2b366a3824863c586c5d34cf", "when": "^3.7.7", "yargs": "^3.32.0" }, @@ -13023,11 +13426,6 @@ "number-is-nan": "^1.0.0" } }, - "jsonschema": { - "version": "git+https://github.com/terriajs/jsonschema.git#55cedb27a265bbae2b366a3824863c586c5d34cf", - "from": "git+https://github.com/terriajs/jsonschema.git", - "dev": true - }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", @@ -13433,6 +13831,43 @@ "glob": "^7.1.2" } }, + "ts-loader": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-5.4.5.tgz", + "integrity": "sha512-XYsjfnRQCBum9AMRZpk2rTYSVpdZBpZK+kDh0TeT3kxmQNBDVIeUjdPjY5RZry4eIAb8XHc4gYSUiUWPYvzSRw==", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "enhanced-resolve": "^4.0.0", + "loader-utils": "^1.0.2", + "micromatch": "^3.1.4", + "semver": "^5.0.1" + } + }, + "ts-node": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-5.0.1.tgz", + "integrity": "sha512-XK7QmDcNHVmZkVtkiwNDWiERRHPyU8nBqZB1+iv2UhOG0q3RQ9HsZ2CMqISlFbxjrYFGfG2mX7bW4dAyxBVzUw==", + "dev": true, + "requires": { + "arrify": "^1.0.0", + "chalk": "^2.3.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.3", + "yn": "^2.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, "tslib": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", @@ -13470,6 +13905,12 @@ "prelude-ls": "~1.1.2" } }, + "type-fest": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", + "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "dev": true + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -13485,6 +13926,12 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "typescript": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.2.tgz", + "integrity": "sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA==", + "dev": true + }, "typical": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", @@ -15021,6 +15468,12 @@ "decamelize": "^1.2.0" } }, + "yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true + }, "zip-stream": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", From 6c1ac6d0bc1c308c0cca1cee2f4c8a679ebe64c9 Mon Sep 17 00:00:00 2001 From: Emma Krantz Date: Mon, 8 Jul 2019 14:40:59 +1000 Subject: [PATCH 048/246] added nsw buses to catalog --- index.js | 2 + wwwroot/init/simple.json | 19 + wwwroot/lowpoly_bus/attribution.txt | 3 + wwwroot/lowpoly_bus/scene.bin | Bin 0 -> 146160 bytes wwwroot/lowpoly_bus/scene.gltf | 1796 +++++++++++++++++ .../CARRO3PCARRO1P1C1greytire_baseColor.png | Bin 0 -> 119520 bytes .../textures/onibus1body1_baseColor.png | Bin 0 -> 123754 bytes yarn.lock | 51 +- 8 files changed, 1845 insertions(+), 26 deletions(-) create mode 100644 wwwroot/lowpoly_bus/attribution.txt create mode 100644 wwwroot/lowpoly_bus/scene.bin create mode 100644 wwwroot/lowpoly_bus/scene.gltf create mode 100644 wwwroot/lowpoly_bus/textures/CARRO3PCARRO1P1C1greytire_baseColor.png create mode 100755 wwwroot/lowpoly_bus/textures/onibus1body1_baseColor.png diff --git a/index.js b/index.js index f166688e25..932c295b90 100644 --- a/index.js +++ b/index.js @@ -33,6 +33,7 @@ import CzmlCatalogItem from "terriajs/lib/Models/CzmlCatalogItem"; import ArcGisMapServerCatalogItem from "terriajs/lib/Models/ArcGisMapServerCatalogItem"; import Cesium3DTilesCatalogItem from "terriajs/lib/Models/Cesium3DTilesCatalogItem"; import createGlobalBaseMapOptions from 'terriajs/lib/ViewModels/createGlobalBaseMapOptions'; +import GtfsCatalogItem from 'terriajs/lib/Models/GtfsCatalogItem'; // Register all types of catalog members in the core TerriaJS. If you only want to register a subset of them @@ -64,6 +65,7 @@ CatalogMemberFactory.register(CsvCatalogItem.type, CsvCatalogItem); CatalogMemberFactory.register(CzmlCatalogItem.type, CzmlCatalogItem); CatalogMemberFactory.register(ArcGisMapServerCatalogItem.type, ArcGisMapServerCatalogItem); CatalogMemberFactory.register(Cesium3DTilesCatalogItem.type, Cesium3DTilesCatalogItem); +CatalogMemberFactory.register(GtfsCatalogItem.type, GtfsCatalogItem); if (process.env.NODE_ENV === "development") { window.viewState = viewState; diff --git a/wwwroot/init/simple.json b/wwwroot/init/simple.json index 2d2265baca..0396497ec3 100644 --- a/wwwroot/init/simple.json +++ b/wwwroot/init/simple.json @@ -152,6 +152,25 @@ }, "upAxis": "Y", "forwardAxis": "X" + }, + { + "type": "gtfs", + "url": "https://api.transport.nsw.gov.au/v1/gtfs/vehiclepos/buses", + "image": "images/icons/sydney_bus_icon_smaller.png", + "name": "NSW Live Transport - Buses", + "apiKey": "l4VnvZi4uQLSvD7lwN2ac7vIDJUJ3epYva4l", + "refreshInterval": 5, + "featureInfoTemplate": { + "name": "{{vehicle_trip_bus_number}}", + "template": "Bus: {{route_short_name}}
Occupancy: {{occupancy_status_str}}
Speed: {{speed_km}} km/h
Direction: ⬆" + }, + "model": { + "url": "lowpoly_bus/scene.gltf", + "scale": 0.3048, + "maximumDistance": 500.0, + "bearingDirectionProperty": "vehicle.position.bearing", + "compassDirectionProperty": "vehicle.position.compass" + } } ] } diff --git a/wwwroot/lowpoly_bus/attribution.txt b/wwwroot/lowpoly_bus/attribution.txt new file mode 100644 index 0000000000..9c51fea2c3 --- /dev/null +++ b/wwwroot/lowpoly_bus/attribution.txt @@ -0,0 +1,3 @@ +Model from Sketchfab user rkmorello: +https://sketchfab.com/models/5c8b8d30a37543feae428846484d316b +Available under Creative Commons Attribution license diff --git a/wwwroot/lowpoly_bus/scene.bin b/wwwroot/lowpoly_bus/scene.bin new file mode 100644 index 0000000000000000000000000000000000000000..8a946b7c7254196b8ddfa10b66d57d5bc35afbbb GIT binary patch literal 146160 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 vH#RRDd_{-KUp~SeC+$f`AWZ@$lngy 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 ZpSAA3oA>h9Be2#;SKB}<=a}uy{{!Zq`~Cm` literal 0 HcmV?d00001 diff --git a/wwwroot/lowpoly_bus/textures/onibus1body1_baseColor.png b/wwwroot/lowpoly_bus/textures/onibus1body1_baseColor.png new file mode 100755 index 0000000000000000000000000000000000000000..a6e30973dca275b74aa2112244eaf1b8999a8bbb GIT binary patch literal 123754 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 Date: Tue, 9 Jul 2019 17:20:19 +1000 Subject: [PATCH 049/246] Use terriajs-cesium v1.59.0. --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 671bddab02..b85ebb733c 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "fs-extra": "^7.0.1", "generate-terriajs-schema": "^1.4.0", "gulp": "^4.0.0", - "husky": "^2.4.1", + "husky": "^2.2.0", "json5": "^2.1.0", "node-notifier": "^5.1.2", "node-sass": "^4.11.0", @@ -67,7 +67,7 @@ "svg-sprite-loader": "4.1.3", "terriajs": ">7.0.0", "terriajs-catalog-editor": "^0.2.0", - "terriajs-cesium": "1.58.1", + "terriajs-cesium": "1.59.0", "terriajs-schema": "latest", "urijs": "^1.18.12", "url-loader": "^1.1.2", @@ -99,4 +99,4 @@ "pre-commit": "pretty-quick --staged" } } -} +} \ No newline at end of file From 6669716c23d38a0a71132b9e980e940ca826d4cf Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Fri, 12 Jul 2019 16:49:37 +1000 Subject: [PATCH 050/246] Add power generation dataset to catalog. --- devserverconfig.json | 3 +- wwwroot/init/simple.json | 73 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 1 deletion(-) diff --git a/devserverconfig.json b/devserverconfig.json index c42498ddf2..b561b6b46c 100644 --- a/devserverconfig.json +++ b/devserverconfig.json @@ -21,7 +21,8 @@ "gov", "gov.uk", "gov.nz", - "sample.aero3dpro.com.au" + "sample.aero3dpro.com.au", + "services.aremi.data61.io" ] } diff --git a/wwwroot/init/simple.json b/wwwroot/init/simple.json index 0396497ec3..2fe38d748e 100644 --- a/wwwroot/init/simple.json +++ b/wwwroot/init/simple.json @@ -171,6 +171,79 @@ "bearingDirectionProperty": "vehicle.position.bearing", "compassDirectionProperty": "vehicle.position.compass" } + }, + { + "id": "54a553b4", + "name": "All generation types", + "url": "https://services.aremi.data61.io/aemo/v6/csv/all", + "type": "csv", + "cacheDuration": "5m", + "featureInfoTemplate": { + "name": "{{DUID}} - {{Station Name}}: {{Current % of Max Cap}}%", + "template": "

{{Station Name}} ({{DUID}})

{{Participant}}

{{Current Output (MW)}}MW at {{Most Recent Output Time (AEST)}}
{{Current % of Reg Cap}}% of {{Reg Cap (MW)}}MW registered capacity
{{Current % of Max Cap}}% of {{Max Cap (MW)}}MW maximum capacity

Category {{Category}}
Classification {{Classification}}
Fuel Source {{Fuel Source - Primary}} ({{Fuel Source - Descriptor}})
Technology Type {{Technology Type - Primary}} ({{Technology Type - Descriptor}})
Physical Unit No. {{Physical Unit No_}}
Unit Size (MW) {{Unit Size (MW)}}
Aggregation {{Aggregation}}
Region {{Region}}
Power generation
" + }, + // "polling": { "seconds": 300, "replace": true }, + "rectangle": { + "west": 134.0, + "south": -47.0, + "east": 155.0, + "north": -13.0 + }, + "activeStyle": "Current % of Max Cap", + "defaultColumn": { + "replaceWithNullValues": ["-"], + "replaceWithZeroValues": [] + }, + "defaultStyle": { + "time": { + // "timeColumn": null + }, + "color": { + "nullColor": "rgba(255,255,255,0.1)", + "nullLabel": "No value", + "numberOfBins": 10, + "binColors": [ + "rgb(94,79,162)", + "rgb(50,136,189)", + "rgb(102,194,165)", + "rgb(171,221,164)", + "rgb(230,245,152)", + "rgb(254,224,139)", + "rgb(253,174,97)", + "rgb(244,109,67)", + "rgb(213,62,79)", + "rgb(158,1,66)" + ] + }, + "pointSize": { + "pointSizeColumn": "Reg Cap (MW)", + "sizeFactor": 20 + } + }, + "styles": [ + { + "id": "Aggregation", + "title": null + } + ], + "info": [ + { + "name": "Description", + "content": "The AEMO Actual Generation and Load data represents actual generation data for each scheduled generation unit, semi-scheduled generation unit, and non-scheduled generating systems (a non-scheduled generating system comprising non-scheduled generating units) for registered units in the National Electricity Market (NEM). The data is given in MegaWatt (MW).

Detailed information about the AEMO Generation and Load data is available here:

[http://aemo.com.au/Electricity/Data/Market-Management-System-MMS/Generation-and-Load](http://aemo.com.au/Electricity/Data/Market-Management-System-MMS/Generation-and-Load)

Visualisation of AEMO current generation data is based on data files generated every 5 minutes available here:

[http://www.nemweb.com.au/REPORTS/CURRENT/Dispatch_SCADA/](http://www.nemweb.com.au/REPORTS/CURRENT/Dispatch_SCADA/)

Visualisation of AEMO historic data is based on daily data files available here:

[http://www.nemweb.com.au/REPORTS/ARCHIVE/Dispatch_SCADA/](http://www.nemweb.com.au/REPORTS/ARCHIVE/Dispatch_SCADA/)

AEMO provides a range of data. Raw data is provided in Comma Separated Values (CSV) flat file format to enable access to a range of market data. Recent files are stored in a directory for current reports, and older files are moved into the respective archive reports directory.

All electricity data provided by AEMO is available here:

[http://aemo.com.au/Electricity/Data](http://aemo.com.au/Electricity/Data)" + }, + { + "name": "Updates", + "content": "The Actual Generation and Load data is updated in 5-minute intervals." + }, + { + "name": "Data Custodian", + "content": "AEMO is the data custodian of electricity generation data displayed on AREMI. Please refer to attribution, licensing and copyrights provisions further on this page.

The Australian Energy Market Operator (AEMO) was established by the Council of Australian Governments (COAG) to manage the National Electricity Market (NEM) and gas markets from 1 July 2009.

AEMO’s core functions can be grouped into the following areas: 1) Electricity Market Operator; 2) Gas Markets Operator; 3) National Transmission Planner; 4) Transmission Services; 5) Energy Market Development.

AEMO operates on a cost recovery basis as a corporate entity limited by guarantee under the Corporations Law. Its membership structure is split between government and industry, respectively 60 and 40 percent. Government members of AEMO include the Queensland, New South Wales, Victorian, South Australian and Tasmanian state governments, the Commonwealth and the Australian Capital Territory.

As part of the role of managing the NEM and assisting industry, AEMO publishes electricity market data updated in 5 minute intervals and on a daily, monthly and annual basis. Categories of data published are:

1) Price and demand;
2) Forecast supply and demand;
3) Market notices;
4) Ancillary services;
5) Network data;
6) Pre-dispatch demand forecasting performance;
7) Settlements;
8) Market management system (MMS) (which includes Generation & Load data).

More information on AEMO and services provided is available here:

[http://aemo.com.au/About-AEMO](http://aemo.com.au/About-AEMO)" + }, + { + "name": "Licensing, Terms & Conditions", + "content": "Australian Energy Market Operator (AEMO) is the data custodian for Generation & Load data sets, available on AEMO’s website.

AREMI is displaying the data under AEMO’s licencing and copyright conditions detailed below.

The data is provided for information only and is not intended for commercial use. AEMO does not guarantee the accuracy of the data or its availability at all times.

AEMO, or its licensors, are the owners of all copyright and all other intellectual property rights in the contents of the AEMO website (including text and images). Users may only use such contents for personal use or as authorised by AEMO. Here are the details of the AEMO’s copyright permissions:

AEMO Material comprises documents, reports, sound and video recordings and any other material created by or on behalf of AEMO and made publicly available by AEMO. All AEMO Material is protected by copyright under Australian law. A publication is protected even if it does not display the © symbol.

In addition to the uses permitted under copyright laws, AEMO confirms its general permission for anyone to use AEMO Material for any purpose, but only with accurate and appropriate attribution of the relevant AEMO Material and AEMO as its author. There is no need to obtain specific permission to use AEMO Material in this way. Confidential documents and any reports commissioned by another person or body who may own the copyright in them and NOT AEMO Material, and these permissions do not apply to those documents.

More information on conditions of use of AEMO generated data and information is available on the AEMO website: [http://aemo.com.au/About-AEMO/Legal-Notices](http://aemo.com.au/About-AEMO/Legal-Notices)" + } + ] } ] } From 54aed6ab9e7cc2c18d9b2c3375bd1778d0e69b6c Mon Sep 17 00:00:00 2001 From: Emma Krantz Date: Wed, 24 Jul 2019 11:48:41 +1000 Subject: [PATCH 051/246] TerriaMap now supports typescript --- buildprocess/webpack.config.js | 25 +- package.json | 6 +- tsconfig.json | 3 + yarn.lock | 670 ++++++++++++++++++++++++--------- 4 files changed, 516 insertions(+), 188 deletions(-) create mode 100644 tsconfig.json diff --git a/buildprocess/webpack.config.js b/buildprocess/webpack.config.js index f3efbf321f..1727f8cf94 100644 --- a/buildprocess/webpack.config.js +++ b/buildprocess/webpack.config.js @@ -26,22 +26,27 @@ module.exports = function(devMode, hot) { loader: 'raw-loader' }, { - test: /\.(js|jsx)$/, + test: /\.(ts|js)x$/, include: [ path.resolve(__dirname, '..', 'index.js'), path.resolve(__dirname, '..', 'entry.js'), path.resolve(__dirname, '..', 'lib') ], - loader: 'babel-loader', - options: { - sourceMap: false, // generated sourcemaps are currently bad, see https://phabricator.babeljs.io/T7257 - presets: ['@babel/preset-env', '@babel/preset-react'], - plugins: [ - 'babel-plugin-jsx-control-statements', - '@babel/plugin-transform-modules-commonjs' - ] - } + use: [ + { + loader: 'babel-loader', + options: { + sourceMap: false, // generated sourcemaps are currently bad, see https://phabricator.babeljs.io/T7257 + presets: ['@babel/preset-env', '@babel/preset-react'], + plugins: [ + 'babel-plugin-jsx-control-statements', + '@babel/plugin-transform-modules-commonjs' + ] + } + }, + require.resolve('ts-loader') + ] }, { test: /\.(png|jpg|svg|gif)$/, diff --git a/package.json b/package.json index 88ba296205..2984b3617c 100644 --- a/package.json +++ b/package.json @@ -65,10 +65,12 @@ "semver": "^5.0.0", "style-loader": "^0.23.1", "svg-sprite-loader": "4.1.3", - "terriajs": "TerriaJS/terriajs#mobx", + "terriajs": "7.6.3", "terriajs-catalog-editor": "^0.2.0", "terriajs-cesium": "1.59.0", "terriajs-schema": "latest", + "ts-loader": "^5.3.3", + "typescript": "^3.5.1", "urijs": "^1.18.12", "url-loader": "^1.1.2", "webpack": "^4.29.5", @@ -99,4 +101,4 @@ "pre-commit": "pretty-quick --staged" } } -} \ No newline at end of file +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000000..d9da07a0ec --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "terriajs/tsconfig.json" +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index c049d320af..1b5a277af4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,6 +9,13 @@ dependencies: "@babel/highlight" "^7.0.0" +"@babel/code-frame@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + "@babel/core@^7.1.2", "@babel/core@^7.3.3": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.4.tgz#84055750b05fcd50f9915a826b44fa347a825250" @@ -29,7 +36,18 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.4.4": +"@babel/generator@^7.4.0", "@babel/generator@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" + integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== + dependencies: + "@babel/types" "^7.5.5" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/generator@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" integrity sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ== @@ -226,10 +244,10 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.4.tgz#5977129431b8fe33471730d255ce8654ae1250b6" integrity sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w== -"@babel/parser@^7.4.3", "@babel/parser@^7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.5.tgz#04af8d5d5a2b044a2a1bffacc1e5e6673544e872" - integrity sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew== +"@babel/parser@^7.4.3", "@babel/parser@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" + integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" @@ -673,21 +691,21 @@ lodash "^4.17.11" "@babel/traverse@^7.4.3": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.5.tgz#4e92d1728fd2f1897dafdd321efbff92156c3216" - integrity sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A== + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" + integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.4" + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.5.5" "@babel/helper-function-name" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.4.5" - "@babel/types" "^7.4.4" + "@babel/parser" "^7.5.5" + "@babel/types" "^7.5.5" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.11" + lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" integrity sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ== @@ -696,6 +714,15 @@ lodash "^4.17.11" to-fast-properties "^2.0.0" +"@babel/types@^7.4.0", "@babel/types@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" + integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@mapbox/point-geometry@^0.1.0", "@mapbox/point-geometry@~0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz#8a83f9335c7860effa2eeeca254332aa0aeed8f2" @@ -878,7 +905,12 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.0.tgz#d11813b9c0ff8aaca29f04cbc12817f4c7d656e5" integrity sha512-Jrb/x3HT4PTJp6a4avhmJCDEVrPdqLfl3e8GGMbpkGGdwAV5UGlIs4vVEfsHHfylZVOKZWpOqmqFH8CbfOZ6kg== -"@types/node@^8.0.24", "@types/node@^8.0.7": +"@types/node@^8.0.24": + version "8.10.51" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.51.tgz#80600857c0a47a8e8bafc2dae6daed6db58e3627" + integrity sha512-cArrlJp3Yv6IyFT/DYe+rlO8o3SIHraALbBW/+CcCYW/a9QucpLI+n2p4sRxAvl2O35TiecpX2heSZtJjvEO+Q== + +"@types/node@^8.0.7": version "8.10.48" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.48.tgz#e385073561643a9ba6199a1985ffc03530f90781" integrity sha512-c35YEBTkL4rzXY2ucpSKy+UYHjUBIIkuJbWYbsGIrKLEWU5dgJMmLkkIb3qeC3O3Tpb1ZQCwecscvJTDjDjkRw== @@ -1260,6 +1292,14 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +anymatch@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.0.3.tgz#2fb624fe0e84bccab00afee3d0006ed310f22f09" + integrity sha512-c6IvoeBECQlMVuYUjSwimnhmztImpErfxJzWZhIQinIvQWoGOnB0dLIgifbPHQt5heS6mNlaZG16f06H3C8t1g== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + append-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" @@ -1291,19 +1331,21 @@ archiver-utils@^1.3.0: normalize-path "^2.0.0" readable-stream "^2.0.0" -archiver@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-2.1.1.tgz#ff662b4a78201494a3ee544d3a33fe7496509ebc" - integrity sha1-/2YrSnggFJSj7lRNOjP+dJZQnrw= +archiver-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" + integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== dependencies: - archiver-utils "^1.3.0" - async "^2.0.0" - buffer-crc32 "^0.2.1" - glob "^7.0.0" - lodash "^4.8.0" + glob "^7.1.4" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" readable-stream "^2.0.0" - tar-stream "^1.5.0" - zip-stream "^1.2.0" archiver@^1.1.0: version "1.3.0" @@ -1320,6 +1362,19 @@ archiver@^1.1.0: walkdir "^0.0.11" zip-stream "^1.1.0" +archiver@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-3.0.3.tgz#7487be5172650619eb5e3a473032a348a3412cdc" + integrity sha512-d0W7NUyXoLklozHHfvWnHoHS3dvQk8eB22pv5tBwcu1jEO5eZY8W+gHytkAaJ0R8fU2TnNThrWYxjvFlKvRxpw== + dependencies: + archiver-utils "^2.1.0" + async "^2.6.3" + buffer-crc32 "^0.2.1" + glob "^7.1.4" + readable-stream "^3.4.0" + tar-stream "^2.1.0" + zip-stream "^2.1.0" + archy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" @@ -1570,13 +1625,6 @@ async-settle@^1.0.0: dependencies: async-done "^1.2.2" -async@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/async/-/async-2.0.1.tgz#b709cc0280a9c36f09f4536be823c838a9049e25" - integrity sha1-twnMAoCpw28J9FNr6CPIOKkEniU= - dependencies: - lodash "^4.8.0" - async@2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" @@ -1589,18 +1637,30 @@ async@^1.5.2: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.0.0, async@^2.1.2, async@^2.4.1, async@^2.6, async@^2.6.0, async@^2.6.1, async@^2.6.2, async@~2.6.1: +async@^2.0.0, async@^2.4.1, async@^2.6, async@^2.6.0, async@^2.6.1, async@~2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== dependencies: lodash "^4.17.11" +async@^2.1.2, async@^2.6.2, async@^2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + async@~0.2.10: version "0.2.10" resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E= +async@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/async/-/async-3.0.1.tgz#dfeb34657d1e63c94c0eee424297bf8a2c9a8182" + integrity sha512-ZswD8vwPtmBZzbn9xyi8XBQWXH3AvOQ43Za1KWYq7JeycrZuUYzx01KvHcVbXltjqH4y0MWrQ33008uLTqXuDw== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1858,6 +1918,11 @@ binary-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== +binary-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" + integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== + binary@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" @@ -1874,6 +1939,13 @@ bl@^1.0.0: readable-stream "^2.3.5" safe-buffer "^5.1.1" +bl@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-3.0.0.tgz#3611ec00579fd18561754360b21e9f784500ff88" + integrity sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A== + dependencies: + readable-stream "^3.0.1" + blessed@^0.1.81: version "0.1.81" resolved "https://registry.yarnpkg.com/blessed/-/blessed-0.1.81.tgz#f962d687ec2c369570ae71af843256e6d0ca1129" @@ -1891,16 +1963,16 @@ block-stream@*: dependencies: inherits "~2.0.0" -bluebird@^3.3.0, bluebird@^3.5.0, bluebird@^3.5.3, bluebird@~3.5.0: - version "3.5.4" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" - integrity sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw== - -bluebird@^3.5.4: +bluebird@^3.3.0, bluebird@^3.5.4: version "3.5.5" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== +bluebird@^3.5.0, bluebird@^3.5.3, bluebird@~3.5.0: + version "3.5.4" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" + integrity sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw== + bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" @@ -1984,11 +2056,23 @@ braces@^2.2.2, braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -2088,7 +2172,7 @@ buffer-alloc@^1.2.0: buffer-alloc-unsafe "^1.1.0" buffer-fill "^1.0.0" -buffer-crc32@^0.2.1: +buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= @@ -2279,7 +2363,14 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -catharsis@^0.8.10, catharsis@~0.8.9: +catharsis@^0.8.11: + version "0.8.11" + resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.11.tgz#d0eb3d2b82b7da7a3ce2efb1a7b00becc6643468" + integrity sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g== + dependencies: + lodash "^4.17.14" + +catharsis@~0.8.9: version "0.8.10" resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.10.tgz#364198c1fbf084ae17028ee33ec7db53ca942ee6" integrity sha512-l2OUaz/3PU3MZylspVFJvwHCVfWyvcduPq4lv3AzZ2pJzZCo7kNKFNyatwujD7XgvGkNAE/Jhhbh2uARNwNkfw== @@ -2323,7 +2414,7 @@ charm@~0.1.1: resolved "https://registry.yarnpkg.com/charm/-/charm-0.1.2.tgz#06c21eed1a1b06aeb67553cdc53e23274bac2296" integrity sha1-BsIe7RobBq62dVPNxT4jJ0usIpY= -chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.3, chokidar@^2.1.5: +chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.1.5: version "2.1.5" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.5.tgz#0ae8434d962281a5f56c72869e79cb6d9d86ad4d" integrity sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A== @@ -2361,6 +2452,21 @@ chokidar@^2.0.4: optionalDependencies: fsevents "^1.2.7" +chokidar@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.0.2.tgz#0d1cd6d04eb2df0327446188cd13736a3367d681" + integrity sha512-c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA== + dependencies: + anymatch "^3.0.1" + braces "^3.0.2" + glob-parent "^5.0.0" + is-binary-path "^2.1.0" + is-glob "^4.0.1" + normalize-path "^3.0.0" + readdirp "^3.1.1" + optionalDependencies: + fsevents "^2.0.6" + chownr@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" @@ -2659,9 +2765,9 @@ commondir@^1.0.1: integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= compare-versions@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.4.0.tgz#e0747df5c9cb7f054d6d3dc3e1dbc444f9e92b26" - integrity sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg== + version "3.5.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.5.0.tgz#85fc22a1ae9612ff730d77fb092295acd056d311" + integrity sha512-hX+4kt2Rcwu+x1U0SsEFCn1quURjEjPEGH/cPBlpME/IidGimAdwfMU+B+xDr7et/KTR7VH2+ZqWGerv4NGs2w== component-bind@1.0.0: version "1.0.0" @@ -2712,6 +2818,16 @@ compress-commons@^1.2.0: normalize-path "^2.0.0" readable-stream "^2.0.0" +compress-commons@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-2.0.0.tgz#c555107ef865eef0ba8a31fe56ec79f813ed3e65" + integrity sha512-gnETNngrfsAoLBENM8M0DoiCDJkHwz3OfIg4mBtqKDcRgE4oXNwHxHxgHvwKKlrcD7eZ7BVTy4l8t9xVF7q3FQ== + dependencies: + buffer-crc32 "^0.2.13" + crc32-stream "^2.0.0" + normalize-path "^3.0.0" + readable-stream "^2.3.6" + compressible@~2.0.16: version "2.0.17" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" @@ -2769,13 +2885,13 @@ connect-history-api-fallback@^1.6.0: integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== connect@^3.6.0: - version "3.6.6" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" - integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ= + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== dependencies: debug "2.6.9" - finalhandler "1.1.0" - parseurl "~1.3.2" + finalhandler "1.1.2" + parseurl "~1.3.3" utils-merge "1.0.1" console-browserify@^1.1.0: @@ -2895,11 +3011,16 @@ core-js@^1.0.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= -core-js@^2.2.0, core-js@^2.4.0: +core-js@^2.4.0: version "2.6.5" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" integrity sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A== +core-js@^3.1.3, core-js@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.1.4.tgz#3a2837fc48e582e1ae25907afcd6cf03b0cc7a07" + integrity sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ== + core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -3245,6 +3366,11 @@ d@1: dependencies: es5-ext "^0.10.9" +dargs@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-5.1.0.tgz#ec7ea50c78564cd36c9d5ec18f66329fade27829" + integrity sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk= + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -3265,9 +3391,9 @@ date-fns@^1.29.0: integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== date-format@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.0.0.tgz#7cf7b172f1ec564f0003b39ea302c5498fb98c8f" - integrity sha512-M6UqVvZVgFYqZL1SfHsRGIQSz3ZL+qgbsV5Lp1Vj61LZVYuEwcMXYay7DRDtYs2HQQBK5hQtQ0fD9aEJ89V0LA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" + integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== date-now@^0.1.4: version "0.1.4" @@ -3498,7 +3624,7 @@ di@^0.0.1: resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= -diff@^3.1.0: +diff@3.5.0, diff@^3.1.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== @@ -3737,7 +3863,7 @@ emojis-list@^2.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= -encodeurl@~1.0.1, encodeurl@~1.0.2: +encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= @@ -3749,7 +3875,7 @@ encoding@^0.1.11: dependencies: iconv-lite "~0.4.13" -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== @@ -3875,11 +4001,16 @@ es6-iterator@2.0.3, es6-iterator@^2.0.1, es6-iterator@~2.0.3: es5-ext "^0.10.35" es6-symbol "^3.1.1" -es6-promise@^4.0.3, es6-promise@^4.0.5: +es6-promise@^4.0.3: version "4.2.6" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" integrity sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q== +es6-promise@^4.0.5: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + es6-promisify@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" @@ -4169,6 +4300,19 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" @@ -4335,7 +4479,7 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fancy-log@^1.3.2: +fancy-log@^1.3.2, fancy-log@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== @@ -4474,18 +4618,12 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" -finalhandler@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" - integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" + to-regex-range "^5.0.1" finalhandler@1.1.1: version "1.1.1" @@ -4500,6 +4638,19 @@ finalhandler@1.1.1: statuses "~1.4.0" unpipe "~1.0.0" +finalhandler@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + find-cache-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" @@ -4711,7 +4862,7 @@ fs-extra@^0.30.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" -fs-extra@^7.0.0, fs-extra@^7.0.1: +fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== @@ -4763,6 +4914,11 @@ fsevents@^1.2.7: nan "^2.12.1" node-pre-gyp "^0.12.0" +fsevents@^2.0.6: + version "2.0.7" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz#382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a" + integrity sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ== + fstream@^1.0.0, fstream@^1.0.2: version "1.0.11" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" @@ -4909,6 +5065,13 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-parent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" + integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== + dependencies: + is-glob "^4.0.1" + glob-stream@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" @@ -4937,6 +5100,18 @@ glob-watcher@^5.0.3: just-debounce "^1.0.0" object.defaults "^1.1.0" +glob@7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@~7.1.1: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" @@ -4949,6 +5124,18 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, gl once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.4: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + 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" + global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -5018,11 +5205,21 @@ graceful-fs@^4.0.0, graceful-fs@^4.1.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== +graceful-fs@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b" + integrity sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg== + "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -5052,6 +5249,19 @@ gulp-cli@^2.2.0: v8flags "^3.0.1" yargs "^7.1.0" +gulp-mocha@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gulp-mocha/-/gulp-mocha-6.0.0.tgz#80f32bc705ce30747f355ddb8ccd96a1c73bef13" + integrity sha512-FfBldW5ttnDpKf4Sg6/BLOOKCCbr5mbixDGK1t02/8oSrTCwNhgN/mdszG3cuQuYNzuouUdw4EH/mlYtgUscPg== + dependencies: + dargs "^5.1.0" + execa "^0.10.0" + mocha "^5.2.0" + npm-run-path "^2.0.2" + plugin-error "^1.0.1" + supports-color "^5.4.0" + through2 "^2.0.3" + gulp@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.1.tgz#987a38a55a7d3677f6b49e291b06bc05809f33d9" @@ -5196,6 +5406,11 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= + he@1.2.x, he@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -5394,22 +5609,6 @@ husky@^2.2.0: run-node "^1.0.0" slash "^3.0.0" -husky@^2.4.1: - version "2.7.0" - resolved "https://registry.yarnpkg.com/husky/-/husky-2.7.0.tgz#c0a9a6a3b51146224e11bba0b46bba546e461d05" - integrity sha512-LIi8zzT6PyFpcYKdvWRCn/8X+6SuG2TgYYMrM6ckEYhlp44UcEduVymZGIZNLiwOUjrEud+78w/AsAiqJA/kRg== - dependencies: - cosmiconfig "^5.2.0" - execa "^1.0.0" - find-up "^3.0.0" - get-stdin "^7.0.0" - is-ci "^2.0.0" - pkg-dir "^4.1.0" - please-upgrade-node "^3.1.1" - read-pkg "^5.1.1" - run-node "^1.0.0" - slash "^3.0.0" - hyphenate-style-name@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz#097bb7fa0b8f1a9cf0bd5c734cf95899981a9b48" @@ -5690,6 +5889,13 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" +is-binary-path@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -5797,7 +6003,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0: +is-glob@^4.0.0, is-glob@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -5821,6 +6027,11 @@ is-number@^4.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + is-path-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.1.0.tgz#2e0c7e463ff5b7a0eb60852d851a6809347a124c" @@ -5972,7 +6183,7 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -istanbul-api@^2.1.1: +istanbul-api@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.6.tgz#d61702a9d1c66ad89d92e66d401e16b0bda4a35f" integrity sha512-x0Eicp6KsShG1k1rMgBAi/1GgY7kFGEBwQpw3PXGEmu+rBcBNhqU8g2DgY9mlepAsLPzrzrbqSgCGANnki4POA== @@ -6189,21 +6400,21 @@ jsdoc-to-markdown@^4.0.1: walk-back "^3.0.0" jsdoc@^3.5.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.6.2.tgz#ee289fc6ba9263b7e4eceb99921179fe1c31489a" - integrity sha512-S2vzg99C5+gb7FWlrK4TVdyzVPGGkdvpDkCEJH1JABi2PKzPeLu5/zZffcJUifgWUJqXWl41Hoc+MmuM2GukIg== + version "3.6.3" + resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.6.3.tgz#dccea97d0e62d63d306b8b3ed1527173b5e2190d" + integrity sha512-Yf1ZKA3r9nvtMWHO1kEuMZTlHOF8uoQ0vyo5eH7SQy5YeIiHM+B0DgKnn+X6y6KDYZcF7G2SPkKF+JORCXWE/A== dependencies: "@babel/parser" "^7.4.4" bluebird "^3.5.4" - catharsis "^0.8.10" + catharsis "^0.8.11" escape-string-regexp "^2.0.0" js2xmlparser "^4.0.0" klaw "^3.0.0" markdown-it "^8.4.2" markdown-it-anchor "^5.0.2" - marked "^0.6.2" + marked "^0.7.0" mkdirp "^0.5.1" - requizzle "^0.2.2" + requizzle "^0.2.3" strip-json-comments "^3.0.1" taffydb "2.6.2" underscore "~1.9.1" @@ -6353,11 +6564,11 @@ karma-chrome-launcher@^2.0.0: which "^1.2.1" karma-coverage-istanbul-reporter@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.5.tgz#ca5899d4905e44a5984dd4f963adfc1a74dce767" - integrity sha512-yPvAlKtY3y+rKKWbOo0CzBMVTvJEeMOgbMXuVv3yWvS8YtYKC98AU9vFF0mVBZ2RP1E9SgS90+PT6Kf14P3S4w== + version "2.0.6" + resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.6.tgz#7b6e9c88781447bb87aa6ac24bf74b93e558adc3" + integrity sha512-WFh77RI8bMIKdOvI/1/IBmgnM+Q7NOLhnwG91QJrM8lW+CIXCjTzhhUsT/svLvAkLmR10uWY4RyYbHMLkTglvg== dependencies: - istanbul-api "^2.1.1" + istanbul-api "^2.1.6" minimatch "^3.0.4" karma-detect-browsers@^2.0.2: @@ -6368,10 +6579,11 @@ karma-detect-browsers@^2.0.2: which "^1.2.4" karma-electron@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/karma-electron/-/karma-electron-6.0.0.tgz#c824dda46f49f7fc744b6b9b60e6413979947362" - integrity sha1-yCTdpG9J9/x0S2ubYOZBOXmUc2I= + version "6.3.0" + resolved "https://registry.yarnpkg.com/karma-electron/-/karma-electron-6.3.0.tgz#e16ed122245d461e53cbd8dbc1899121b06859a8" + integrity sha512-Go9NVZTUPF7V0LyitC8w2B4LiI2aojVbPF8myqAE14/QlikCtlqULig9WXIlNTSVOkf5Du4fSLP3D6l/2XvzQw== dependencies: + async "~3.0.1" combine-source-map "~0.8.0" commander "~2.9.0" convert-source-map "~1.2.0" @@ -6424,17 +6636,17 @@ karma-spec-reporter@^0.0.32: colors "^1.1.2" karma@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/karma/-/karma-4.1.0.tgz#d07387c9743a575b40faf73e8a3eb5421c2193e1" - integrity sha512-xckiDqyNi512U4dXGOOSyLKPwek6X/vUizSy2f3geYevbLj+UIdvNwbn7IwfUIL2g1GXEPWt/87qFD1fBbl/Uw== + version "4.2.0" + resolved "https://registry.yarnpkg.com/karma/-/karma-4.2.0.tgz#27e88b310cde090d016980ff5444e3a239196fca" + integrity sha512-fmCuxN1rwJxTdZfOXK5LjlmS4Ana/OvzNMpkyLL/TLE8hmgSkpVpMYQ7RTVa8TNKRVQDZNl5W1oF5cfKfgIMlA== dependencies: bluebird "^3.3.0" body-parser "^1.16.1" - braces "^2.3.2" - chokidar "^2.0.3" + braces "^3.0.2" + chokidar "^3.0.0" colors "^1.1.0" connect "^3.6.0" - core-js "^2.2.0" + core-js "^3.1.3" di "^0.0.1" dom-serialize "^2.2.0" flatted "^2.0.0" @@ -6666,11 +6878,26 @@ lodash.camelcase@^4.3.0: resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= + lodash.findindex@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.findindex/-/lodash.findindex-4.6.0.tgz#a3245dee61fb9b6e0624b535125624bb69c11106" integrity sha1-oyRd7mH7m24GJLU1ElYku2nBEQY= +lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + lodash.foreach@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" @@ -6691,6 +6918,11 @@ lodash.isarray@^3.0.0: resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + lodash.keys@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" @@ -6730,26 +6962,36 @@ lodash.tail@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" integrity sha1-0jM6NtnncXyK0vfKyv7HwytERmQ= -lodash@4.17.11, lodash@^4.0.0, lodash@^4.16.6, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.6.1, lodash@^4.8.0, lodash@~4.17.10: +lodash.union@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= + +lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.8.0, lodash@~4.17.10: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== +lodash@^4.16.6, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.6.1: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + log-driver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== log4js@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-4.1.0.tgz#57983c6a443546a8c8607e9cb045d2a117c27644" - integrity sha512-eDa+zZPeVEeK6QGJAePyXM6pg4P3n3TO5rX9iZMVY48JshsTyLJZLIL5HipI1kQ2qLsSyOpUqNND/C5H4WhhiA== + version "4.5.1" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz#e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5" + integrity sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw== dependencies: date-format "^2.0.0" debug "^4.1.1" flatted "^2.0.0" - rfdc "^1.1.2" - streamroller "^1.0.4" + rfdc "^1.1.4" + streamroller "^1.0.6" loglevel@^1.6.1: version "1.6.1" @@ -6876,10 +7118,10 @@ marked@^0.3.16, marked@~0.3.6: resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" integrity sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg== -marked@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.6.2.tgz#c574be8b545a8b48641456ca1dbe0e37b6dccc1a" - integrity sha512-LqxwVH3P/rqKX4EKGz7+c2G9r98WeM/SW34ybhgNGhUQNKtf1GmmSkJ6cDGJ/t6tiyae49qRkpyTw2B9HOrgUA== +marked@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.7.0.tgz#b64201f051d271b1edc10a04d1ae9b74bb8e5c0e" + integrity sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg== matchdep@^2.0.0: version "2.0.0" @@ -7076,7 +7318,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: +minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -7197,6 +7439,23 @@ mobx@^4.11.0: resolved "https://registry.yarnpkg.com/mobx/-/mobx-4.11.0.tgz#c3bfcab96623d1f2f2eb4d1f01199c225f62361e" integrity sha512-S73IMAAE7gR5Lyy1xmuoWC/AXddeeH2Ey1HMv/DAKXBtVwOMNYWYnRa4aa6g6rsD/OwIItQcDGKUNM7Xjj8H0Q== +mocha@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" + integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ== + dependencies: + browser-stdout "1.3.1" + commander "2.15.1" + debug "3.1.0" + diff "3.5.0" + escape-string-regexp "1.0.5" + glob "7.1.2" + growl "1.10.5" + he "1.1.1" + minimatch "3.0.4" + mkdirp "0.5.1" + supports-color "5.4.0" + module-details-from-path@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" @@ -7554,7 +7813,7 @@ npm-packlist@^1.1.6: ignore-walk "^3.0.1" npm-bundled "^1.0.1" -npm-run-path@^2.0.0: +npm-run-path@^2.0.0, npm-run-path@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= @@ -8044,7 +8303,7 @@ parseuri@0.0.5: dependencies: better-assert "~1.0.0" -parseurl@~1.3.2: +parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== @@ -8162,6 +8421,11 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +picomatch@^2.0.4: + version "2.0.7" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" + integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== + pidusage@^2.0.14: version "2.0.17" resolved "https://registry.yarnpkg.com/pidusage/-/pidusage-2.0.17.tgz#6b4a2b4a09026f0e9828f7e5627837e4c0672581" @@ -8670,12 +8934,7 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -q@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" - integrity sha1-VXBbzZPF82c1MMLCy8DCs63cKG4= - -q@^1.1.2, q@^1.5.0, q@~1.5.0: +q@^1.1.2, q@^1.5.0, q@^1.5.1, q@~1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= @@ -8745,11 +9004,16 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: +range-parser@^1.0.3, range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= +range-parser@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + range_check@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/range_check/-/range_check-1.4.0.tgz#cd87c7ac62c40ba9df69b8703c604f60c3748635" @@ -9029,6 +9293,15 @@ readable-stream@3, readable-stream@^3.0.6, readable-stream@^3.1.1: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^3.0.1, readable-stream@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@~2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" @@ -9050,6 +9323,13 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +readdirp@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.1.1.tgz#b158123ac343c8b0f31d65680269cc0fc1025db1" + integrity sha512-XXdSXZrQuvqoETj50+JAitxz1UPdt5dupjT6T5nVB+WvjMv2XKYj+s7hPeAVCXvmJrL36O4YYyWlIC3an2ePiQ== + dependencies: + picomatch "^2.0.4" + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -9117,9 +9397,9 @@ regenerator-runtime@^0.11.0: integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== regenerator-runtime@^0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" - integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA== + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== regenerator-transform@^0.13.4: version "0.13.4" @@ -9320,7 +9600,14 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -requizzle@^0.2.2, requizzle@~0.2.1: +requizzle@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.3.tgz#4675c90aacafb2c036bd39ba2daa4a1cb777fded" + integrity sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ== + dependencies: + lodash "^4.17.14" + +requizzle@~0.2.1: version "0.2.2" resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.2.tgz#df991c0cffbbbdde721504c1455f68f53f7c7bd1" integrity sha512-oJ6y7JcUJkblRGhMByGNcszeLgU0qDxNKFCiUZR1XyzHyVsev+Mxb1tyygxLd1ORsKee1SA5BInFdUwY64GE/A== @@ -9432,10 +9719,10 @@ rework@1.0.1: convert-source-map "^0.3.3" css "^2.0.0" -rfdc@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.2.tgz#e6e72d74f5dc39de8f538f65e00c36c18018e349" - integrity sha512-92ktAgvZhBzYTIK0Mja9uen5q5J3NRVMoDkJL2VMwq6SXjVCgqvQeVP2XAaUY6HT+XpQYeLSjb3UoitBryKmdA== +rfdc@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz#ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2" + integrity sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug== rimraf@2, rimraf@2.6.3, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: version "2.6.3" @@ -9535,9 +9822,9 @@ sass-loader@^7.1.0: semver "^5.5.0" sauce-connect-launcher@^1.2.2: - version "1.2.6" - resolved "https://registry.yarnpkg.com/sauce-connect-launcher/-/sauce-connect-launcher-1.2.6.tgz#8b3a7be4f015177713a56695ddf042d9d5860d57" - integrity sha512-yBTYfzI6AWRwoXJoIqmVgz+eCpWX6CsJ4Ap8fowjsGlN+27OKbnQxv6POd4Rzh57BH9WeA9K8orIzNxO8mMBQA== + version "1.2.7" + resolved "https://registry.yarnpkg.com/sauce-connect-launcher/-/sauce-connect-launcher-1.2.7.tgz#c7f8b3d4eb354d07a9922b4cd67356f527192556" + integrity sha512-v07+QhFrxgz3seMFuRSonu3gW1s6DbcLQlFhjsRrmKUauzPbbudHdnn91WYgEwhoZVdPNzeZpAEJwcQyd9xnTA== dependencies: adm-zip "~0.4.3" async "^2.1.2" @@ -10158,16 +10445,11 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2": +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= - statuses@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" @@ -10241,16 +10523,16 @@ stream-via@^1.0.4: resolved "https://registry.yarnpkg.com/stream-via/-/stream-via-1.0.4.tgz#8dccbb0ac909328eb8bc8e2a4bd3934afdaf606c" integrity sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ== -streamroller@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.4.tgz#d485c7624796d5e2eb34190c79afcbf006afb5e6" - integrity sha512-Wc2Gm5ygjSX8ZpW9J7Y9FwiSzTlKSvcl0FTTMd3rn7RoxDXpBW+xD9TY5sWL2n0UR61COB0LG1BQvN6nTUQbLQ== +streamroller@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz#8167d8496ed9f19f05ee4b158d9611321b8cacd9" + integrity sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== dependencies: - async "^2.6.1" + async "^2.6.2" date-format "^2.0.0" - debug "^3.1.0" - fs-extra "^7.0.0" - lodash "^4.17.10" + debug "^3.2.6" + fs-extra "^7.0.1" + lodash "^4.17.14" strict-uri-encode@^1.0.0: version "1.1.0" @@ -10400,6 +10682,13 @@ sumchecker@^1.2.0: debug "^2.2.0" es6-promise "^4.0.5" +supports-color@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w== + dependencies: + has-flag "^3.0.0" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -10412,7 +10701,7 @@ supports-color@^3.2.3: dependencies: has-flag "^1.0.0" -supports-color@^5.3.0, supports-color@^5.5.0: +supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -10521,6 +10810,17 @@ tar-stream@^1.5.0: to-buffer "^1.1.1" xtend "^4.0.0" +tar-stream@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.0.tgz#d1aaa3661f05b38b5acc9b7020efdca5179a2cc3" + integrity sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw== + dependencies: + bl "^3.0.0" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + tar@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" @@ -10560,10 +10860,10 @@ terriajs-catalog-editor@^0.2.0: resolved "https://registry.yarnpkg.com/terriajs-catalog-editor/-/terriajs-catalog-editor-0.2.0.tgz#d9c6679e53c4d92e87a531af896c6148888ed8e4" integrity sha1-2cZnnlPE2S6HpTGviWxhSIiO2OQ= -terriajs-cesium@1.58.1: - version "1.58.1" - resolved "https://registry.yarnpkg.com/terriajs-cesium/-/terriajs-cesium-1.58.1.tgz#ab3d121f2406fcbf0804fcfdc9c967661a7cb0fe" - integrity sha512-aq41DFz9m7m3gKUb3H+T2pmC3FU45GkwbH2meiTKwO9aQh8nT2DXDfeSGDEs0ORqq4+A5SV3G/qAqlU/cgq02A== +terriajs-cesium@1.59.0: + version "1.59.0" + resolved "https://registry.yarnpkg.com/terriajs-cesium/-/terriajs-cesium-1.59.0.tgz#2b84f399dd7d83abc43446293b694e8b24d9916b" + integrity sha512-AKCb1EDlnMdJWvXugiNVGlv0r/V+mVl83NwN5AsQdnVvbxfahKZ/dQ+NsnoWFyPi2tZe3ytcgToBtr4ZvHPQ6g== dependencies: deamdify "^0.1.1" dompurify "^1.0.2" @@ -10795,6 +11095,13 @@ to-regex-range@^2.1.0: is-number "^3.0.0" repeat-string "^1.6.1" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" @@ -10950,9 +11257,9 @@ typedarray@^0.0.6, typedarray@~0.0.5: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.2.tgz#a09e1dc69bc9551cadf17dba10ee42cf55e5d56c" - integrity sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA== + version "3.5.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" + integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== typical@^2.4.2, typical@^2.6.0, typical@^2.6.1: version "2.6.1" @@ -11214,11 +11521,11 @@ util@0.10.3: inherits "2.0.1" "util@>=0.10.3 <1": - version "0.12.0" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.0.tgz#bb5e3d29ba2703c7add0ad337003be3ca477798a" - integrity sha512-pPSOFl7VLhZ7LO/SFABPraZEEurkJUWSMn3MuA/r3WQZc+Z1fqou2JqLSOZbCLl73EUIxuUVX8X4jkX2vfJeAA== + version "0.12.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.1.tgz#f908e7b633e7396c764e694dd14e716256ce8ade" + integrity sha512-MREAtYOp+GTt9/+kwf00IYoHZyjM8VU4aVrkzUlejyqaIjd2GztVl5V9hGXKlvBKE3gENn/FMfHE5v6hElXGcQ== dependencies: - inherits "2.0.3" + inherits "^2.0.3" is-arguments "^1.0.4" is-generator-function "^1.0.7" object.entries "^1.1.0" @@ -11276,7 +11583,7 @@ value-or-function@^3.0.0: resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= -vargs@0.1.0: +vargs@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/vargs/-/vargs-0.1.0.tgz#6b6184da6520cc3204ce1b407cac26d92609ebff" integrity sha1-a2GE2mUgzDIEzhtAfKwm2SYJ6/8= @@ -11408,17 +11715,19 @@ wbuf@^1.1.0, wbuf@^1.7.3: minimalistic-assert "^1.0.0" wd@^1.4.0: - version "1.11.2" - resolved "https://registry.yarnpkg.com/wd/-/wd-1.11.2.tgz#bca2a47ce9a866710e2db8c802385d06bc964444" - integrity sha512-zXJY9ARjQQYN2LatLTRcW39EYzIVqKNhGpp4XWJmRgHBioG4FoenIOsoVbaO8lnFGgv31V99kAy5hB4eWGIwzA== + version "1.11.3" + resolved "https://registry.yarnpkg.com/wd/-/wd-1.11.3.tgz#db228863e15648e0c1466df45b263fc30470dbc4" + integrity sha512-doB7E6DDhis6sSCfWps9Uz0UBBPAySv1x96KH6klfHp8y89HvhqEq3c0O8LPZhG37egJULN0m7+M9t16xUTG0g== dependencies: - archiver "2.1.1" - async "2.0.1" - lodash "4.17.11" + archiver "^3.0.0" + async "^2.0.0" + fancy-log "^1.3.3" + gulp-mocha "^6.0.0" + lodash "^4.0.0" mkdirp "^0.5.1" - q "1.4.1" + q "^1.5.1" request "2.88.0" - vargs "0.1.0" + vargs "^0.1.0" webpack-cli@^3.2.2: version "3.3.2" @@ -11888,7 +12197,7 @@ yn@^2.0.0: resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo= -zip-stream@^1.1.0, zip-stream@^1.2.0: +zip-stream@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-1.2.0.tgz#a8bc45f4c1b49699c6b90198baacaacdbcd4ba04" integrity sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ= @@ -11897,3 +12206,12 @@ zip-stream@^1.1.0, zip-stream@^1.2.0: compress-commons "^1.2.0" lodash "^4.8.0" readable-stream "^2.0.0" + +zip-stream@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-2.1.0.tgz#4f94246b64341536b86318bd556654278812b726" + integrity sha512-F/xoLqlQShgvn1BzHQCNiYIoo2R93GQIMH+tA6JC3ckMDkme4bnhEEXSferZcG5ea/6bZNx3GqSUHqT8TUO6uQ== + dependencies: + archiver-utils "^2.1.0" + compress-commons "^2.0.0" + readable-stream "^3.4.0" From fc20432450c614e106684ea2d261badcbe8bb9d7 Mon Sep 17 00:00:00 2001 From: Emma Krantz Date: Wed, 24 Jul 2019 11:52:27 +1000 Subject: [PATCH 052/246] whoops, wrong terriajs version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2984b3617c..7520a5600f 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "semver": "^5.0.0", "style-loader": "^0.23.1", "svg-sprite-loader": "4.1.3", - "terriajs": "7.6.3", + "terriajs": "TerriaJS/terriajs#mobx", "terriajs-catalog-editor": "^0.2.0", "terriajs-cesium": "1.59.0", "terriajs-schema": "latest", From 71179adbf271488173edcc4592fbb16c2c0bc50c Mon Sep 17 00:00:00 2001 From: Emma Krantz Date: Wed, 24 Jul 2019 15:11:24 +1000 Subject: [PATCH 053/246] more node memory for ci build --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f995813f38..121b6ac87d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,4 +4,4 @@ node_js: script: - gulp lint release env: -- NODE_OPTIONS=--max_old_space_size=2048 +- NODE_OPTIONS=--max_old_space_size=4096 From be56cbe5187f9c1b8d1f7e459c6161f1133dc1fd Mon Sep 17 00:00:00 2001 From: Stephen Davies Date: Tue, 6 Aug 2019 14:55:39 +1000 Subject: [PATCH 054/246] Add CesiumTerrainCatalogItem --- index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.js b/index.js index 932c295b90..0afcf23404 100644 --- a/index.js +++ b/index.js @@ -34,6 +34,7 @@ import ArcGisMapServerCatalogItem from "terriajs/lib/Models/ArcGisMapServerCatal import Cesium3DTilesCatalogItem from "terriajs/lib/Models/Cesium3DTilesCatalogItem"; import createGlobalBaseMapOptions from 'terriajs/lib/ViewModels/createGlobalBaseMapOptions'; import GtfsCatalogItem from 'terriajs/lib/Models/GtfsCatalogItem'; +import CesiumTerrainProviderCatalogItem from 'terriajs/lib/Models/CesiumTerrainCatalogItem'; // Register all types of catalog members in the core TerriaJS. If you only want to register a subset of them @@ -66,6 +67,7 @@ CatalogMemberFactory.register(CzmlCatalogItem.type, CzmlCatalogItem); CatalogMemberFactory.register(ArcGisMapServerCatalogItem.type, ArcGisMapServerCatalogItem); CatalogMemberFactory.register(Cesium3DTilesCatalogItem.type, Cesium3DTilesCatalogItem); CatalogMemberFactory.register(GtfsCatalogItem.type, GtfsCatalogItem); +CatalogMemberFactory.register(CesiumTerrainProviderCatalogItem.type, CesiumTerrainProviderCatalogItem); if (process.env.NODE_ENV === "development") { window.viewState = viewState; From fb1dd76465521cb34dc2caed3718fa5968efd4d3 Mon Sep 17 00:00:00 2001 From: Stephen Davies Date: Tue, 6 Aug 2019 15:12:27 +1000 Subject: [PATCH 055/246] Refresh package-lock.json --- package-lock.json | 388 +++++++++++++++++++++++++++++----------------- 1 file changed, 249 insertions(+), 139 deletions(-) diff --git a/package-lock.json b/package-lock.json index 725c936dc0..dd9cc8e28f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1147,18 +1147,18 @@ "dev": true }, "@types/leaflet": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.4.4.tgz", - "integrity": "sha512-CROxHvsRDFyR1OQKZv/WJsCVFv8Wj6wFF/FOI/yiGwX7GMivyvF8Ks5AT3/JYk269pGiE43wP9JOgcr7EK2eUw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.5.0.tgz", + "integrity": "sha512-il6N/CP31AjvhYkWcQg9RAo/irfA88Qgs4r2AY8mVOU+btF4d60d/nI4M2rFuV+HyByQCItFfwj0yoPRMoMurQ==", "dev": true, "requires": { "@types/geojson": "*" } }, "@types/lodash": { - "version": "4.14.135", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.135.tgz", - "integrity": "sha512-Ed+tSZ9qM1oYpi5kzdsBuOzcAIn1wDW+e8TFJ50IMJMlSopGdJgKAbhHzN6h1E1OfjlGOr2JepzEWtg9NIfoNg==", + "version": "4.14.136", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.136.tgz", + "integrity": "sha512-0GJhzBdvsW2RUccNHOBkabI8HZVdOXmXbXhuKlDEd5Vv12P7oAVGfomGp3Ne21o5D/qu1WmthlNKFaoZJJeErA==", "dev": true }, "@types/lodash-es": { @@ -1209,9 +1209,9 @@ "dev": true }, "@types/react": { - "version": "16.8.23", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.23.tgz", - "integrity": "sha512-abkEOIeljniUN9qB5onp++g0EY38h7atnDHxwKUFz1r3VH1+yG1OKi2sNPTyObL40goBmfKFpdii2lEzwLX1cA==", + "version": "16.8.24", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.24.tgz", + "integrity": "sha512-VpFHUoD37YNY2+lr/+c7qL/tZsIU/bKuskUF3tmGUArbxIcQdb5j3zvo4cuuzu2A6UaVmVn7sJ4PgWYNFEBGzg==", "dev": true, "requires": { "@types/prop-types": "*", @@ -1219,9 +1219,9 @@ } }, "@types/urijs": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/urijs/-/urijs-1.19.2.tgz", - "integrity": "sha512-8Q7e4XLsVuqWkvl5Q9osdxi4R2nciXOu2sNWaroAY1rL58PEiSFU23q/elrAAUQdsHMaHk4kwsiOZh1rZ+7APA==", + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/@types/urijs/-/urijs-1.19.3.tgz", + "integrity": "sha512-L5tP2dEIV+OMVEVRhf8PCFMNMyO5ZBodrXpEqnGczky60lcv8l5Kl9Yi4J1yxhSVfHUe+Pr2nXJfDM+rUYNs3w==", "dev": true }, "@webassemblyjs/ast": { @@ -3505,9 +3505,9 @@ } }, "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.1.4.tgz", + "integrity": "sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ==", "dev": true }, "core-js-compat": { @@ -3746,9 +3746,9 @@ } }, "css-animation": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/css-animation/-/css-animation-1.5.0.tgz", - "integrity": "sha512-hWYoWiOZ7Vr20etzLh3kpWgtC454tW5vn4I6rLANDgpzNSkO7UfOqyCEeaoBSG9CYWQpRkFWTWbWW8o3uZrNLw==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/css-animation/-/css-animation-1.6.1.tgz", + "integrity": "sha512-/48+/BaEaHRY6kNQ2OIPzKf9A6g8WjZYjhiNDNuIVbsm5tXCGIAsHDjB4Xu1C4vXJtUWZo26O68OQkDpNBaPog==", "dev": true, "requires": { "babel-runtime": "6.x", @@ -3789,6 +3789,16 @@ "integrity": "sha1-aiw3NEkoYYYxxUvTPO3TAdoYvqA=", "dev": true }, + "css-modules-typescript-loader": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/css-modules-typescript-loader/-/css-modules-typescript-loader-2.0.4.tgz", + "integrity": "sha512-hjIjlmJ0D8MRTGoRkIdWTLbKrnTLgSKsL9QLOTsVDq9UbRWLwfEBmeNgsM/KVkVB/DTYSbmlvw7OubaeOBlnqQ==", + "dev": true, + "requires": { + "line-diff": "^2.0.1", + "loader-utils": "^1.2.3" + } + }, "css-select": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", @@ -3821,9 +3831,9 @@ "optional": true }, "csstype": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.5.tgz", - "integrity": "sha512-JsTaiksRsel5n7XwqPAfB0l3TFKdpjW/kgAELf9vrb5adGA7UCPLajKK5s3nFrcFm3Rkyp/Qkgl73ENc1UY3cA==", + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.6.tgz", + "integrity": "sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg==", "dev": true }, "culvert": { @@ -3874,9 +3884,9 @@ "dev": true }, "d3-color": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.2.8.tgz", - "integrity": "sha512-yeANXzP37PHk0DbSTMNPhnJD+Nn4G//O5E825bR6fAfHH43hobSBpgB9G9oWVl9+XgUaQ4yCnsX1H+l8DoaL9A==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.3.0.tgz", + "integrity": "sha512-NHODMBlj59xPAwl2BDiO2Mog6V+PrGRtBfWKqKRrs9MCqlSkIEb0Z/SfY7jW29ReHTDC/j+vwXhnZcXI3+3fbg==", "dev": true }, "d3-dispatch": { @@ -3907,9 +3917,9 @@ } }, "d3-path": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.7.tgz", - "integrity": "sha512-q0cW1RpvA5c5ma2rch62mX8AYaiLX0+bdaSM2wxSU9tXjU4DNvkx9qiUvjkuWCj3p22UO/hlPivujqMiR9PDzA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.8.tgz", + "integrity": "sha512-J6EfUNwcMQ+aM5YPOB8ZbgAZu6wc82f/0WFxrxwV6Ll8wBwLaHLKCqQ5Imub02JriCVVdPjgI+6P3a4EWJCxAg==", "dev": true }, "d3-scale": { @@ -4353,9 +4363,9 @@ } }, "dom-align": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.9.0.tgz", - "integrity": "sha512-HvPfXISxoU7dKrbqS4vIFa1hx88wD7VdKaZ7sHWeow8y76tuzsxXkiPGbeilemLXrTd9cWbPqR4MOl4y3dkcXA==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.10.1.tgz", + "integrity": "sha512-qztehcEqIwxjz0bEn2CuF6zgSGmeorTrAuWyYkhatGpOOAO93Blbt4UjV9YZSM4hPS3ZkFFC/qU6Kb9TD7JiwQ==", "dev": true }, "dom-converter": { @@ -4399,9 +4409,9 @@ } }, "dompurify": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-1.0.10.tgz", - "integrity": "sha512-huhl3DSWX5LaA7jDtnj3XQdJgWW1wYouNW7N0drGzQa4vEUSVWyeFN+Atx6HP4r5cang6oQytMom6I4yhGJj5g==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-1.0.11.tgz", + "integrity": "sha512-XywCTXZtc/qCX3iprD1pIklRVk/uhl8BKpkTxr+ZyMVUzSUg7wkQXRBp/euJ5J5moa1QvfpvaPQVP71z1O59dQ==", "dev": true }, "domready": { @@ -5209,6 +5219,14 @@ "promise": "^7.1.1", "setimmediate": "^1.0.5", "ua-parser-js": "^0.7.18" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "dev": true + } } }, "fclone": { @@ -5647,22 +5665,26 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "optional": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "optional": true }, "aproba": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "optional": true }, "are-we-there-yet": { "version": "1.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "optional": true, "requires": { "delegates": "^1.0.0", @@ -5671,12 +5693,14 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "optional": true }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": false, + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "optional": true, "requires": { "balanced-match": "^1.0.0", @@ -5685,32 +5709,38 @@ }, "chownr": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "optional": true }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "optional": true }, "debug": { "version": "4.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "optional": true, "requires": { "ms": "^2.1.1" @@ -5718,22 +5748,26 @@ }, "deep-extend": { "version": "0.6.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "optional": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "optional": true }, "detect-libc": { "version": "1.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "optional": true }, "fs-minipass": { "version": "1.2.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "optional": true, "requires": { "minipass": "^2.2.1" @@ -5741,12 +5775,14 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "optional": true }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": false, + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "optional": true, "requires": { "aproba": "^1.0.3", @@ -5761,7 +5797,8 @@ }, "glob": { "version": "7.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "optional": true, "requires": { "fs.realpath": "^1.0.0", @@ -5774,12 +5811,14 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "optional": true }, "iconv-lite": { "version": "0.4.24", - "bundled": true, + "resolved": false, + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -5787,7 +5826,8 @@ }, "ignore-walk": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "optional": true, "requires": { "minimatch": "^3.0.4" @@ -5795,7 +5835,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "optional": true, "requires": { "once": "^1.3.0", @@ -5804,17 +5845,20 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "optional": true }, "ini": { "version": "1.3.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "optional": true, "requires": { "number-is-nan": "^1.0.0" @@ -5822,12 +5866,14 @@ }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "optional": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "optional": true, "requires": { "brace-expansion": "^1.1.7" @@ -5835,12 +5881,14 @@ }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": false, + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "optional": true }, "minipass": { "version": "2.3.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", "optional": true, "requires": { "safe-buffer": "^5.1.2", @@ -5849,7 +5897,8 @@ }, "minizlib": { "version": "1.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", "optional": true, "requires": { "minipass": "^2.2.1" @@ -5857,7 +5906,8 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "optional": true, "requires": { "minimist": "0.0.8" @@ -5865,12 +5915,14 @@ }, "ms": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "optional": true }, "needle": { "version": "2.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==", "optional": true, "requires": { "debug": "^4.1.0", @@ -5880,7 +5932,8 @@ }, "node-pre-gyp": { "version": "0.12.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==", "optional": true, "requires": { "detect-libc": "^1.0.2", @@ -5897,7 +5950,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "optional": true, "requires": { "abbrev": "1", @@ -5906,12 +5960,14 @@ }, "npm-bundled": { "version": "1.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", "optional": true }, "npm-packlist": { "version": "1.4.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==", "optional": true, "requires": { "ignore-walk": "^3.0.1", @@ -5920,7 +5976,8 @@ }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "optional": true, "requires": { "are-we-there-yet": "~1.1.2", @@ -5931,17 +5988,20 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "optional": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "optional": true, "requires": { "wrappy": "1" @@ -5949,17 +6009,20 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "optional": true }, "osenv": { "version": "0.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "optional": true, "requires": { "os-homedir": "^1.0.0", @@ -5968,17 +6031,20 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "optional": true }, "process-nextick-args": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "optional": true }, "rc": { "version": "1.2.8", - "bundled": true, + "resolved": false, + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "optional": true, "requires": { "deep-extend": "^0.6.0", @@ -5989,14 +6055,16 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "optional": true } } }, "readable-stream": { "version": "2.3.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "optional": true, "requires": { "core-util-is": "~1.0.0", @@ -6010,7 +6078,8 @@ }, "rimraf": { "version": "2.6.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "optional": true, "requires": { "glob": "^7.1.3" @@ -6018,37 +6087,44 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "optional": true }, "safer-buffer": { "version": "2.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "optional": true }, "sax": { "version": "1.2.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "optional": true }, "semver": { "version": "5.7.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "optional": true }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "optional": true, "requires": { "code-point-at": "^1.0.0", @@ -6058,7 +6134,8 @@ }, "string_decoder": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "optional": true, "requires": { "safe-buffer": "~5.1.0" @@ -6066,7 +6143,8 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "optional": true, "requires": { "ansi-regex": "^2.0.0" @@ -6074,12 +6152,14 @@ }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "optional": true }, "tar": { "version": "4.4.8", - "bundled": true, + "resolved": false, + "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "optional": true, "requires": { "chownr": "^1.1.1", @@ -6093,12 +6173,14 @@ }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "optional": true }, "wide-align": { "version": "1.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "optional": true, "requires": { "string-width": "^1.0.2 || 2" @@ -6106,12 +6188,14 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "optional": true }, "yallist": { "version": "3.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", "optional": true } } @@ -7198,9 +7282,9 @@ } }, "husky": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-2.7.0.tgz", - "integrity": "sha512-LIi8zzT6PyFpcYKdvWRCn/8X+6SuG2TgYYMrM6ckEYhlp44UcEduVymZGIZNLiwOUjrEud+78w/AsAiqJA/kRg==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/husky/-/husky-2.4.1.tgz", + "integrity": "sha512-ZRwMWHr7QruR22dQ5l3rEGXQ7rAQYsJYqaeCd+NyOsIFczAtqaApZQP3P4HwLZjCtFbm3SUNYoKuoBXX3AYYfw==", "dev": true, "requires": { "cosmiconfig": "^5.2.0", @@ -8080,6 +8164,11 @@ "graceful-fs": "^4.1.6" } }, + "jsonschema": { + "version": "github:terriajs/jsonschema#55cedb27a265bbae2b366a3824863c586c5d34cf", + "from": "github:terriajs/jsonschema", + "dev": true + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -8201,6 +8290,12 @@ "integrity": "sha512-ekM9KAeG99tYisNBg0IzEywAlp0hYI5XRipsqRXyRTeuU8jcuntilpp+eFf5gaE0xubc9RuSNIVtByEKwqFV0w==", "dev": true }, + "levdist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/levdist/-/levdist-1.0.0.tgz", + "integrity": "sha1-kdejBElk8szEIaBHfKyCf+dcVxg=", + "dev": true + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -8226,10 +8321,19 @@ "resolve": "^1.1.7" } }, + "line-diff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/line-diff/-/line-diff-2.0.1.tgz", + "integrity": "sha512-l+tt/aYyO+uyVyk5mzLgvoNYOkGR2iiFw5w2rWfFerfM7va0pje7n8LWdGk7Gl+Fkzw/bPZ0X9bvCBuTVLv8RA==", + "dev": true, + "requires": { + "levdist": "^1.0.0" + } + }, "linkify-it": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz", - "integrity": "sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", "dev": true, "requires": { "uc.micro": "^1.0.1" @@ -8305,9 +8409,9 @@ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, "lodash-es": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.11.tgz", - "integrity": "sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz", + "integrity": "sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ==", "dev": true }, "lodash._getnative": { @@ -8854,9 +8958,9 @@ "integrity": "sha1-dVSm+Nhxg0zJe1RisSLEwSTW3pE=" }, "mobx": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-4.12.0.tgz", - "integrity": "sha512-ydTbIbe4fjIS+EVBvtgI4K/KHLKZqdO7YVXo7530uLO/Y7l8lsxq0eD0pZkZvdLlC071flMYXS+By8+MwOPF0w==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-4.13.0.tgz", + "integrity": "sha512-+hJTBIBRz4sWKpBTj2t2YbjJVlFJIGYiVoHnNUl03krsiFzXGNtqLjFvTPE1+fnN6Mq6LGfvgRKiGsBtZvZBwg==", "dev": true }, "mobx-react": { @@ -10373,9 +10477,9 @@ "dev": true }, "pretty-quick": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-1.11.0.tgz", - "integrity": "sha512-hy0yOSnqVykrgoHcCcB72p3B5ERQJcjQI6ExeSGSTFE2cDrPwCQtFb3kXA1F+jUPrbt7orra8U+fjS/Emjgpuw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-1.11.1.tgz", + "integrity": "sha512-kSXCkcETfak7EQXz6WOkCeCqpbC4GIzrN/vaneTGMP/fAtD8NerA9bPhCUqHAks1geo7biZNl5uEMPceeneLuA==", "dev": true, "requires": { "chalk": "^2.3.0", @@ -10776,9 +10880,9 @@ } }, "rc-animate": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-2.8.3.tgz", - "integrity": "sha512-VPSHJF/PW9zrPVCdQ94/YOI2lFfJVlaiAeQveJN2nlPVMivgvXkuFJyfe42GbZqm+qlnRjH9B4WbY9rCZz9miw==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-2.9.2.tgz", + "integrity": "sha512-rkJjeJgfbDqVjVX1/QTRfS7PiCq3AnmeYo840cVcuC4pXq4k4yAQMsC2v5BPXXdawC04vnyO4/qHQdbx9ANaiw==", "dev": true, "requires": { "babel-runtime": "6.x", @@ -10786,6 +10890,7 @@ "css-animation": "^1.3.2", "prop-types": "15.x", "raf": "^3.4.0", + "rc-util": "^4.8.0", "react-lifecycles-compat": "^3.0.4" } }, @@ -10816,9 +10921,9 @@ } }, "rc-trigger": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-2.6.4.tgz", - "integrity": "sha512-dN/Iia5E+xLh33OyvIol1Gg1WfHVfL9fUdq34/ejeYENghUNkF0965PDe+GYIgypYplhUM967rjbr/UEm6ctjA==", + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-2.6.5.tgz", + "integrity": "sha512-m6Cts9hLeZWsTvWnuMm7oElhf+03GOjOLfTuU0QmdB9ZrW7jR2IpI5rpNM7i9MvAAlMAmTx5Zr7g3uu/aMvZAw==", "dev": true, "requires": { "babel-runtime": "6.x", @@ -10826,18 +10931,20 @@ "prop-types": "15.x", "rc-align": "^2.4.0", "rc-animate": "2.x", - "rc-util": "^4.4.0" + "rc-util": "^4.4.0", + "react-lifecycles-compat": "^3.0.4" } }, "rc-util": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-4.6.0.tgz", - "integrity": "sha512-rbgrzm1/i8mgfwOI4t1CwWK7wGe+OwX+dNa7PVMgxZYPBADGh86eD4OcJO1UKGeajIMDUUKMluaZxvgraQIOmw==", + "version": "4.8.7", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-4.8.7.tgz", + "integrity": "sha512-TFHa5ti1BnOss3sRFLIgP80welRf8zTFwA47CZnEy1VHlv11SBr4UpX6LvdLUOPD8FP4qS1ChieHCuinsupnJg==", "dev": true, "requires": { "add-dom-event-listener": "^1.1.0", "babel-runtime": "6.x", "prop-types": "^15.5.10", + "react-lifecycles-compat": "^3.0.4", "shallowequal": "^0.2.2" }, "dependencies": { @@ -10949,9 +11056,9 @@ } }, "react-swipeable": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/react-swipeable/-/react-swipeable-5.3.0.tgz", - "integrity": "sha512-mOfRfPxbcfl0jC/3DHSYWRkTElr8aU+ZVc4qv+VOhOQfw8+UM7Mhlky+1YhpRQ/5F9NRR36NZHhHP0kC1yEjGQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/react-swipeable/-/react-swipeable-5.4.0.tgz", + "integrity": "sha512-TUbldupF3cxMF+pBWfz24TlQa23K4CecqQ8EA+onxEiAg+UEPSJ5IousOjMm0IVBYz62KX1klHL8p7SGSR3CiQ==", "dev": true, "requires": { "prop-types": "^15.6.2" @@ -12125,9 +12232,9 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "simple-statistics": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/simple-statistics/-/simple-statistics-7.0.2.tgz", - "integrity": "sha512-wqTjlmbiaL6Fqaw28tSjQrthjxVV17MMfi/H/qvE0jAvtLspB2S7gEtcR27uvhSRAa64LhjhoO169rX8sFW3pg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/simple-statistics/-/simple-statistics-7.0.5.tgz", + "integrity": "sha512-Fz3TaU6ERtpemiNh5IVmJ93+W/kJUEAZ2MrKe2tQ8iU8aFrrwPhW+62MZE0OJlG3GKH6KgcADBz/McIx0s0NhA==", "dev": true }, "slash": { @@ -13249,7 +13356,7 @@ "dev": true }, "terriajs": { - "version": "github:TerriaJS/terriajs#db9884a8ea9d9b44d0afe8786188bfa104cd2aa2", + "version": "github:TerriaJS/terriajs#b396806b58c27501c2d4877d9db262f37cd8b8ac", "from": "github:TerriaJS/terriajs#mobx", "dev": true, "requires": { @@ -13277,8 +13384,10 @@ "class-list": "^0.1.1", "classnames": "^2.2.3", "clipboard": "^2.0.0", + "core-js": "^3.1.4", "create-react-class": "^15.6.2", "css-loader": "^2.1.0", + "css-modules-typescript-loader": "^2.0.4", "d3-array": "^1.0.0", "d3-axis": "^1.0.0", "d3-collection": "^1.0.0", @@ -13314,7 +13423,7 @@ "node-fetch": "^2.1.1", "papaparse": "^4.6.3", "pbf": "^3.0.1", - "pell": "git://github.com/TerriaJS/pell.git#7cd23a55cdfd130fedf3679433991bb7d958fc42", + "pell": "git://github.com/TerriaJS/pell.git#master", "point-in-polygon": "^1.0.1", "proj4": "^2.4.4", "prop-types": "^15.6.0", @@ -13335,7 +13444,7 @@ "string-replace-webpack-plugin": "^0.1.3", "style-loader": "^0.23.1", "svg-sprite-loader": "4.1.3", - "terriajs-cesium": "1.58.1", + "terriajs-cesium": "1.59.0", "terriajs-html2canvas": "1.0.0-alpha.12-terriajs-1", "ts-loader": "^5.3.3", "ts-node": "^5.0.1", @@ -13353,9 +13462,9 @@ "dev": true }, "terriajs-cesium": { - "version": "1.58.1", - "resolved": "https://registry.npmjs.org/terriajs-cesium/-/terriajs-cesium-1.58.1.tgz", - "integrity": "sha512-aq41DFz9m7m3gKUb3H+T2pmC3FU45GkwbH2meiTKwO9aQh8nT2DXDfeSGDEs0ORqq4+A5SV3G/qAqlU/cgq02A==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/terriajs-cesium/-/terriajs-cesium-1.59.0.tgz", + "integrity": "sha512-AKCb1EDlnMdJWvXugiNVGlv0r/V+mVl83NwN5AsQdnVvbxfahKZ/dQ+NsnoWFyPi2tZe3ytcgToBtr4ZvHPQ6g==", "dev": true, "requires": { "deamdify": "^0.1.1", @@ -13390,6 +13499,7 @@ "integrity": "sha1-cOwp4RCrn2QpcYGYC+Jp8PRG23Q=", "dev": true, "requires": { + "jsonschema": "github:terriajs/jsonschema", "when": "^3.7.7", "yargs": "^3.32.0" }, @@ -13927,9 +14037,9 @@ "dev": true }, "typescript": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.2.tgz", - "integrity": "sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", + "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", "dev": true }, "typical": { From ed2439ac75cc77733e3d1cefbf1734dd1b38323d Mon Sep 17 00:00:00 2001 From: Nanda Date: Tue, 17 Sep 2019 16:38:29 +1000 Subject: [PATCH 056/246] Enable About, Related Maps buttons. --- lib/Views/UserInterface.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Views/UserInterface.jsx b/lib/Views/UserInterface.jsx index e68733d892..3969f6f5c3 100644 --- a/lib/Views/UserInterface.jsx +++ b/lib/Views/UserInterface.jsx @@ -33,8 +33,8 @@ export default function UserInterface(props) { return ( - {/* - */} + +