diff --git a/.gitignore b/.gitignore index 603fb12..eeb3622 100644 --- a/.gitignore +++ b/.gitignore @@ -12,8 +12,3 @@ public/locales/undefined/ .screenshots .vscode output.json - -# fase-0 higiene: variantes de settings con secretos (no versionar) -settings-production-*.json -settings-tests.json -*.json~ diff --git a/README.md b/README.md index 4417536..65ff8f1 100644 --- a/README.md +++ b/README.md @@ -33,11 +33,11 @@ TEST_PORT=3000 TEST_WATCH=1 TEST_CLIENT=0 MONGO_URL=mongodb://localhost:27017/fu # and -node_modules/.bin/chimp --watch --ddp=http://localhost:3000 --path=cucumber +chimp --watch --ddp=http://localhost:3000 --path=cucumber # and -node_modules/.bin/chimp --ddp=http://localhost:3000 --path=cucumber +chimp --ddp=http://localhost:3000 --path=cucumber ``` diff --git a/cucumber/chimp-config.js b/cucumber/chimp-config.js deleted file mode 100644 index 7ec19dc..0000000 --- a/cucumber/chimp-config.js +++ /dev/null @@ -1,29 +0,0 @@ -module.exports = { - // - - - - CHIMP - - - - - /* watch: false, - * watchTags: '@watch', - * offline: false, - */ - // - - - - CUCUMBER - - - - - /* path: './features', - * jsonOutput: 'output.json', */ - - // '- - - - DEBUGGING - - - - - log: 'info', - debug: false, - seleniumDebug: false, - webdriverLogLevel: false, - // debugBrkCucumber: 5858, - // - - - - WEBDRIVER-IO - - - - - webdriverio: { - waitforTimeout: 10000, - waitforInterval: 250, // KEEP SMALL (!!!) this is the INTERVAL in which waitFor* is looped fo - desiredCapabilities: { - chromeOptions: { - // args: ["headless", "disable-gpu"] - args: ['--disable-gpu', '--no-sandbox', '--headless'] - }, - isHeadless: true - } - } -}; diff --git a/cucumber/features/pages.feature b/cucumber/features/pages.feature index 0807c2c..fd2193b 100644 --- a/cucumber/features/pages.feature +++ b/cucumber/features/pages.feature @@ -40,6 +40,7 @@ Feature: Test all secundary pages | fire/Fe26.2**1a0361ed0384f741403682e26b4bbc3850bee24e775da13c9782b22365ea895f*r_3gmVad5vzkeyqPpo6UcA*1s5fFz3iDGKTYP2RCvXMshof00QCHf4ErDl9K2dxoX0u-J-t6scyOWG8pGp3ehg_FfEtyR_kYcEKU3rE0jaSlZbD09TIvhiIJeS3C6Uc8YD-rit0XBrgsVKfYSxKzTRoOYiYFJ8JYd298hMtfiASePjS05Z58hhicyCcJYYRlarqDScG3LiVY3lL5y2nfcdIMNuSjCiKOJWuMkxwd9nR1UHMudLl0hEoy56mPdnHpDYtP9IYUlIOk1LlWBxcmHKifbXeqHu94p8j13Kk20dh2R49Hw3KsSoE9UbWmGQA9wAZXT82301i3rGF5GPAKjlTlRYcWisQurnPwHSVmx3DhUdiYwKGxt4KeaM5QVI4BE9octvE41OOprB_-Il105diQEh2Y9vdvX51ZVWIRfCboICPM6rJb0Oin7U7F1iM-oD_5s3DGnelfM5LGBcKwiB5paMo5M5vdBMaO-zR216cW9yGVXw9IZqHx8xDQWnoHAZjt8NLHeiGF2QOmIGtEUH7qnwhGpkcvszajmAZzR8saZgoH1qfBfvpVA41YfV14gU**4d030f05e23ad75409cebc609107467fc60be5077d52cf041087cd024fc4dc45*GY97aGFc1MyAsoO3Qxqtgwk9j-MbAPdEGBmEHq6r8VU | Additional information | false | Then I check that all page urls works properly + @watch Scenario: Check that other non visible pages work well Given I logout if logged And a list of non visible pages ids and contents diff --git a/imports/api/ActiveFires/ActiveFires.js b/imports/api/ActiveFires/ActiveFires.js index 16e2760..79437af 100644 --- a/imports/api/ActiveFires/ActiveFires.js +++ b/imports/api/ActiveFires/ActiveFires.js @@ -1,6 +1,5 @@ /* eslint-disable consistent-return */ -import { Meteor } from 'meteor/meteor'; import { Mongo } from 'meteor/mongo'; import SimpleSchema from 'simpl-schema'; import firesCommonSchema from '../Common/FiresSchema'; @@ -19,11 +18,8 @@ ActiveFires.deny({ remove: () => true }); -const activeFiresSchema = firesCommonSchema; -activeFiresSchema.fireUnion = { type: Meteor.Collection.ObjectID, optional: true, blackbox: true }; - -ActiveFires.schema = new SimpleSchema(activeFiresSchema); +ActiveFires.schema = new SimpleSchema(firesCommonSchema); ActiveFires.attachSchema(ActiveFires.schema); diff --git a/imports/api/ActiveFires/server/countFires.js b/imports/api/ActiveFires/server/countFires.js index b3b8511..39008da 100644 --- a/imports/api/ActiveFires/server/countFires.js +++ b/imports/api/ActiveFires/server/countFires.js @@ -32,9 +32,7 @@ const findFiresInRegion = (zone) => { export const countRealFires = (firesCursor) => { const realFires = []; firesCursor.forEach((fire) => { - if (debug) console.log(`${JSON.stringify(fire)} -----`); const union = firesUnion([fire]); - if (debug) console.log(`${JSON.stringify(union)} -----`); const falsePos = whichAreFalsePositives(FalsePositives, union); const industries = whichAreFalsePositives(Industries, union); if (falsePos.count() === 0 && industries.count() === 0) { diff --git a/imports/api/ActiveFires/server/publications.js b/imports/api/ActiveFires/server/publications.js index 03878b3..21e4e5a 100644 --- a/imports/api/ActiveFires/server/publications.js +++ b/imports/api/ActiveFires/server/publications.js @@ -31,8 +31,7 @@ const activefires = (northEastLng, northEastLat, southWestLng, southWestLat, wit lat: 1, lon: 1, when: 1, - scan: 1, - track: 1 + scan: 1 } }); diff --git a/imports/api/ActiveFiresUnion/ActiveFiresUnion.js b/imports/api/ActiveFiresUnion/ActiveFiresUnion.js deleted file mode 100644 index 2437e54..0000000 --- a/imports/api/ActiveFiresUnion/ActiveFiresUnion.js +++ /dev/null @@ -1,71 +0,0 @@ -/* eslint-disable consistent-return */ -/* eslint-disable import/no-absolute-path */ - -import { Mongo } from 'meteor/mongo'; -import SimpleSchema from 'simpl-schema'; -import LocationSchema from '/imports/api/Utility/LocationSchema.js'; -import { defaultCreatedAt, defaultUpdateAt } from '/imports/api/Utility/Utils.js'; - -const ActiveFiresUnion = new Mongo.Collection('activefiresunion', { idGeneration: 'MONGO' }); - -/* Sample: - * - * TODO - * - * */ - -// We have to store polygons and their centroids -// {"type":"Polygon","coordinates":[[[-5.8645,43.5524],[-5.8621,43.5524],[-5.8621,43.5546],[-5.8645,43.5546],[-5.8645,43.5524]]]} - -ActiveFiresUnion.allow({ - insert: () => false, - update: () => false, - remove: () => false -}); - -ActiveFiresUnion.deny({ - insert: () => true, - update: () => true, - remove: () => true -}); - -// https://www.npmjs.com/package/simpl-schema -const GeoJsonSchema = new SimpleSchema({ - type: { - type: String, - allowedValues: ['Polygon'] - }, - coordinates: { - type: Array - }, - 'coordinates.$': { - type: Array - }, - 'coordinates.$.$': { - type: Array - }, - 'coordinates.$.$.$': { - type: Number - } -}); - -const firesUnionSchema = { - centerid: LocationSchema, - - // https://docs.mongodb.com/manual/reference/geojson/ - // : { type: , coordinates: } - shape: GeoJsonSchema, - history: { type: Array, optional: true }, - 'history.$': GeoJsonSchema, - - when: Date, // First date - - createdAt: defaultCreatedAt, - updatedAt: defaultUpdateAt -}; - -ActiveFiresUnion.schema = new SimpleSchema(firesUnionSchema); - -ActiveFiresUnion.attachSchema(ActiveFiresUnion.schema); - -export default ActiveFiresUnion; diff --git a/imports/api/ActiveFiresUnion/server/publications.js b/imports/api/ActiveFiresUnion/server/publications.js deleted file mode 100644 index 6a126d8..0000000 --- a/imports/api/ActiveFiresUnion/server/publications.js +++ /dev/null @@ -1,80 +0,0 @@ -/* global Counter */ -/* eslint-disable import/no-absolute-path */ -/* eslint-disable prefer-arrow-callback */ - -import { Meteor } from 'meteor/meteor'; -import { check } from 'meteor/check'; -import { NumberBetween } from '/imports/modules/server/other-checks'; -// import { whichAreFalsePositives, firesUnion } from '/imports/api/FalsePositives/server/publications'; -// import FalsePositives from '/imports/api/FalsePositives/FalsePositives'; -// import Industries from '/imports/api/Industries/Industries'; -import ActiveFiresUnion from '../ActiveFiresUnion'; - -const counter = new Counter('countActiveFiresUnion', ActiveFiresUnion.find({})); - -Meteor.publish('activefiresuniontotal', function total() { - return counter; -}); - -const activeFiresUnion = (b1, b2, c1, c2, withMarks) => { - // a --- b - // c --- d - const geometry = { - $geometry: { - type: 'Polygon', - coordinates: [[ - [c1, c2], - [c1, b2], - [b1, b2], - [b1, c2], - [c1, c2] - ]] - } - }; - // console.log(JSON.stringify(geometry)); - const fires = ActiveFiresUnion.find({ - shape: { - $geoIntersects: geometry - } - }, { - fields: { - shape: 1, - centerid: 1, - when: 1, - createdAt: 1, - updatedAt: 1 - } - }); - - if (Meteor.isDevelopment) console.log(`Active fires union total: ${fires.count()}`); - - /* - if (withMarks && fires.fetch().length > 0) { - const union = firesUnion(fires); - const falsePos = whichAreFalsePositives(FalsePositives, union); - const industries = whichAreFalsePositives(Industries, union); - return [fires, falsePos, industries]; - } */ - - return fires; -}; - -Meteor.publish('activefiresunionmyloc', function activeInMyLoc(northEastLng, northEastLat, southWestLng, southWestLat, withMarks) { - // latitude -90 and 90 and the longitude between -180 and 180 - check(northEastLng, NumberBetween(-180, 180)); - check(southWestLat, NumberBetween(-90, 90)); - check(southWestLng, NumberBetween(-180, 180)); - check(northEastLat, NumberBetween(-90, 90)); - check(withMarks, Boolean); - - // I use this for fire stats - // if (!Meteor.isDevelopment) return this.ready(); // empty - return activeFiresUnion(northEastLng, northEastLat, southWestLng, southWestLat, withMarks); -}); - -// Warning: this increase always by one the fire stats -Meteor.publish('lastFireUnionDetected', function lastFireDetected() { - // I use this for fire stats - // if (!Meteor.isDevelopment) return this.ready(); // empty - return ActiveFiresUnion.find({}, { limit: 1, sort: { when: -1 } }); -}); diff --git a/imports/api/FalsePositives/server/publications.js b/imports/api/FalsePositives/server/publications.js index a79ae1a..299cf12 100644 --- a/imports/api/FalsePositives/server/publications.js +++ b/imports/api/FalsePositives/server/publications.js @@ -5,8 +5,7 @@ import { Meteor } from 'meteor/meteor'; import { check } from 'meteor/check'; import { NumberBetween } from '/imports/modules/server/other-checks'; -import '/imports/startup/server/leaflet-workaround.js'; -import L from 'leaflet'; +import L from 'leaflet-headless'; import calcUnion from '/imports/ui/components/Maps/SubsUnion/Unify'; import Industries from '/imports/api/Industries/Industries'; import FalsePositives from '../FalsePositives'; @@ -23,13 +22,11 @@ export const firesUnion = (fires) => { const isNASA = doc.type === 'modis' || doc.type === 'viirs'; const pixelSize = doc.type === 'viirs' ? 0.375 : 1; // viirs has 375m pixel size, modis 1000m // default 1 km for neightbor alerts - const map = { + return { location: { lat: doc.lat, lon: doc.lon }, distance: isNASA ? doc.scan * pixelSize : 1, distanceY: isNASA ? doc.track * pixelSize : 1 }; - // console.log(map); - return map; }); const union = calcUnion(L, remap, sub => sub, false); return union; diff --git a/imports/api/FireAlerts/server/publications.js b/imports/api/FireAlerts/server/publications.js index 6642f35..b0e9412 100644 --- a/imports/api/FireAlerts/server/publications.js +++ b/imports/api/FireAlerts/server/publications.js @@ -33,8 +33,7 @@ Meteor.publish('fireAlerts', function fireAlerts(northEastLng, northEastLat, sou fields: { lat: 1, lon: 1, - scan: 1, - track: 1 + scan: 1 } }); if (Meteor.isDevelopment) console.log(`Neighbour alerts total: ${fires.count()}`); diff --git a/imports/api/Fires/server/publications.js b/imports/api/Fires/server/publications.js index 3862beb..acb4d1e 100644 --- a/imports/api/Fires/server/publications.js +++ b/imports/api/Fires/server/publications.js @@ -147,7 +147,7 @@ export function fireFromHash(fireEnc, params) { // const unsealed = Promise.await(urlEnc.decrypt(fireEnc)); const unsealed = Promise.await(unsealW(fireEnc)); if (unsealed === undefined) { - throw Error(`Fail to unseal '${fireEnc}'`); + throw Error('Undefined unsealed'); } const w = unsealed.when; unsealed.when = new Date(w); diff --git a/imports/api/Rest/Rest.js b/imports/api/Rest/Rest.js index ae5e383..eda3a1f 100644 --- a/imports/api/Rest/Rest.js +++ b/imports/api/Rest/Rest.js @@ -18,7 +18,6 @@ import { Random } from 'meteor/random'; import { subscriptionsInsert } from '/imports/api/Subscriptions/methods.js'; import { Mongo } from 'meteor/mongo'; import { upsertFalsePositive } from '/imports/api/FalsePositives/methods.js'; - const debug = false; const uptime = new Date(); @@ -158,13 +157,11 @@ if (!Meteor.settings.private.internalApiToken) { lon: 1, when: 1, type: 1, // modis, viirs, vecinal - scan: 1, - track: 1 + scan: 1 } }); const result = { total: fires.count(), real: countRealFires(fires) }; - if (debug) console.log(`Query for fires in ${lat}, ${lng} in ${km} km radius ${result}`); if (!full) { return result; diff --git a/imports/modules/server/notificationsProcess.js b/imports/modules/server/notificationsProcess.js index 657aa2a..2b279fa 100644 --- a/imports/modules/server/notificationsProcess.js +++ b/imports/modules/server/notificationsProcess.js @@ -22,6 +22,8 @@ if (!(Meteor.settings.private.fcmApiToken && Meteor.settings.private.fcmApiToken validFcmSender = false; } +const fcmSender = new gcm.Sender(Meteor.settings.private.fcmApiToken); + // https://www.npmjs.com/package/google-maps-image-api-url // https://stackoverflow.com/questions/24355007/is-there-no-way-to-embed-a-google-map-into-an-html-email // https://developers.google.com/maps/documentation/static-maps/intro @@ -43,20 +45,8 @@ function imgUrl(lat, lng) { return ``; } */ -// Cutover flag (fase 1a): channels listed in -// Meteor.settings.private.notifDisabledChannels (e.g. ['mobile','web']) are -// handled by the tcef-notifications microservice, so the old observer/cron must -// NOT send them. Mutual exclusion per channel — reversible by editing settings, -// no code deploy needed. ES5-compatible on purpose (Meteor 1.6 / Node 8). -const notifDisabledChannels = (Meteor.settings.private && Meteor.settings.private.notifDisabledChannels) || []; - const processNotif = (notif) => { - if (notifDisabledChannels.indexOf(notif.type) !== -1) { - // This channel was migrated to tcef-notifications; do nothing here. - return; - } - if (isMailServerMaster && validFcmSender && notif.type === 'mobile' && notif.notified !== true) { - const fcmSender = new gcm.Sender(Meteor.settings.private.fcmApiToken); + if (isMailServerMaster && notif.type === 'mobile' && notif.notified !== true) { const user = Meteor.users.findOne({ _id: notif.userId }); moment.locale(user.lang); // duplicate code below @@ -146,7 +136,8 @@ const processNotif = (notif) => { } else { // Not email or not verified -> remove notif so we don't retry to send it Notifications.remove({ _id: notif._id }); - } + }gn + } }; diff --git a/imports/startup/server/api.js b/imports/startup/server/api.js index a6044b4..73f1fa2 100644 --- a/imports/startup/server/api.js +++ b/imports/startup/server/api.js @@ -9,7 +9,6 @@ import '../../api/Users/server/publications'; import '../../api/Utility/server/methods'; import '../../api/ActiveFires/server/publications'; -import '../../api/ActiveFiresUnion/server/publications'; import '../../api/FireAlerts/server/publications'; import '../../api/Subscriptions/methods'; diff --git a/imports/startup/server/index.js b/imports/startup/server/index.js index 7f84dde..dd4f913 100644 --- a/imports/startup/server/index.js +++ b/imports/startup/server/index.js @@ -17,4 +17,5 @@ import './prerender'; import './feedback'; import './cron'; import './isMaster'; +import './segfaults'; import './rest'; diff --git a/imports/startup/server/leaflet-workaround.js b/imports/startup/server/leaflet-workaround.js deleted file mode 100644 index 740aa3b..0000000 --- a/imports/startup/server/leaflet-workaround.js +++ /dev/null @@ -1,19 +0,0 @@ -// imports/startup/server/leaflet-workaround.js -global.window = { - screen: { - deviceXDPI: 1, - logicalXDPI: 1 - } -}; -global.document = { - documentElement: { - style: {} - }, - createElement: () => { - return {}; - } -}; -global.navigator = { - userAgent: 'foo', - platform: 'bar' -}; diff --git a/imports/startup/server/migrations.js b/imports/startup/server/migrations.js index e3bfac9..defc7c1 100644 --- a/imports/startup/server/migrations.js +++ b/imports/startup/server/migrations.js @@ -10,7 +10,6 @@ import FalsePositives from '/imports/api/FalsePositives/FalsePositives'; import Industries from '/imports/api/Industries/Industries'; import IndustryRegistries from '/imports/api/Industries/IndustryRegistries'; import Notifications from '/imports/api/Notifications/Notifications'; -import ActiveFiresUnion from '/imports/api/ActiveFiresUnion/ActiveFiresUnion'; import { Mongo } from 'meteor/mongo'; Meteor.startup(() => { @@ -241,18 +240,6 @@ Meteor.startup(() => { } }); - Migrations.add({ - version: 18, - up: () => { - const raw = ActiveFiresUnion.rawCollection(); - raw.createIndex({ centerid: '2dsphere' }); - raw.createIndex({ shape: '2dsphere' }); - raw.createIndex({ when: 1 }); - raw.createIndex({ createdAt: 1 }); - raw.createIndex({ updatedAt: 1 }); - } - }); - // Set createdAt in users & subs Migrations.migrateTo('latest'); diff --git a/imports/startup/server/segfaults.js b/imports/startup/server/segfaults.js new file mode 100644 index 0000000..b976f0b --- /dev/null +++ b/imports/startup/server/segfaults.js @@ -0,0 +1,25 @@ +import SegfaultHandler from 'segfault-handler'; +import moment from 'moment'; +// import ravenLogger from './ravenLogger'; + +// https://github.com/ddopson/node-segfault-handler + +const dateFileFormat = moment().format('YYYYMMDD_HH:mm:ss'); + +SegfaultHandler.registerHandler(`/var/tmp/tcef-stacktrace-${dateFileFormat}.log`); + + +// This callaback does not work: +// https://github.com/ddopson/node-segfault-handler/issues/49 + +/* SegfaultHandler.registerHandler('/var/tmp/tcef-crash.log', (signal, address, stack) => { + * // Do what you want with the signal, address, or stack (array) + * // This callback will execute before the signal is forwarded on. + * ravenLogger.log(stack, signal); + * }); */ + +// Only uncomment for segv tests +// SegfaultHandler.causeSegfault(); + +// Or this for normal error (should go to raven in configured) +// throw new Error('This is just a test of error in server'); diff --git a/imports/startup/server/sitemaps.js b/imports/startup/server/sitemaps.js index 8026449..c1fe573 100644 --- a/imports/startup/server/sitemaps.js +++ b/imports/startup/server/sitemaps.js @@ -4,8 +4,6 @@ import Fires from '/imports/api/Fires/Fires'; // import Comments from '/imports/api/Comments/Comments'; -const firesMapEnabled = false; - sitemaps.add('/sitemap.xml', () => { const today = new Date(); @@ -22,23 +20,21 @@ sitemaps.add('/sitemap.xml', () => { // When user has public page /* const users = Meteor.users.find().fetch(); - _.each(users, function(user) { - out.push({ - page: '/persona/' + user.username, - lastmod: user.updatedAt - }); + _.each(users, function(user) { + out.push({ + page: '/persona/' + user.username, + lastmod: user.updatedAt + }); }); */ - if (firesMapEnabled) { - Fires.find({}, { limit: 100, sort: { createdAt: -1 } }).fetch().forEach((fire) => { - // Search the last comment of tha fire - const lastComment = Comments.getCollection().findOne({ referenceId: `fire-${fire._id}` }, { sort: { createdAt: -1 } }); - out.push({ - page: `/fire/archive/${fire._id._str}`, - lastmod: lastComment ? lastComment.createdAt : fire.updatedAt - }); + Fires.find({}, { limit: 100, sort: { createdAt: -1 } }).fetch().forEach((fire) => { + // Search the last comment of tha fire + const lastComment = Comments.getCollection().findOne({ referenceId: `fire-${fire._id}` }, { sort: { createdAt: -1 } }); + out.push({ + page: `/fire/archive/${fire._id._str}`, + lastmod: lastComment ? lastComment.createdAt : fire.updatedAt }); - } + }); return out; }); diff --git a/imports/startup/server/subsUnion.js b/imports/startup/server/subsUnion.js index 2643359..390a6ee 100644 --- a/imports/startup/server/subsUnion.js +++ b/imports/startup/server/subsUnion.js @@ -4,8 +4,7 @@ import { Meteor } from 'meteor/meteor'; import Subscriptions from '/imports/api/Subscriptions/Subscriptions'; import SiteSettings from '/imports/api/SiteSettings/SiteSettings'; import Perlin from 'loms.perlin'; -import './leaflet-workaround'; -import L from 'leaflet'; +import L from 'leaflet-headless'; import calcUnion from '/imports/ui/components/Maps/SubsUnion/Unify'; import { isMailServerMaster } from '/imports/startup/server/email'; diff --git a/imports/ui/components/Maps/DefMapLayers.js b/imports/ui/components/Maps/DefMapLayers.js index 6e3ed56..713b499 100644 --- a/imports/ui/components/Maps/DefMapLayers.js +++ b/imports/ui/components/Maps/DefMapLayers.js @@ -35,8 +35,7 @@ class DefMapLayers extends Component { ); const osmlayer = ( diff --git a/imports/ui/components/Maps/FireCircleMark.js b/imports/ui/components/Maps/FireCircleMark.js index 80b9826..e4a3460 100644 --- a/imports/ui/components/Maps/FireCircleMark.js +++ b/imports/ui/components/Maps/FireCircleMark.js @@ -1,10 +1,10 @@ import React, { Component } from 'react'; -import { GeoJSON } from 'react-leaflet'; +import { Circle } from 'react-leaflet'; import PropTypes from 'prop-types'; -import { rectangleAround } from 'map-common-utils'; import { onMarkClick } from './MarkListeners'; import FirePopup from './FirePopup'; + class FireCircleMark extends Component { constructor(props) { super(props); @@ -22,26 +22,22 @@ class FireCircleMark extends Component { lat, lon, scan, - track, nasa, id, history, when, t } = this.props; - const rect = rectangleAround({ lat, lon }, track, track); return ( - + - + ); - /* */ } } FireCircleMark.propTypes = { scan: PropTypes.number.isRequired, - track: PropTypes.number.isRequired, lat: PropTypes.number.isRequired, lon: PropTypes.number.isRequired, nasa: PropTypes.bool.isRequired, diff --git a/imports/ui/components/Maps/FireIconMark.js b/imports/ui/components/Maps/FireIconMark.js index ab24da4..94d93a0 100644 --- a/imports/ui/components/Maps/FireIconMark.js +++ b/imports/ui/components/Maps/FireIconMark.js @@ -3,8 +3,8 @@ import React, { Component, Fragment } from 'react'; import { CircleMarker, Marker, Tooltip } from 'react-leaflet'; import PropTypes from 'prop-types'; import { fireIconS, fireIconM, fireIconL, nFireIcon, industryIcon, regIndustryIcon } from '/imports/ui/components/Maps/Icons'; -import { translate } from 'react-i18next'; import { onMarkClick } from './MarkListeners'; +import { translate } from 'react-i18next'; import FirePopup from './FirePopup'; class FireIconMark extends Component { @@ -30,7 +30,17 @@ class FireIconMark extends Component { render() { const { - lat, lon, scan, track, nasa, id, history, falsePositives, industries, neighbour, when, t + lat, + lon, + scan, + nasa, + id, + history, + falsePositives, + industries, + neighbour, + when, + t } = this.props; return (
@@ -69,7 +79,6 @@ FireIconMark.propTypes = { lat: PropTypes.number.isRequired, lon: PropTypes.number.isRequired, scan: PropTypes.number, - track: PropTypes.number, nasa: PropTypes.bool, falsePositives: PropTypes.bool.isRequired, industries: PropTypes.bool.isRequired, diff --git a/imports/ui/components/Maps/FireListUnion.js b/imports/ui/components/Maps/FireListUnion.js deleted file mode 100644 index 3b094c0..0000000 --- a/imports/ui/components/Maps/FireListUnion.js +++ /dev/null @@ -1,22 +0,0 @@ -/* eslint-disable import/no-absolute-path */ -/* eslint-disable react/jsx-indent-props */ -/* eslint-disable react/jsx-indent */ -import React from 'react'; -import PropTypes from 'prop-types'; -import FirePolygonMark from '/imports/ui/components/Maps/FirePolygonMark'; - -export default function FireListUnion(props) { - const { - firesUnion, nasa, t, history - } = props; - /* console.log(`Using marks: ${useMarks}, using pixels: ${usePixel}`); */ - const items = firesUnion.map(({ _id, ...otherProps }) => ()); - return (
{items}
); -} - -FireListUnion.propTypes = { - firesUnion: PropTypes.array.isRequired, - nasa: PropTypes.bool.isRequired, - history: PropTypes.object.isRequired, - t: PropTypes.func.isRequired -}; diff --git a/imports/ui/components/Maps/FirePixel.js b/imports/ui/components/Maps/FirePixel.js index 4efcabe..c81b547 100644 --- a/imports/ui/components/Maps/FirePixel.js +++ b/imports/ui/components/Maps/FirePixel.js @@ -3,32 +3,31 @@ import React from 'react'; import { CircleMarker } from 'react-leaflet'; import PropTypes from 'prop-types'; -import { translate } from 'react-i18next'; import FirePopup from './FirePopup'; +import { translate } from 'react-i18next'; /* Less acurate (1 pixel per fire) but faster */ const FirePixel = ({ - lat, lon, nasa, id, when, t, history, track + lat, lon, nasa, id, when, t, history }) => ( ); + FirePixel.propTypes = { lat: PropTypes.number.isRequired, lon: PropTypes.number.isRequired, id: PropTypes.object.isRequired, history: PropTypes.object.isRequired, - scan: PropTypes.number, - track: PropTypes.number, when: PropTypes.instanceOf(Date), nasa: PropTypes.bool.isRequired, t: PropTypes.func.isRequired diff --git a/imports/ui/components/Maps/FirePolygonMark.js b/imports/ui/components/Maps/FirePolygonMark.js deleted file mode 100644 index 92e3640..0000000 --- a/imports/ui/components/Maps/FirePolygonMark.js +++ /dev/null @@ -1,48 +0,0 @@ -import React, { Component } from 'react'; -import { GeoJSON } from 'react-leaflet'; -import PropTypes from 'prop-types'; -import { onMarkClick } from './MarkListeners'; -import FirePopup from './FirePopup'; - -class FirePolygonMark extends Component { - constructor(props) { - super(props); - this.t = props.t; - this.onClick = this.onClick.bind(this); - } - - onClick() { - const { history, nasa, id } = this.props; - onMarkClick(history, nasa, id); - } - - render() { - const { - nasa, - id, - shape, - centerid, - history, - when, - t - } = this.props; - const lon = centerid.coordinates[0]; - const lat = centerid.coordinates[1]; - return ( - - ); - /* */ - } -} - -FirePolygonMark.propTypes = { - id: PropTypes.object.isRequired, - nasa: PropTypes.bool.isRequired, - shape: PropTypes.object.isRequired, - centerid: PropTypes.object.isRequired, - history: PropTypes.object.isRequired, - when: PropTypes.instanceOf(Date).isRequired, - t: PropTypes.func.isRequired -}; - -export default FirePolygonMark; diff --git a/imports/ui/components/Maps/SubsUnion/Unify.js b/imports/ui/components/Maps/SubsUnion/Unify.js index 873dcbf..a0fc2ec 100644 --- a/imports/ui/components/Maps/SubsUnion/Unify.js +++ b/imports/ui/components/Maps/SubsUnion/Unify.js @@ -1,9 +1,56 @@ -import { calcUnion as calcUnionWoBounds } from 'map-common-utils'; +import { check } from 'meteor/check'; +import tunion from '@turf/union'; +import ttrunc from '@turf/truncate'; +import { rectangleAround } from 'map-common-utils'; +import tcircle from '@turf/circle'; + + // https://stackoverflow.com/questions/35394577/leaflet-js-union-merge-circles +const truncOptions = { precision: 6, coordinates: 2 }; + +const unify = (polyList) => { + let unionTemp; + for (let i = 0; i < polyList.length; i += 1) { + const pol = polyList[i]; + const cleanPol = ttrunc(pol, truncOptions); + if (i === 0) { + unionTemp = cleanPol; + } else { + unionTemp = ttrunc(tunion(unionTemp, cleanPol), truncOptions); + } + } + return unionTemp; +}; const calcUnion = (L, subs, decorated, typeCircle) => { - const unionJson = calcUnionWoBounds(subs, decorated, typeCircle); - // return [unionJson, L.geoJSON(unionJson).getBounds()]; - return [unionJson, unionJson === null ? null : L.geoJSON(unionJson).getBounds()]; + const unionGroup = []; + const doCircle = (typeof typeCircle !== 'undefined') ? typeCircle : true; + subs.forEach((osub) => { + try { + if (osub.location && osub.location.lat && osub.location.lon && osub.distance) { + check(osub.location.lon, Number); + check(osub.location.lat, Number); + check(osub.distance, Number); + const dsub = decorated(osub); + const jsonPolygon = doCircle ? + tcircle( + [dsub.location.lon, dsub.location.lat], dsub.distance, + { units: 'kilometers', steps: 144 } + ) : + rectangleAround( + { lon: dsub.location.lon, lat: dsub.location.lat }, + dsub.distance, + (typeof dsub.distanceY !== 'undefined') ? dsub.distanceY : dsub.distance + ); + unionGroup.push(jsonPolygon); + } else { + console.info(`Wrong element to do union ${JSON.stringify(osub)}`); + } + } catch (e) { + console.error(e, `Wrong element trying to make union ${JSON.stringify(osub)}`); + } + }); + const unionJson = unify(unionGroup); + return [unionJson, L.geoJSON(unionJson).getBounds()]; }; export default calcUnion; diff --git a/imports/ui/layouts/App/App.js b/imports/ui/layouts/App/App.js index 4aeef3a..d991262 100644 --- a/imports/ui/layouts/App/App.js +++ b/imports/ui/layouts/App/App.js @@ -98,66 +98,66 @@ const App = props => ( /* https://react.i18next.com/components/i18nextprovider.html */
{props.i18nReady.get() && - - - - - - { !props.loading && -
- - - {i18n.t('AppName')} - - - - - - + + + + + + { !props.loading && +
+ + + {i18n.t('AppName')} + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - -
- - - {props.i18nReady.get() && } -
} -
-
-
-
-
} + + + +
+ + + {props.i18nReady.get() && } +
} +
+
+
+
+
}
); @@ -186,9 +186,7 @@ export default withTracker(() => { const loading = !Roles.subscription.ready() || !i18nReady.get(); const name = user && user.profile && user.profile.name && getUserName(user.profile.name); const emailAddress = user && user.emails && user.emails[0].address; - Meteor.autorun(() => { - console.log(`i18n ready?: ${i18nReady.get()}`); - }); + // console.log(`i18n ready?: ${i18nReady.get()}`); return { loading, loggingIn, diff --git a/imports/ui/pages/Fires/Fires.js b/imports/ui/pages/Fires/Fires.js index 2647992..0e4271a 100644 --- a/imports/ui/pages/Fires/Fires.js +++ b/imports/ui/pages/Fires/Fires.js @@ -10,8 +10,7 @@ import { Row, Col, Alert, FormGroup } from 'react-bootstrap'; import { Meteor } from 'meteor/meteor'; import { Bert } from 'meteor/themeteorchef:bert'; import { Helmet } from 'react-helmet'; -import { Map, GeoJSON } from 'react-leaflet'; -import { rectangleAround } from 'map-common-utils'; +import { Map, Circle } from 'react-leaflet'; import Blaze from 'meteor/gadicc:blaze-react-component'; import DefMapLayers from '/imports/ui/components/Maps/DefMapLayers'; import NotFound from '/imports/ui/pages/NotFound/NotFound'; @@ -116,9 +115,8 @@ class Fire extends React.Component { t('Información adicional sobre fuego detectado en {{where}} el {{when}}', { where: fire.address, when: this.dateLongFormat }) : t('Información adicional sobre fuego detectado el {{when}}', { when: this.dateLongFormat }); } - const ready = fire && !loading; - const rect = ready ? rectangleAround({ lat: fire.lat, lon: fire.lon }, fire.track, fire.track) : null; - return (ready ? ( + + return (fire && !loading ? (
{t('AppName')}: {t('Información adicional sobre fuego')} @@ -139,13 +137,14 @@ class Fire extends React.Component { zoom={13} > - { this.circle = circle; this.handleLeafletCircleLoad(circle); }} - data={rect} + { this.circle = circle; this.handleLeafletCircleLoad(circle); }} /> { (this.props.activefires.length + this.props.firealerts.length) === 0 ? No hay fuegos activos en esta zona del mapa. {{ countTotal: this.props.activefirestotal }} fuegos activos en el mundo. : - En rojo, {{ count: this.props.activefiresunion.length + this.props.firealerts.length }} fuegos activos. {{ countTotal: this.props.activefirestotal }} fuegos activos en el mundo. + En rojo, {{ count: this.props.activefires.length + this.props.firealerts.length }} fuegos activos. {{ countTotal: this.props.activefirestotal }} fuegos activos en el mundo. }

{isNotHomeAndMobile() && this.props.firealerts.length > 0 && @@ -297,14 +307,6 @@ class FiresMap extends React.Component { neighbour={false} industries={false} /> - { Meteor.isDevelopment && - - } { // console.log(`With industries: ${withIndustries}`); let subscription; - let subscriptionUnion; let alertSubscription; const centerStored = store.get('firesmap_center'); @@ -423,14 +422,6 @@ export default translate([], { wait: true })(withTracker(() => { mapSize.get()[1].lat, marks.get() && zoom.get() >= MAXZOOM ); - subscriptionUnion = Meteor.subscribe( - 'activefiresunionmyloc', - mapSize.get()[0].lng, - mapSize.get()[0].lat, - mapSize.get()[1].lng, - mapSize.get()[1].lat, - false - ); alertSubscription = Meteor.subscribe( 'fireAlerts', mapSize.get()[0].lng, @@ -451,7 +442,6 @@ export default translate([], { wait: true })(withTracker(() => { }); Meteor.subscribe('activefirestotal'); - Meteor.subscribe('activefiresuniontotal'); const settingsSubs = Meteor.subscribe('settings'); const lastCheck = SiteSettings.findOne({ name: 'last-fire-check' }); @@ -463,15 +453,13 @@ export default translate([], { wait: true })(withTracker(() => { const lastFireDetected = ActiveFiresCollection.findOne({}, { sort: { when: -1 } }); return { - loading: Meteor.status().status !== 'connected' || !subscription ? true : !(subscription.ready() && settingsSubs.ready() && alertSubscription.ready() && settingsSubs.ready() && subscriptionUnion.ready()), + loading: Meteor.status().status !== 'connected' || !subscription ? true : !(subscription.ready() && settingsSubs.ready() && alertSubscription.ready() && settingsSubs.ready()), userSubs: userSubs ? userSubs.value : null, userSubsBounds: userSubs ? userSubsBounds.value : null, subsready: settingsSubs.ready(), // Not reactive query depending on zoom level activefires: ActiveFiresCollection.find({}, { reactive: zoom.get() >= MAXZOOMREACTIVE }).fetch(), - activefiresunion: ActiveFiresUnion.find({}, { reactive: zoom.get() >= MAXZOOMREACTIVE }).fetch(), activefirestotal: Counter.get('countActiveFires') + fireAlerts.length, - activefiresuniontotal: Counter.get('countActiveFiresUnion') + fireAlerts.length, firealerts: fireAlerts, falsePositives, industries, diff --git a/imports/ui/pages/Index/Index.js b/imports/ui/pages/Index/Index.js index 9986fba..6735852 100644 --- a/imports/ui/pages/Index/Index.js +++ b/imports/ui/pages/Index/Index.js @@ -182,9 +182,9 @@ class Index extends Component {

Siempre alerta a los fuegos en nuestro vecindario

{/* {this.props.t('Participa')} */} -
+

-

+

diff --git a/imports/ui/pages/Index/Index.scss b/imports/ui/pages/Index/Index.scss index 527aa93..3fb18b4 100644 --- a/imports/ui/pages/Index/Index.scss +++ b/imports/ui/pages/Index/Index.scss @@ -77,7 +77,3 @@ } } } - -.android-btn > div { - height: 50px !important; -} diff --git a/imports/ui/pages/Subscriptions/SubscriptionsMap.js b/imports/ui/pages/Subscriptions/SubscriptionsMap.js index 52d6874..a7e7ab2 100644 --- a/imports/ui/pages/Subscriptions/SubscriptionsMap.js +++ b/imports/ui/pages/Subscriptions/SubscriptionsMap.js @@ -63,8 +63,8 @@ class SubscriptionsMap extends React.Component { handleLeafletLoad(map) { // console.log('Map loading'); - if (map && this.props.userSubs !== 'null') { - // console.log(`Union of ${this.props.userSubs}`); + // console.log(map); + if (map) { this.state.union = subsUnion(this.state.union, { map, subs: this.props.userSubs, diff --git a/package-lock.json b/package-lock.json index c5e3486..5ab7869 100644 --- a/package-lock.json +++ b/package-lock.json @@ -149,6 +149,13 @@ "requires": { "@turf/helpers": "6.1.4", "@turf/invariant": "6.1.2" + }, + "dependencies": { + "@turf/helpers": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.1.4.tgz", + "integrity": "sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g==" + } } }, "@turf/helpers": { @@ -197,32 +204,35 @@ } }, "@turf/truncate": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-6.0.1.tgz", - "integrity": "sha512-0n6MauRHIhnlNPKnVa65YUPNh0AExDmBfvg7v5w1corBlYHZXLew3rS9IKw7o6VqHaMUQs5RT/b3/77RlTetJg==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-5.1.5.tgz", + "integrity": "sha1-nu37Oxi6gfLJjT6tCUMcyhiErYk=", "requires": { - "@turf/helpers": "6.1.4", - "@turf/meta": "6.0.2" + "@turf/helpers": "5.1.5", + "@turf/meta": "5.2.0" }, "dependencies": { - "@turf/meta": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.0.2.tgz", - "integrity": "sha512-VA7HJkx7qF1l3+GNGkDVn2oXy4+QoLP6LktXAaZKjuT1JI0YESat7quUkbCMy4zP9lAUuvS4YMslLyTtr919FA==", - "requires": { - "@turf/helpers": "6.1.4" - } + "@turf/helpers": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", + "integrity": "sha1-FTQFInq5M9AEpbuWQantmZ/L4M8=" } } }, "@turf/union": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@turf/union/-/union-6.0.3.tgz", - "integrity": "sha512-SJPhEvsR96k4vFqymxPPC43jcqFydTafGjHWnYzlupxqUDzIYD8X5d9Ed8mONl2T9oM4ErbNuuZ9j/eHvoWtKw==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/union/-/union-5.1.5.tgz", + "integrity": "sha1-UyhbYJQEf8WNlqrA6pCGXsNNRUs=", "requires": { - "@turf/helpers": "6.1.4", - "@turf/invariant": "6.1.2", - "martinez-polygon-clipping": "0.4.3" + "@turf/helpers": "5.1.5", + "turf-jsts": "1.2.2" + }, + "dependencies": { + "@turf/helpers": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", + "integrity": "sha1-FTQFInq5M9AEpbuWQantmZ/L4M8=" + } } }, "@types/node": { @@ -234,8 +244,7 @@ "abab": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", - "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", - "dev": true + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=" }, "abbrev": { "version": "1.1.1", @@ -287,7 +296,7 @@ "resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.0.2.tgz", "integrity": "sha1-j67SxBAIchzxEdodMNmVuFvkK+0=", "requires": { - "object-assign": "4.1.1" + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" } }, "agent-base": { @@ -366,14 +375,11 @@ "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==" }, "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, @@ -609,12 +615,11 @@ } }, "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "version": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" } }, "argv": { @@ -652,17 +657,15 @@ "array-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", - "dev": true + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" }, "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "version": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "es-abstract": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz" } }, "array-union": { @@ -684,8 +687,7 @@ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" }, "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "version": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, @@ -2534,10 +2536,8 @@ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true + "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" }, "bcrypt": { "version": "1.0.3", @@ -2558,6 +2558,11 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" }, + "bindings": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", + "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" + }, "bl": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", @@ -2655,13 +2660,11 @@ "integrity": "sha1-FTn+656kduHRDRwwnWWb0WJZ/wo=" }, "brace-expansion": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", - "dev": true, "requires": { - "balanced-match": "^0.4.1", - "concat-map": "0.0.1" + "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" } }, "braces": { @@ -2721,8 +2724,7 @@ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "version": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, @@ -2762,6 +2764,14 @@ "integrity": "sha1-H5CV8u/UlA4LpsWZKreptkzDW6Q=", "dev": true }, + "canvas": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/canvas/-/canvas-1.6.9.tgz", + "integrity": "sha1-4/lc7HsWvy1vP8clwC2UDTJY9ps=", + "requires": { + "nan": "2.6.2" + } + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -2982,35 +2992,6 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "cucumber": { - "version": "github:xolvio/cucumber-js#cf953cb5b5de30dbcc279f59e4ebff3aa040071c", - "requires": { - "camel-case": "3.0.0", - "cli-table": "0.3.1", - "co": "4.6.0", - "colors": "1.1.2", - "commander": "2.9.0", - "duration": "0.2.0", - "fibers": "1.0.15", - "figures": "1.7.0", - "gherkin": "4.0.0", - "glob": "github:lucetius/node-glob#51c7ca6e69bfbd17db5f1ea710e3f2a7a457d9ce", - "is-generator": "1.0.3", - "lodash": "4.17.4", - "meteor-promise": "0.8.6", - "stack-chain": "1.3.7", - "stacktrace-js": "1.3.1" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3433,8 +3414,7 @@ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "version": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "codecov": { @@ -3661,8 +3641,9 @@ } }, "color-name": { - "version": "1.1.3", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "version": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "colors": { "version": "0.5.1", @@ -3699,7 +3680,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" } }, "commander": { @@ -3763,16 +3744,15 @@ } }, "concat-map": { - "version": "0.0.1", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "requires": { - "inherits": "2.0.3", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "readable-stream": "2.3.3", "typedarray": "0.0.6" }, @@ -3787,13 +3767,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "isarray": "1.0.0", - "process-nextick-args": "1.0.7", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "safe-buffer": "5.1.1", "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" } }, "safe-buffer": { @@ -3825,8 +3805,7 @@ "content-type-parser": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", - "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", - "dev": true + "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==" }, "convert-source-map": { "version": "1.5.1", @@ -3839,8 +3818,7 @@ "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" }, "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "crc": { @@ -3863,8 +3841,8 @@ "integrity": "sha1-zx7RXxKq1/FO9fLf4F5sQvke8Co=", "requires": { "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" }, "dependencies": { "asap": { @@ -3883,11 +3861,11 @@ "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", "requires": { "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", + "isomorphic-fetch": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "promise": "7.3.1", - "setimmediate": "1.0.5", + "setimmediate": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "ua-parser-js": "0.7.17" } }, @@ -3913,7 +3891,7 @@ "requires": { "lru-cache": "4.1.1", "shebang-command": "1.2.0", - "which": "1.2.14" + "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz" } }, "cryptiles": { @@ -4009,14 +3987,12 @@ "cssom": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", - "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", - "dev": true + "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=" }, "cssstyle": { "version": "0.2.37", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", - "dev": true, "requires": { "cssom": "0.3.2" } @@ -4026,6 +4002,134 @@ "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8=" }, + "cucumber": { + "version": "github:xolvio/cucumber-js#cf953cb5b5de30dbcc279f59e4ebff3aa040071c", + "requires": { + "camel-case": "3.0.0", + "cli-table": "0.3.1", + "co": "4.6.0", + "colors": "1.2.1", + "commander": "2.9.0", + "duration": "0.2.0", + "fibers": "1.0.15", + "figures": "1.7.0", + "gherkin": "4.0.0", + "glob": "7.1.2", + "is-generator": "1.0.3", + "lodash": "4.17.4", + "meteor-promise": "0.8.6", + "stack-chain": "1.3.7", + "stacktrace-js": "1.3.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "colors": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.1.tgz", + "integrity": "sha512-s8+wktIuDSLffCywiwSxQOMqtPxML11a/dtHE17tMn4B1MSWw/C22EKf7M2KGUBcDaVFEGT+S8N02geDXeuNKg==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.11" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + } + } + }, "d": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", @@ -4047,6 +4151,11 @@ "d3-array": "1.2.1" } }, + "d3-queue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/d3-queue/-/d3-queue-2.0.3.tgz", + "integrity": "sha1-B/vaOsrlNYqcUpmq+ICt8JU+0sI=" + }, "damerau-levenshtein": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz", @@ -4115,7 +4224,7 @@ "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" }, "deep-is": { - "version": "0.1.3", + "version": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, @@ -4142,13 +4251,12 @@ } }, "define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "version": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" + "foreach": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "object-keys": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz" } }, "del": { @@ -4160,9 +4268,9 @@ "globby": "5.0.0", "is-path-cwd": "1.0.0", "is-path-in-cwd": "1.0.0", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "rimraf": "2.6.2" }, "dependencies": { @@ -4172,14 +4280,13 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" } } } }, "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { @@ -4213,7 +4320,7 @@ "integrity": "sha512-y0tm5Pq6ywp3qSTZ1vPgVdAnbDEoeoc5wlOHXoY1c4Wug/a7JvqHIl7BTvwodaHmejWkK/9dSb3sCYfyo/om8A==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz" } }, "dom-align": { @@ -4330,11 +4437,10 @@ "dev": true }, "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "version": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "~0.4.13" + "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz" } }, "end-of-stream": { @@ -4426,12 +4532,11 @@ } }, "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "version": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" } }, "error-stack-parser": { @@ -4443,27 +4548,25 @@ } }, "es-abstract": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz", + "version": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz", "integrity": "sha1-JRAyY9xN7L2mDgxzfKMjE1GAJ+4=", "dev": true, "requires": { - "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-to-primitive": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "is-callable": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "is-regex": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz" } }, "es-to-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "version": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "dev": true, "requires": { - "is-callable": "^1.1.1", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.1" + "is-callable": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "is-date-object": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "is-symbol": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz" } }, "es5-ext": { @@ -4539,14 +4642,14 @@ } }, "escape-string-regexp": { - "version": "1.0.5", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "escodegen": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", - "dev": true, "requires": { "esprima": "3.1.3", "estraverse": "4.2.0", @@ -4558,38 +4661,32 @@ "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "esprima": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" }, "estraverse": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, "requires": { "prelude-ls": "1.1.2", "type-check": "0.3.2" @@ -4599,7 +4696,6 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, "requires": { "deep-is": "0.1.3", "fast-levenshtein": "2.0.6", @@ -4612,21 +4708,18 @@ "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, "optional": true }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, "requires": { "prelude-ls": "1.1.2" } @@ -4634,8 +4727,7 @@ "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" } } }, @@ -4691,11 +4783,11 @@ "eslint-scope": "3.7.1", "espree": "3.5.2", "esquery": "1.0.0", - "estraverse": "4.2.0", - "esutils": "2.0.2", + "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "file-entry-cache": "2.0.0", "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", + "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "globals": "11.0.1", "ignore": "3.3.7", "imurmurhash": "0.1.4", @@ -4703,19 +4795,19 @@ "is-resolvable": "1.0.0", "js-yaml": "3.10.0", "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", + "levn": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "lodash": "4.17.4", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "natural-compare": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "optionator": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "path-is-inside": "1.0.2", "pluralize": "7.0.0", "progress": "2.0.0", "require-uncached": "1.0.3", "semver": "5.4.1", "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "table": "4.0.2", "text-table": "0.2.0" }, @@ -4726,10 +4818,10 @@ "integrity": "sha1-s4u4h22ehr7plJVqBOch6IskjrI=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", + "co": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "fast-deep-equal": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "json-schema-traverse": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz" } }, "babel-code-frame": { @@ -4739,7 +4831,7 @@ "dev": true, "requires": { "chalk": "1.1.3", - "esutils": "2.0.2", + "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "js-tokens": "3.0.2" }, "dependencies": { @@ -4749,11 +4841,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", + "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" } }, "strip-ansi": { @@ -4762,7 +4854,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" } } } @@ -4774,7 +4866,7 @@ "dev": true, "requires": { "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "supports-color": "4.5.0" }, "dependencies": { @@ -4804,7 +4896,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" } }, "debug": { @@ -4813,7 +4905,7 @@ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" } }, "globals": { @@ -4834,8 +4926,8 @@ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "dev": true, "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" + "argparse": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "esprima": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz" } }, "semver": { @@ -4915,7 +5007,7 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" } }, "resolve": { @@ -4924,7 +5016,7 @@ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz" } } } @@ -4945,7 +5037,7 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" } } } @@ -4956,15 +5048,15 @@ "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==", "dev": true, "requires": { - "builtin-modules": "1.1.1", + "builtin-modules": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "contains-path": "0.1.0", "debug": "2.6.9", "doctrine": "1.5.0", "eslint-import-resolver-node": "0.3.1", "eslint-module-utils": "2.1.1", - "has": "1.0.1", + "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "lodash.cond": "4.5.2", - "minimatch": "3.0.4", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "read-pkg-up": "2.0.0" }, "dependencies": { @@ -4974,7 +5066,7 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" } }, "doctrine": { @@ -4983,7 +5075,7 @@ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { - "esutils": "2.0.2", + "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "isarray": "1.0.0" } }, @@ -5005,9 +5097,9 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", + "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "parse-json": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "strip-bom": "3.0.0" } }, @@ -5018,9 +5110,9 @@ "dev": true, "requires": { "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", + "is-builtin-module": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "validate-npm-package-license": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" } }, "path-type": { @@ -5029,7 +5121,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" } }, "read-pkg": { @@ -5049,7 +5141,7 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "2.1.0", + "find-up": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "read-pkg": "2.0.0" } }, @@ -5236,7 +5328,7 @@ "dev": true, "requires": { "doctrine": "2.0.2", - "has": "1.0.1", + "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "jsx-ast-utils": "2.0.1", "prop-types": "15.6.0" }, @@ -5247,7 +5339,7 @@ "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "dev": true, "requires": { - "array-includes": "3.0.3" + "array-includes": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz" } } } @@ -5264,8 +5356,8 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "4.2.0", - "estraverse": "4.2.0" + "esrecurse": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz" } }, "espree": { @@ -5279,8 +5371,7 @@ } }, "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "version": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", "integrity": "sha1-RJnt3NERDgshi6zy+n9/WfVcqAQ=", "dev": true }, @@ -5290,28 +5381,25 @@ "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz" } }, "esrecurse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "version": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", "dev": true, "requires": { - "estraverse": "^4.1.0", - "object-assign": "^4.0.1" + "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" } }, "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "version": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", "dev": true }, "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "version": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, @@ -5481,10 +5569,8 @@ "integrity": "sha1-HkW7vsxndLPBlfrSg1EJxtdIzD8=" }, "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", - "dev": true + "version": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" }, "fast-json-stable-stringify": { "version": "2.0.0", @@ -5492,7 +5578,7 @@ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "fast-levenshtein": { - "version": "2.0.6", + "version": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, @@ -5632,7 +5718,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" } }, "file": { @@ -5647,7 +5733,7 @@ "dev": true, "requires": { "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" } }, "filename-regex": { @@ -5773,11 +5859,11 @@ "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=" }, "find-up": { - "version": "2.1.0", + "version": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" } }, "flat-cache": { @@ -5788,7 +5874,7 @@ "requires": { "circular-json": "0.3.3", "del": "2.2.2", - "graceful-fs": "4.1.11", + "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "write": "0.2.1" } }, @@ -5806,14 +5892,12 @@ } }, "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "version": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", "dev": true }, "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { @@ -5874,9 +5958,8 @@ } }, "fs.realpath": { - "version": "1.0.0", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "1.1.3", @@ -6041,6 +6124,7 @@ "debug": { "version": "2.6.8", "bundled": true, + "dev": true, "optional": true, "requires": { "ms": "2.0.0" @@ -6090,6 +6174,7 @@ "form-data": { "version": "2.1.4", "bundled": true, + "dev": true, "optional": true, "requires": { "asynckit": "0.4.0", @@ -6175,6 +6260,7 @@ "har-validator": { "version": "4.2.1", "bundled": true, + "dev": true, "optional": true, "requires": { "ajv": "4.11.8", @@ -6230,7 +6316,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "optional": true, + "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -6299,6 +6385,7 @@ "assert-plus": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true } } @@ -6306,12 +6393,12 @@ "mime-db": { "version": "1.27.0", "bundled": true, - "optional": true + "dev": true }, "mime-types": { "version": "2.1.15", "bundled": true, - "optional": true, + "dev": true, "requires": { "mime-db": "1.27.0" } @@ -6319,7 +6406,7 @@ "minimatch": { "version": "3.0.4", "bundled": true, - "optional": true, + "dev": true, "requires": { "brace-expansion": "1.1.7" } @@ -6327,12 +6414,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "optional": true + "dev": true }, "mkdirp": { "version": "0.5.1", "bundled": true, - "optional": true, + "dev": true, "requires": { "minimist": "0.0.8" } @@ -6340,6 +6427,7 @@ "ms": { "version": "2.0.0", "bundled": true, + "dev": true, "optional": true }, "node-pre-gyp": { @@ -6383,16 +6471,18 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "optional": true + "dev": true }, "oauth-sign": { "version": "0.8.2", "bundled": true, + "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", "bundled": true, + "dev": true, "optional": true }, "once": { @@ -6405,6 +6495,7 @@ "os-homedir": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "os-tmpdir": { @@ -6755,9 +6846,8 @@ } }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "version": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", "dev": true }, "function.prototype.name": { @@ -6924,17 +7014,15 @@ "integrity": "sha1-edzgTRIj6kO0hip2vlzo+JwSwyw=" }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", - "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" } }, "glob-base": { @@ -6966,11 +7054,11 @@ "dev": true, "requires": { "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "arrify": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" } }, "globule": { @@ -7073,10 +7161,8 @@ "integrity": "sha1-2ezc4OnvS+pIGZD05ZC0slg8jbo=" }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true + "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "graceful-readlink": { "version": "1.0.1", @@ -7445,21 +7531,19 @@ } }, "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "version": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "dev": true, "requires": { - "function-bind": "^1.0.2" + "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" } }, "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" } }, "has-flag": { @@ -7600,7 +7684,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "dev": true, "requires": { "whatwg-encoding": "1.0.3" } @@ -7740,8 +7823,7 @@ "integrity": "sha512-9OLdC/9YxDvTFcgsH5t2BHCODHEotHCa6h7Ly0EUlUC7Y2GS09UeoHOGj3gWKQ3HCqXz8NlH4gOrK3NNc9vPuw==" }, "iconv-lite": { - "version": "0.4.17", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz", + "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz", "integrity": "sha1-T9qjs4rLwsAxsEXQ7c3+HsqxjI0=" }, "ignore": { @@ -7760,7 +7842,7 @@ "resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-2.6.0.tgz", "integrity": "sha512-Odw1bdKiHmOlmDWeJ/QY0fX1oZ21DxEhRQDQUdnnaozydt5RYkVoISGJn/LEkGUd4ADVheAU7jMtFU9JrdzvfA==", "requires": { - "invariant": "2.2.2" + "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz" } }, "imurmurhash": { @@ -7775,16 +7857,15 @@ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" }, "inflight": { - "version": "1.0.6", + "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" } }, "inherits": { - "version": "2.0.3", + "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { @@ -7832,7 +7913,7 @@ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "requires": { "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "supports-color": "4.5.0" } }, @@ -7841,7 +7922,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "requires": { - "color-name": "1.1.3" + "color-name": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" } }, "is-fullwidth-code-point": { @@ -7877,10 +7958,10 @@ } }, "invariant": { - "version": "2.2.2", + "version": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz" } }, "invert-kv": { @@ -7922,7 +8003,7 @@ } }, "is-arrayish": { - "version": "0.2.1", + "version": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, @@ -7940,17 +8021,15 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "version": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" } }, "is-callable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "version": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", "dev": true }, @@ -7964,8 +8043,7 @@ } }, "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "version": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", "dev": true }, @@ -8081,12 +8159,11 @@ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" }, "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "version": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "^1.0.1" + "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz" } }, "is-resolvable": { @@ -8099,8 +8176,7 @@ } }, "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "version": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-subset": { @@ -8110,14 +8186,12 @@ "dev": true }, "is-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "version": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", "dev": true }, "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "version": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-utf8": { @@ -8131,7 +8205,7 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { - "version": "2.0.0", + "version": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "ismobilejs": { @@ -8155,17 +8229,15 @@ } }, "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "version": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" + "node-fetch": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", + "whatwg-fetch": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz" } }, "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istanbul-api": { @@ -9988,7 +10060,7 @@ } }, "js-tokens": { - "version": "3.0.1", + "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" }, "js-yaml": { @@ -10076,10 +10148,8 @@ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true + "version": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" }, "json-stable-stringify": { "version": "1.0.1", @@ -10096,8 +10166,7 @@ "dev": true }, "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json5": { @@ -10250,6 +10319,92 @@ "resolved": "https://registry.npmjs.org/leaflet-graphicscale/-/leaflet-graphicscale-0.0.2.tgz", "integrity": "sha1-q2INKJ6acETC9RB8g74XhDrsUwM=" }, + "leaflet-headless": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/leaflet-headless/-/leaflet-headless-0.2.6.tgz", + "integrity": "sha1-Hqh4c/fuJj/JyI3xXsx4qZUdcsk=", + "requires": { + "canvas": "1.6.9", + "jsdom": "9.8.3", + "leaflet": "1.3.1", + "leaflet-image": "0.4.0", + "request": "2.83.0" + }, + "dependencies": { + "acorn": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=" + }, + "acorn-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", + "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=", + "requires": { + "acorn": "2.7.0" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "jsdom": { + "version": "9.8.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.8.3.tgz", + "integrity": "sha1-/eKcEJwyoRMeC2xlkU5kGY+Xw3A=", + "requires": { + "abab": "1.0.4", + "acorn": "2.7.0", + "acorn-globals": "1.0.9", + "array-equal": "1.0.0", + "content-type-parser": "1.0.2", + "cssom": "0.3.2", + "cssstyle": "0.2.37", + "escodegen": "1.9.0", + "html-encoding-sniffer": "1.0.2", + "iconv-lite": "0.4.19", + "nwmatcher": "1.4.3", + "parse5": "1.5.1", + "request": "2.83.0", + "sax": "1.2.4", + "symbol-tree": "3.2.2", + "tough-cookie": "2.3.3", + "webidl-conversions": "3.0.1", + "whatwg-encoding": "1.0.3", + "whatwg-url": "3.1.0", + "xml-name-validator": "2.0.1" + } + }, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-3.1.0.tgz", + "integrity": "sha1-e9yuSQ+SGu9kUftnOexrvY6Qe/Y=", + "requires": { + "tr46": "0.0.3", + "webidl-conversions": "3.0.1" + } + } + } + }, + "leaflet-image": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/leaflet-image/-/leaflet-image-0.4.0.tgz", + "integrity": "sha1-6E8i/2KI8JubDi9RpIUKnweWjME=", + "requires": { + "d3-queue": "2.0.3" + } + }, "leaflet-sleep": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/leaflet-sleep/-/leaflet-sleep-0.5.1.tgz", @@ -10267,12 +10422,12 @@ "dev": true }, "levn": { - "version": "0.3.0", + "version": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" } }, "load-json-file": { @@ -10334,12 +10489,12 @@ } }, "locate-path": { - "version": "2.0.0", + "version": "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-locate": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "path-exists": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" } }, "lodash": { @@ -10535,7 +10690,7 @@ "integrity": "sha1-TbcJ/IG8So/XEnpFilNGxc3OLGs=" }, "lodash.isobject": { - "version": "3.0.2", + "version": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=" }, "lodash.istypedarray": { @@ -10660,10 +10815,10 @@ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" }, "loose-envify": { - "version": "1.3.1", + "version": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz" } }, "lower-case": { @@ -10690,31 +10845,19 @@ } }, "map-common-utils": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/map-common-utils/-/map-common-utils-0.5.0.tgz", - "integrity": "sha512-dldbEOEMxlrzSWg+OgSJQgODW58D4ZYNCYVH8+kml+UY8XEB6Rpo3FO4YkMPqIqU5XlBIadPad9N2Br89NBBOQ==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/map-common-utils/-/map-common-utils-0.2.0.tgz", + "integrity": "sha512-kI71M3pLACkGlrGHzOnC31tP3uSrNxyo9l1ABGXkGuvDZ4M4IvA2K1geukQih/iJLTnZXjbO5tr9/9qpqgxyqw==", "requires": { "@turf/bbox": "6.0.1", "@turf/bbox-polygon": "6.0.1", - "@turf/circle": "6.0.1", "@turf/destination": "6.0.1", "@turf/helpers": "6.1.4", "@turf/invariant": "6.1.2", - "@turf/truncate": "6.0.1", - "@turf/union": "6.0.3", "spherical": "0.2.0", "wgs84": "0.0.0" } }, - "martinez-polygon-clipping": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/martinez-polygon-clipping/-/martinez-polygon-clipping-0.4.3.tgz", - "integrity": "sha512-3ZNS0ksKhWTLsmCUkNf+/UimndZ5U2cVOS0I+IjiwF+M23E77TmeOZSmbRJbfCoQUog/vcQ42s3DXrhgOhgPqw==", - "requires": { - "splaytree": "0.1.4", - "tinyqueue": "1.2.3" - } - }, "maxmind": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/maxmind/-/maxmind-2.3.0.tgz", @@ -10778,7 +10921,7 @@ "process": "0.11.10", "punycode": "1.4.1", "querystring-es3": "0.2.1", - "readable-stream": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12", + "readable-stream": "git+https://github.com/meteor/readable-stream.git#d64a64aa6061b9b6855feff4d09e58fb3b2e4502", "stream-browserify": "2.0.1", "string_decoder": "1.0.3", "timers-browserify": "1.4.2", @@ -11293,9 +11436,9 @@ } }, "readable-stream": { - "version": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12", + "version": "git+https://github.com/meteor/readable-stream.git#d64a64aa6061b9b6855feff4d09e58fb3b2e4502", "requires": { - "inherits": "2.0.4", + "inherits": "2.0.3", "isarray": "1.0.0", "process-nextick-args": "1.0.7", "safe-buffer": "5.1.1", @@ -11304,9 +11447,9 @@ }, "dependencies": { "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" } } }, @@ -11347,7 +11490,7 @@ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "requires": { "inherits": "2.0.1", - "readable-stream": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12" + "readable-stream": "git+https://github.com/meteor/readable-stream.git#d64a64aa6061b9b6855feff4d09e58fb3b2e4502" } }, "string_decoder": { @@ -11469,12 +11612,10 @@ "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, + "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "requires": { - "brace-expansion": "1.1.7" + "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz" } }, "minimist": { @@ -11483,19 +11624,15 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, "requires": { - "minimist": "0.0.8" + "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" }, "dependencies": { "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } }, @@ -11822,10 +11959,8 @@ } }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "version": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "mute-stream": { "version": "0.0.7", @@ -11838,7 +11973,7 @@ "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=" }, "natural-compare": { - "version": "1.4.0", + "version": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, @@ -11867,12 +12002,11 @@ } }, "node-fetch": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", + "version": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", "integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=", "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" + "encoding": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "is-stream": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" } }, "node-gcm": { @@ -11900,7 +12034,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" } }, "debug": { @@ -11936,15 +12070,15 @@ "caseless": "0.12.0", "combined-stream": "1.0.6", "extend": "3.0.2", - "forever-agent": "0.6.1", + "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "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", + "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "mime-types": "2.1.17", - "oauth-sign": "0.8.2", + "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", "performance-now": "2.1.0", "qs": "6.5.1", "safe-buffer": "5.1.2", @@ -12215,16 +12349,16 @@ "caseless": "0.12.0", "combined-stream": "1.0.6", "extend": "3.0.2", - "forever-agent": "0.6.1", + "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "form-data": "2.1.4", "har-validator": "4.2.1", "hawk": "3.1.3", "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", + "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "mime-types": "2.1.17", - "oauth-sign": "0.8.2", + "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", "performance-now": "0.2.0", "qs": "6.4.0", "safe-buffer": "5.1.2", @@ -16329,16 +16463,14 @@ "nwmatcher": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", - "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", - "dev": true + "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==" }, "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" }, "object-assign": { - "version": "4.1.1", + "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-is": { @@ -16348,8 +16480,7 @@ "dev": true }, "object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "version": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", "dev": true }, @@ -16603,11 +16734,10 @@ } }, "once": { - "version": "1.4.0", + "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { - "wrappy": "1" + "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" } }, "onetime": { @@ -16635,22 +16765,20 @@ } }, "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "version": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "fast-levenshtein": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "levn": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" }, "dependencies": { "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true } @@ -16668,7 +16796,7 @@ } }, "os-tmpdir": { - "version": "1.0.2", + "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { @@ -16705,17 +16833,16 @@ "dev": true }, "p-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "version": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", "dev": true }, "p-locate": { - "version": "2.0.0", + "version": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz" } }, "p-map": { @@ -16735,11 +16862,11 @@ } }, "parse-json": { - "version": "2.2.0", + "version": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz" } }, "parse5": { @@ -16752,14 +16879,13 @@ } }, "path-exists": { - "version": "3.0.0", + "version": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { - "version": "1.0.1", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", @@ -16772,8 +16898,7 @@ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "version": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, @@ -17082,23 +17207,21 @@ } }, "pify": { - "version": "2.3.0", + "version": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" } }, "pkg-dir": { @@ -17117,7 +17240,7 @@ "dev": true, "requires": { "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" } }, "path-exists": { @@ -17126,7 +17249,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" } } } @@ -17148,7 +17271,7 @@ "integrity": "sha1-DfvC3/lsRRuzMu3Pz6r1ZtMx1bM=" }, "prelude-ls": { - "version": "1.1.2", + "version": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, @@ -17418,7 +17541,7 @@ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" }, "process-nextick-args": { - "version": "1.0.7", + "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" }, "progress": { @@ -17448,8 +17571,8 @@ "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", "requires": { "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" }, "dependencies": { "asap": { @@ -17468,11 +17591,11 @@ "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", "requires": { "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", + "isomorphic-fetch": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "promise": "7.3.1", - "setimmediate": "1.0.5", + "setimmediate": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "ua-parser-js": "0.7.17" } }, @@ -17496,7 +17619,7 @@ "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.0.1.tgz", "integrity": "sha1-pXvUgQ6C0no/9DF+zBtK0AX3moI=", "requires": { - "warning": "3.0.0" + "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz" } }, "prr": { @@ -17647,7 +17770,7 @@ "rc-tooltip": "3.7.0", "rc-util": "4.3.1", "shallowequal": "1.0.2", - "warning": "3.0.0" + "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz" } }, "rc-tooltip": { @@ -17731,7 +17854,7 @@ "integrity": "sha1-a4P0C2s27kBzXL1hJes/E84c3ck=", "requires": { "fbjs": "0.8.16", - "object-assign": "4.1.1" + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" }, "dependencies": { "asap": { @@ -17750,11 +17873,11 @@ "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", "requires": { "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", + "isomorphic-fetch": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "promise": "7.3.1", - "setimmediate": "1.0.5", + "setimmediate": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "ua-parser-js": "0.7.17" } }, @@ -17781,13 +17904,13 @@ "babel-runtime": "6.26.0", "classnames": "2.2.5", "dom-helpers": "3.2.1", - "invariant": "2.2.2", + "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "keycode": "2.1.9", "prop-types": "15.6.0", "prop-types-extra": "1.0.1", "react-overlays": "0.7.4", "uncontrollable": "4.1.0", - "warning": "3.0.0" + "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz" } }, "react-confirm": { @@ -17931,7 +18054,7 @@ "dom-helpers": "3.2.1", "prop-types": "15.6.0", "prop-types-extra": "1.0.1", - "warning": "3.0.0" + "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz" } }, "react-places-autocomplete": { @@ -18111,9 +18234,9 @@ "chain-function": "1.0.0", "classnames": "2.2.5", "dom-helpers": "3.2.1", - "loose-envify": "1.3.1", + "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "prop-types": "15.6.0", - "warning": "3.0.0" + "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz" } }, "reactstrap": { @@ -18123,7 +18246,7 @@ "requires": { "classnames": "2.2.5", "lodash.isfunction": "3.0.8", - "lodash.isobject": "3.0.2", + "lodash.isobject": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", "lodash.tonumber": "4.0.3", "prop-types": "15.6.0", "react-popper": "0.7.4", @@ -18621,7 +18744,7 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { "onetime": "2.0.1", - "signal-exit": "3.0.2" + "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz" } }, "ret": { @@ -18827,8 +18950,16 @@ "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "segfault-handler": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/segfault-handler/-/segfault-handler-1.0.0.tgz", + "integrity": "sha1-neUrxMtUFpNQ8PQpV3L8JFKI8ZM=", + "requires": { + "bindings": "1.3.0", + "nan": "2.6.2" + } }, "selenium-standalone": { "version": "6.14.0", @@ -19137,8 +19268,7 @@ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" }, "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "version": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "shallowequal": { @@ -19171,7 +19301,7 @@ "integrity": "sha1-1DYvyRTdKA3fblIr5AiyEgMgg0Y=" }, "signal-exit": { - "version": "3.0.2", + "version": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "simpl-schema": { @@ -19292,23 +19422,20 @@ "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=" }, "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "version": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "dev": true, "requires": { - "spdx-license-ids": "^1.0.2" + "spdx-license-ids": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz" } }, "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "version": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", "dev": true }, "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "version": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", "dev": true }, @@ -19320,13 +19447,8 @@ "wgs84": "0.0.0" } }, - "splaytree": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-0.1.4.tgz", - "integrity": "sha512-D50hKrjZgBzqD3FT2Ek53f2dcDLAQT8SSGrzj3vidNH5ISRgceeGVJ2dQIthKOuayqFXfFjXheHNo4bbt9LhRQ==" - }, "sprintf-js": { - "version": "1.0.3", + "version": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, @@ -19521,21 +19643,18 @@ "dev": true }, "strip-json-comments": { - "version": "2.0.1", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true + "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "symbol-tree": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", - "dev": true + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=" }, "table": { "version": "4.0.2", @@ -19557,10 +19676,10 @@ "integrity": "sha1-s4u4h22ehr7plJVqBOch6IskjrI=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", + "co": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "fast-deep-equal": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "json-schema-traverse": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz" } }, "ansi-regex": { @@ -19585,7 +19704,7 @@ "dev": true, "requires": { "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "supports-color": "4.5.0" } }, @@ -19595,7 +19714,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" } }, "is-fullwidth-code-point": { @@ -19741,17 +19860,12 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, - "tinyqueue": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-1.2.3.tgz", - "integrity": "sha512-Qz9RgWuO9l8lT+Y9xvbzhPT2efIUIFd69N7eF7tJ9lnQl0iLj1M7peK7IoUGZL9DJHw9XftqLreccfxcQgYLxA==" - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" } }, "tmpl": { @@ -19783,8 +19897,7 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "trim-right": { "version": "1.0.1", @@ -19821,11 +19934,11 @@ } }, "type-check": { - "version": "0.3.2", + "version": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" } }, "type-detect": { @@ -19878,7 +19991,7 @@ "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-4.1.0.tgz", "integrity": "sha1-4DWCkSUuGGUiLZCTmxny9J+Bwak=", "requires": { - "invariant": "2.2.2" + "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz" } }, "underscore": { @@ -19928,7 +20041,7 @@ "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=" }, "util-deprecate": { - "version": "1.0.2", + "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "valid-data-url": { @@ -19937,13 +20050,12 @@ "integrity": "sha512-p3bCVl3Vrz42TV37a1OjagyLLd6qQAXBDWarIazuo7NQzCt8Kw8ZZwSAbUVPGlz5ubgbgJmgT0KRjLeCFNrfoQ==" }, "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "version": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "dev": true, "requires": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" + "spdx-correct": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "spdx-expression-parse": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz" } }, "value-equal": { @@ -19983,10 +20095,10 @@ } }, "warning": { - "version": "3.0.0", + "version": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz" } }, "watch": { @@ -20235,7 +20347,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", - "dev": true, "requires": { "iconv-lite": "0.4.19" }, @@ -20243,14 +20354,12 @@ "iconv-lite": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", - "dev": true + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" } } }, "whatwg-fetch": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "version": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" }, "whatwg-url": { @@ -20272,10 +20381,10 @@ } }, "which": { - "version": "1.2.14", + "version": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", "requires": { - "isexe": "^2.0.0" + "isexe": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" } }, "which-module": { @@ -20395,9 +20504,8 @@ } }, "wrappy": { - "version": "1.0.2", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { "version": "0.2.1", @@ -20405,7 +20513,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" } }, "write-file-atomic": { @@ -20436,8 +20544,7 @@ "xml-name-validator": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", - "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", - "dev": true + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=" }, "xolvio-ddp": { "version": "0.12.3", diff --git a/package.json b/package.json index 46fd615..150586b 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "tcef", "private": true, "scripts": { - "start": "QT_QPA_PLATFORM='' MONGO_URL=mongodb://fuegos:fuegos@localhost:27017/fuegos meteor --settings settings-development.json", + "start": "QT_QPA_PLATFORM='' MONGO_URL=mongodb://localhost:27017/fuegos meteor --settings settings-development.json", "test": "jest" }, "dependencies": { @@ -10,6 +10,9 @@ "@cleverbeagle/dates": "^0.5.1", "@cleverbeagle/seeder": "^1.3.1", "@turf/buffer": "^5.1.5", + "@turf/circle": "^6.0.1", + "@turf/truncate": "^5.1.5", + "@turf/union": "^5.1.5", "babel-runtime": "^6.26.0", "bcrypt": "^1.0.3", "bootstrap-carousel-swipe": "0.0.6", @@ -39,10 +42,11 @@ "juice": "^4.2.2", "leaflet": "^1.3.1", "leaflet-graphicscale": "0.0.2", + "leaflet-headless": "^0.2.6", "leaflet-sleep": "^0.5.1", "lodash": "^4.17.4", "loms.perlin": "^1.0.1", - "map-common-utils": "^0.5.0", + "map-common-utils": "^0.2.0", "maxmind": "^2.3.0", "meteor-accounts-t9n": "^2.0.3", "meteor-node-stubs": "^0.3.2", @@ -82,6 +86,7 @@ "react-router-hash-link": "^1.1.1", "react-share": "^2.0.0", "reactstrap": "^5.0.0-alpha.3", + "segfault-handler": "^1.0.0", "simpl-schema": "^1.5.0", "simple-line-icons": "^2.4.1", "store": "^2.0.12", diff --git a/packages/meteor-comments-ui b/packages/meteor-comments-ui index 4761da9..3346b6d 160000 --- a/packages/meteor-comments-ui +++ b/packages/meteor-comments-ui @@ -1 +1 @@ -Subproject commit 4761da921f467838a2c01b34e84a7703ee49b12c +Subproject commit 3346b6db70c153b1dd66e6a16a0ad28f10ebf740 diff --git a/test/activeFiresUnion.test.js b/test/activeFiresUnion.test.js deleted file mode 100644 index 1a1a52e..0000000 --- a/test/activeFiresUnion.test.js +++ /dev/null @@ -1,29 +0,0 @@ -/* eslint-env mocha */ -/* eslint-disable func-names, prefer-arrow-callback */ -/* eslint-disable import/no-absolute-path */ - -import { chai } from 'meteor/practicalmeteor:chai'; -import ActiveFiresUnion from '/imports/api/ActiveFiresUnion/ActiveFiresUnion'; - -const centerid = { type: 'Point', coordinates: [-5.905956029891968, 43.55727622097011] }; -const shape = { type: 'Polygon', coordinates: [[[-5.9084, 43.5558], [-5.906, 43.5558], [-5.906, 43.5566], [-5.9036, 43.5566], [-5.9036, 43.5583], [-5.9061, 43.5583], [-5.9061, 43.558], [-5.9084, 43.558], [-5.9084, 43.5558]]] }; -const fireUnion = { centerid, shape, when: Date('2018-05-02T16:11:04.617Z') }; - -describe('activeFireUnion insert', () => { - it('should insert fire union', () => { - // Remove previous test register - const alreadyInserted = ActiveFiresUnion.findOne({ centerid }); - if (alreadyInserted) { - ActiveFiresUnion.remove(alreadyInserted._id); - } - - const insertedId = ActiveFiresUnion.insert(fireUnion); - ActiveFiresUnion.schema.validate(fireUnion); - - const inserted = ActiveFiresUnion.findOne(insertedId); - delete inserted._id; - chai.expect(fireUnion).to.deep.equal(inserted); - ActiveFiresUnion.remove(insertedId); - chai.expect(ActiveFiresUnion.find({ _id: inserted }).count()).equal(0); - }); -});