From 7b5f17fbe839e885532143df4936999f6d633475 Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 28 Oct 2018 20:27:38 +0100 Subject: [PATCH 01/19] Added activeFiresUnion (wip) --- .../api/ActiveFiresUnion/ActiveFiresUnion.js | 71 +++++++++++++++++++ imports/startup/server/migrations.js | 13 ++++ test/activeFiresUnion.test.js | 29 ++++++++ 3 files changed, 113 insertions(+) create mode 100644 imports/api/ActiveFiresUnion/ActiveFiresUnion.js create mode 100644 test/activeFiresUnion.test.js diff --git a/imports/api/ActiveFiresUnion/ActiveFiresUnion.js b/imports/api/ActiveFiresUnion/ActiveFiresUnion.js new file mode 100644 index 0000000..2437e54 --- /dev/null +++ b/imports/api/ActiveFiresUnion/ActiveFiresUnion.js @@ -0,0 +1,71 @@ +/* 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/startup/server/migrations.js b/imports/startup/server/migrations.js index defc7c1..e3bfac9 100644 --- a/imports/startup/server/migrations.js +++ b/imports/startup/server/migrations.js @@ -10,6 +10,7 @@ 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(() => { @@ -240,6 +241,18 @@ 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/test/activeFiresUnion.test.js b/test/activeFiresUnion.test.js new file mode 100644 index 0000000..1a1a52e --- /dev/null +++ b/test/activeFiresUnion.test.js @@ -0,0 +1,29 @@ +/* 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); + }); +}); From 6abe668740a189ebb6de65693bebe0b76c6995b2 Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 18 Nov 2018 11:48:03 +0100 Subject: [PATCH 02/19] Added fires union (wip) --- imports/api/ActiveFires/ActiveFires.js | 6 +- .../ActiveFiresUnion/server/publications.js | 78 +++++++++++++++++++ imports/startup/server/api.js | 1 + imports/ui/components/Maps/FireCircleMark.js | 12 ++- imports/ui/components/Maps/FireIconMark.js | 15 +--- imports/ui/components/Maps/FireListUnion.js | 22 ++++++ imports/ui/components/Maps/FirePixel.js | 19 ++--- imports/ui/components/Maps/FirePolygonMark.js | 48 ++++++++++++ imports/ui/pages/Fires/Fires.js | 20 ++--- imports/ui/pages/FiresMap/FiresMap.js | 27 ++++++- package-lock.json | 6 +- package.json | 2 +- 12 files changed, 216 insertions(+), 40 deletions(-) create mode 100644 imports/api/ActiveFiresUnion/server/publications.js create mode 100644 imports/ui/components/Maps/FireListUnion.js create mode 100644 imports/ui/components/Maps/FirePolygonMark.js diff --git a/imports/api/ActiveFires/ActiveFires.js b/imports/api/ActiveFires/ActiveFires.js index 79437af..16e2760 100644 --- a/imports/api/ActiveFires/ActiveFires.js +++ b/imports/api/ActiveFires/ActiveFires.js @@ -1,5 +1,6 @@ /* eslint-disable consistent-return */ +import { Meteor } from 'meteor/meteor'; import { Mongo } from 'meteor/mongo'; import SimpleSchema from 'simpl-schema'; import firesCommonSchema from '../Common/FiresSchema'; @@ -18,8 +19,11 @@ ActiveFires.deny({ remove: () => true }); +const activeFiresSchema = firesCommonSchema; -ActiveFires.schema = new SimpleSchema(firesCommonSchema); +activeFiresSchema.fireUnion = { type: Meteor.Collection.ObjectID, optional: true, blackbox: true }; + +ActiveFires.schema = new SimpleSchema(activeFiresSchema); ActiveFires.attachSchema(ActiveFires.schema); diff --git a/imports/api/ActiveFiresUnion/server/publications.js b/imports/api/ActiveFiresUnion/server/publications.js new file mode 100644 index 0000000..9ea010c --- /dev/null +++ b/imports/api/ActiveFiresUnion/server/publications.js @@ -0,0 +1,78 @@ +/* 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); + + 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() { + if (!Meteor.isDevelopment) return this.ready(); // empty + return ActiveFiresUnion.find({}, { limit: 1, sort: { when: -1 } }); +}); diff --git a/imports/startup/server/api.js b/imports/startup/server/api.js index 73f1fa2..a6044b4 100644 --- a/imports/startup/server/api.js +++ b/imports/startup/server/api.js @@ -9,6 +9,7 @@ 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/ui/components/Maps/FireCircleMark.js b/imports/ui/components/Maps/FireCircleMark.js index e4a3460..901d905 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 { Circle } from 'react-leaflet'; +import { GeoJSON } 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,22 +22,26 @@ 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 94d93a0..ab24da4 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 { onMarkClick } from './MarkListeners'; import { translate } from 'react-i18next'; +import { onMarkClick } from './MarkListeners'; import FirePopup from './FirePopup'; class FireIconMark extends Component { @@ -30,17 +30,7 @@ class FireIconMark extends Component { render() { const { - lat, - lon, - scan, - nasa, - id, - history, - falsePositives, - industries, - neighbour, - when, - t + lat, lon, scan, track, nasa, id, history, falsePositives, industries, neighbour, when, t } = this.props; return (
@@ -79,6 +69,7 @@ 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 new file mode 100644 index 0000000..3b094c0 --- /dev/null +++ b/imports/ui/components/Maps/FireListUnion.js @@ -0,0 +1,22 @@ +/* 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 c81b547..4efcabe 100644 --- a/imports/ui/components/Maps/FirePixel.js +++ b/imports/ui/components/Maps/FirePixel.js @@ -3,31 +3,32 @@ import React from 'react'; import { CircleMarker } from 'react-leaflet'; import PropTypes from 'prop-types'; -import FirePopup from './FirePopup'; import { translate } from 'react-i18next'; +import FirePopup from './FirePopup'; /* Less acurate (1 pixel per fire) but faster */ const FirePixel = ({ - lat, lon, nasa, id, when, t, history + lat, lon, nasa, id, when, t, history, track }) => ( ); - 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 new file mode 100644 index 0000000..92e3640 --- /dev/null +++ b/imports/ui/components/Maps/FirePolygonMark.js @@ -0,0 +1,48 @@ +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/pages/Fires/Fires.js b/imports/ui/pages/Fires/Fires.js index 0e4271a..ed7ef58 100644 --- a/imports/ui/pages/Fires/Fires.js +++ b/imports/ui/pages/Fires/Fires.js @@ -10,7 +10,8 @@ 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, Circle } from 'react-leaflet'; +import { Map, GeoJSON } from 'react-leaflet'; +import { rectangleAround } from 'map-common-utils'; import Blaze from 'meteor/gadicc:blaze-react-component'; import DefMapLayers from '/imports/ui/components/Maps/DefMapLayers'; import NotFound from '/imports/ui/pages/NotFound/NotFound'; @@ -115,8 +116,9 @@ 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 }); } - - return (fire && !loading ? ( + const ready = fire && !loading; + const rect = ready ? rectangleAround({ lat: fire.lat, lon: fire.lon }, fire.track, fire.track) : null; + return (ready ? (
{t('AppName')}: {t('Información adicional sobre fuego')} @@ -137,13 +139,13 @@ class Fire extends React.Component { zoom={13} > - { this.circle = circle; this.handleLeafletCircleLoad(circle); }} /> diff --git a/imports/ui/pages/FiresMap/FiresMap.js b/imports/ui/pages/FiresMap/FiresMap.js index a5573b5..09ceacd 100644 --- a/imports/ui/pages/FiresMap/FiresMap.js +++ b/imports/ui/pages/FiresMap/FiresMap.js @@ -23,9 +23,11 @@ import 'leaflet-sleep/Leaflet.Sleep.js'; import geolocation from '/imports/startup/client/geolocation'; import CenterInMyPosition from '/imports/ui/components/CenterInMyPosition/CenterInMyPosition'; import FireList from '/imports/ui/components/Maps/FireList'; +import FireListUnion from '/imports/ui/components/Maps/FireListUnion'; import subsUnion from '/imports/ui/components/Maps/SubsUnion/SubsUnion'; import DefMapLayers from '/imports/ui/components/Maps/DefMapLayers'; import ActiveFiresCollection from '/imports/api/ActiveFires/ActiveFires'; +import ActiveFiresUnion from '/imports/api/ActiveFiresUnion/ActiveFiresUnion'; import FireAlertsCollection from '/imports/api/FireAlerts/FireAlerts'; import IndustriesCollection, { industriesRemap } from '/imports/api/Industries/Industries'; import FalsePositivesCollection, { falsePositivesRemap } from '/imports/api/FalsePositives/FalsePositives'; @@ -202,6 +204,7 @@ class FiresMap extends React.Component { if (Meteor.isDevelopment && this.props.activefires.length === 1) console.log(`Active fire: ${JSON.stringify(this.props.activefires[0])}`); if (Meteor.isDevelopment) console.log(`Active fires total: ${this.props.activefires.length}`); + if (Meteor.isDevelopment) console.log(`Active fires union total: ${this.props.activefiresunion.length}`); if (Meteor.isDevelopment) console.log(`False positives total: ${this.props.falsePositives.length}`); if (Meteor.isDevelopment) console.log(`Fire alerts total: ${this.props.firealerts.length}`); if (Meteor.isDevelopment) console.log(`Industries total: ${this.props.industries.length}`); @@ -307,6 +310,14 @@ 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'); @@ -422,6 +436,14 @@ 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, @@ -442,6 +464,7 @@ 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' }); @@ -453,13 +476,15 @@ 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()), + loading: Meteor.status().status !== 'connected' || !subscription ? true : !(subscription.ready() && settingsSubs.ready() && alertSubscription.ready() && settingsSubs.ready() && subscriptionUnion.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/package-lock.json b/package-lock.json index cdefe5b..77f558f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10835,9 +10835,9 @@ } }, "map-common-utils": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/map-common-utils/-/map-common-utils-0.4.0.tgz", - "integrity": "sha512-GjLGyIfusloAGwtaP7H15yzwmrMoHYVvx3+L5xiDBpjbRsgMphaaw+r+in0phwuQZApmGoA+VWV6ttQfTWqwWw==", + "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==", "requires": { "@turf/bbox": "6.0.1", "@turf/bbox-polygon": "6.0.1", diff --git a/package.json b/package.json index b54e71b..76be651 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "leaflet-sleep": "^0.5.1", "lodash": "^4.17.4", "loms.perlin": "^1.0.1", - "map-common-utils": "^0.4.0", + "map-common-utils": "^0.5.0", "maxmind": "^2.3.0", "meteor-accounts-t9n": "^2.0.3", "meteor-node-stubs": "^0.3.2", From 3f8bc3666b06956813cf5344d6f96dd64eff65c3 Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 18 Nov 2018 13:08:36 +0100 Subject: [PATCH 03/19] Fixed index DOM warning. Google Play btn height --- imports/ui/pages/Index/Index.js | 4 ++-- imports/ui/pages/Index/Index.scss | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/imports/ui/pages/Index/Index.js b/imports/ui/pages/Index/Index.js index 6735852..9986fba 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 3fb18b4..527aa93 100644 --- a/imports/ui/pages/Index/Index.scss +++ b/imports/ui/pages/Index/Index.scss @@ -77,3 +77,7 @@ } } } + +.android-btn > div { + height: 50px !important; +} From 266707052c6a2364e5c6276e4d8906897f6c5db4 Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 18 Nov 2018 14:27:34 +0100 Subject: [PATCH 04/19] Better error message --- imports/api/Fires/server/publications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imports/api/Fires/server/publications.js b/imports/api/Fires/server/publications.js index acb4d1e..9da7ad4 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('Undefined unsealed'); + throw Error(`Fail to unseal ${fireEnc}`); } const w = unsealed.when; unsealed.when = new Date(w); From 8903c765e3f1c1b53bd9c30defbc9333e68d0df7 Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 18 Nov 2018 14:27:51 +0100 Subject: [PATCH 05/19] Minor refactor --- imports/ui/pages/Fires/Fires.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/imports/ui/pages/Fires/Fires.js b/imports/ui/pages/Fires/Fires.js index ed7ef58..2647992 100644 --- a/imports/ui/pages/Fires/Fires.js +++ b/imports/ui/pages/Fires/Fires.js @@ -140,13 +140,12 @@ class Fire extends React.Component { > { this.circle = circle; this.handleLeafletCircleLoad(circle); }} data={rect} color="red" stroke width="1" - fillOpacity="0.0" - ref={(circle) => { this.circle = circle; this.handleLeafletCircleLoad(circle); }} /> Date: Sun, 18 Nov 2018 15:04:46 +0100 Subject: [PATCH 06/19] Removed watch to test --- cucumber/features/pages.feature | 1 - 1 file changed, 1 deletion(-) diff --git a/cucumber/features/pages.feature b/cucumber/features/pages.feature index fd2193b..0807c2c 100644 --- a/cucumber/features/pages.feature +++ b/cucumber/features/pages.feature @@ -40,7 +40,6 @@ 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 From df51368d50a7b094c4f6de80ff7fcc0a88497860 Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 18 Nov 2018 15:05:04 +0100 Subject: [PATCH 07/19] Better log in error --- imports/api/Fires/server/publications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imports/api/Fires/server/publications.js b/imports/api/Fires/server/publications.js index 9da7ad4..3862beb 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(`Fail to unseal '${fireEnc}'`); } const w = unsealed.when; unsealed.when = new Date(w); From 564b9e8ead3535efc5d5f12123169562fd3c3f83 Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 18 Nov 2018 15:43:48 +0100 Subject: [PATCH 08/19] Trying to fix race condition in i18n load --- imports/ui/layouts/App/App.js | 116 +++++++++++++++++----------------- 1 file changed, 59 insertions(+), 57 deletions(-) diff --git a/imports/ui/layouts/App/App.js b/imports/ui/layouts/App/App.js index d991262..4aeef3a 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,7 +186,9 @@ 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; - // console.log(`i18n ready?: ${i18nReady.get()}`); + Meteor.autorun(() => { + console.log(`i18n ready?: ${i18nReady.get()}`); + }); return { loading, loggingIn, From 5f9a84dfd7627881cc75a216896c46d6cd41b1de Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 18 Nov 2018 15:45:14 +0100 Subject: [PATCH 09/19] Unify don't calc boundaries of empty union --- imports/ui/components/Maps/SubsUnion/Unify.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/imports/ui/components/Maps/SubsUnion/Unify.js b/imports/ui/components/Maps/SubsUnion/Unify.js index 469405a..873dcbf 100644 --- a/imports/ui/components/Maps/SubsUnion/Unify.js +++ b/imports/ui/components/Maps/SubsUnion/Unify.js @@ -2,7 +2,8 @@ import { calcUnion as calcUnionWoBounds } from 'map-common-utils'; const calcUnion = (L, subs, decorated, typeCircle) => { const unionJson = calcUnionWoBounds(subs, decorated, typeCircle); - return [unionJson, L.geoJSON(unionJson).getBounds()]; + // return [unionJson, L.geoJSON(unionJson).getBounds()]; + return [unionJson, unionJson === null ? null : L.geoJSON(unionJson).getBounds()]; }; export default calcUnion; From 1fdf86dd47010d6b97e8924844a322b322b243d9 Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 18 Nov 2018 16:24:49 +0100 Subject: [PATCH 10/19] Union of subs 'null' when app is initialized --- imports/ui/pages/Subscriptions/SubscriptionsMap.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/imports/ui/pages/Subscriptions/SubscriptionsMap.js b/imports/ui/pages/Subscriptions/SubscriptionsMap.js index a7e7ab2..52d6874 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'); - // console.log(map); - if (map) { + if (map && this.props.userSubs !== 'null') { + // console.log(`Union of ${this.props.userSubs}`); this.state.union = subsUnion(this.state.union, { map, subs: this.props.userSubs, From 423dbc5ed97328dba4941847dda4b665250d4a74 Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 18 Nov 2018 18:01:17 +0100 Subject: [PATCH 11/19] Added optional chimp configuration --- cucumber/chimp-config.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 cucumber/chimp-config.js diff --git a/cucumber/chimp-config.js b/cucumber/chimp-config.js new file mode 100644 index 0000000..7ec19dc --- /dev/null +++ b/cucumber/chimp-config.js @@ -0,0 +1,29 @@ +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 + } + } +}; From c4cb52abaf7e2c2192423624c3133095a1c283cf Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 18 Nov 2018 18:01:38 +0100 Subject: [PATCH 12/19] Improved chimp command in README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 65ff8f1..4417536 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 -chimp --watch --ddp=http://localhost:3000 --path=cucumber +node_modules/.bin/chimp --watch --ddp=http://localhost:3000 --path=cucumber # and -chimp --ddp=http://localhost:3000 --path=cucumber +node_modules/.bin/chimp --ddp=http://localhost:3000 --path=cucumber ``` From b9457fe141db31b0604ac438aceb98a8e297097f Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 23 Dec 2018 13:31:41 +0100 Subject: [PATCH 13/19] Minor changes in fires union --- .../api/ActiveFiresUnion/server/publications.js | 6 ++++-- imports/ui/components/Maps/FireCircleMark.js | 2 +- imports/ui/pages/FiresMap/FiresMap.js | 15 +-------------- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/imports/api/ActiveFiresUnion/server/publications.js b/imports/api/ActiveFiresUnion/server/publications.js index 9ea010c..6a126d8 100644 --- a/imports/api/ActiveFiresUnion/server/publications.js +++ b/imports/api/ActiveFiresUnion/server/publications.js @@ -67,12 +67,14 @@ Meteor.publish('activefiresunionmyloc', function activeInMyLoc(northEastLng, nor check(northEastLat, NumberBetween(-90, 90)); check(withMarks, Boolean); - if (!Meteor.isDevelopment) return this.ready(); // empty + // 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() { - if (!Meteor.isDevelopment) return this.ready(); // empty + // 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/ui/components/Maps/FireCircleMark.js b/imports/ui/components/Maps/FireCircleMark.js index 901d905..80b9826 100644 --- a/imports/ui/components/Maps/FireCircleMark.js +++ b/imports/ui/components/Maps/FireCircleMark.js @@ -31,7 +31,7 @@ class FireCircleMark extends Component { } = this.props; const rect = rectangleAround({ lat, lon }, track, track); return ( - + ); diff --git a/imports/ui/pages/FiresMap/FiresMap.js b/imports/ui/pages/FiresMap/FiresMap.js index 09ceacd..e797427 100644 --- a/imports/ui/pages/FiresMap/FiresMap.js +++ b/imports/ui/pages/FiresMap/FiresMap.js @@ -84,19 +84,6 @@ class FiresMap extends React.Component { }); } - /* shouldComponentUpdate(nextProps, nextState) { - * const notMoving = !nextState.moving; - * const markersChanged = this.state.useMarkers !== nextState.useMarkers; - * const unionChanged = this.state.showSubsUnion !== nextState.showSubsUnion; - * const otherViewport = this.state.viewport !== nextState.viewport; - * // const init = nextState.viewport.center === [0, 0]; - * // console.log(notMoving ? 'Not moving map' : 'Moving map'); - * // console.log(otherViewport ? 'Other viewport' : 'Not other viewport'); - * console.log(`${otherViewport ? 'OTHER' : 'Not other'} viewport ${nextState.viewport.center} zoom: ${nextState.viewport.zoom}`); - * return this.state.init || (notMoving && otherViewport && this.state.moved) || unionChanged || markersChanged; - * } - */ - shouldComponentUpdate(nextProps, nextState) { const notMoving = !nextState.moving; return notMoving; @@ -249,7 +236,7 @@ class FiresMap extends React.Component {

{ (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.activefires.length + this.props.firealerts.length }} fuegos activos. {{ 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. }

{isNotHomeAndMobile() && this.props.firealerts.length > 0 && From 4cbbe65fa316f92455f5a572f33e4c5cfdc20365 Mon Sep 17 00:00:00 2001 From: vjrj Date: Sat, 13 Aug 2022 19:37:56 +0200 Subject: [PATCH 14/19] Fix wrong grey tiles --- imports/ui/components/Maps/DefMapLayers.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/imports/ui/components/Maps/DefMapLayers.js b/imports/ui/components/Maps/DefMapLayers.js index 713b499..6e3ed56 100644 --- a/imports/ui/components/Maps/DefMapLayers.js +++ b/imports/ui/components/Maps/DefMapLayers.js @@ -35,7 +35,8 @@ class DefMapLayers extends Component { ); const osmlayer = ( From ee7af168d632975e1c1f9b4f34829262750dd8ba Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 14 Aug 2022 21:53:41 +0200 Subject: [PATCH 15/19] Update meteor dev user/pass --- package.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/package.json b/package.json index 76be651..46fd615 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "tcef", "private": true, "scripts": { - "start": "QT_QPA_PLATFORM='' MONGO_URL=mongodb://localhost:27017/fuegos meteor --settings settings-development.json", + "start": "QT_QPA_PLATFORM='' MONGO_URL=mongodb://fuegos:fuegos@localhost:27017/fuegos meteor --settings settings-development.json", "test": "jest" }, "dependencies": { @@ -39,7 +39,6 @@ "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", @@ -83,7 +82,6 @@ "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", From 8281fa3427cdb5d627b71e04020204822c1c1ddd Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 12 Jul 2026 23:26:16 +0200 Subject: [PATCH 16/19] chore: ignorar settings-production-*.json y settings-tests.json (secretos) --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index eeb3622..603fb12 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,8 @@ public/locales/undefined/ .screenshots .vscode output.json + +# fase-0 higiene: variantes de settings con secretos (no versionar) +settings-production-*.json +settings-tests.json +*.json~ From 2a314351356c8f6bc903968d79d6f659e089a320 Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 12 Jul 2026 23:26:16 +0200 Subject: [PATCH 17/19] =?UTF-8?q?Refactor=20server=20startup:=20elimina=20?= =?UTF-8?q?segfaults,=20a=C3=B1ade=20leaflet-workaround?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Retira import './segfaults' (workaround de crash obsoleto) y añade leaflet-workaround.js (shims global window/document/navigator para render de Leaflet en servidor). Ajustes menores en publications de FalsePositives y subsUnion. --- .../api/FalsePositives/server/publications.js | 3 ++- imports/startup/server/index.js | 1 - imports/startup/server/leaflet-workaround.js | 19 ++++++++++++++ imports/startup/server/segfaults.js | 25 ------------------- imports/startup/server/subsUnion.js | 3 ++- 5 files changed, 23 insertions(+), 28 deletions(-) create mode 100644 imports/startup/server/leaflet-workaround.js delete mode 100644 imports/startup/server/segfaults.js diff --git a/imports/api/FalsePositives/server/publications.js b/imports/api/FalsePositives/server/publications.js index 66e26f3..a79ae1a 100644 --- a/imports/api/FalsePositives/server/publications.js +++ b/imports/api/FalsePositives/server/publications.js @@ -5,7 +5,8 @@ import { Meteor } from 'meteor/meteor'; import { check } from 'meteor/check'; import { NumberBetween } from '/imports/modules/server/other-checks'; -import L from 'leaflet-headless'; +import '/imports/startup/server/leaflet-workaround.js'; +import L from 'leaflet'; import calcUnion from '/imports/ui/components/Maps/SubsUnion/Unify'; import Industries from '/imports/api/Industries/Industries'; import FalsePositives from '../FalsePositives'; diff --git a/imports/startup/server/index.js b/imports/startup/server/index.js index dd4f913..7f84dde 100644 --- a/imports/startup/server/index.js +++ b/imports/startup/server/index.js @@ -17,5 +17,4 @@ 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 new file mode 100644 index 0000000..740aa3b --- /dev/null +++ b/imports/startup/server/leaflet-workaround.js @@ -0,0 +1,19 @@ +// 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/segfaults.js b/imports/startup/server/segfaults.js deleted file mode 100644 index b976f0b..0000000 --- a/imports/startup/server/segfaults.js +++ /dev/null @@ -1,25 +0,0 @@ -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/subsUnion.js b/imports/startup/server/subsUnion.js index 390a6ee..2643359 100644 --- a/imports/startup/server/subsUnion.js +++ b/imports/startup/server/subsUnion.js @@ -4,7 +4,8 @@ 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 L from 'leaflet-headless'; +import './leaflet-workaround'; +import L from 'leaflet'; import calcUnion from '/imports/ui/components/Maps/SubsUnion/Unify'; import { isMailServerMaster } from '/imports/startup/server/email'; From 9d92ec4f88e8e3f52a9f1da0984213f08eba40f8 Mon Sep 17 00:00:00 2001 From: vjrj Date: Sun, 12 Jul 2026 23:26:17 +0200 Subject: [PATCH 18/19] deps: regenera package-lock.json y actualiza puntero de meteor-comments-ui --- package-lock.json | 1017 ++++++++++++++++------------------- packages/meteor-comments-ui | 2 +- 2 files changed, 450 insertions(+), 569 deletions(-) diff --git a/package-lock.json b/package-lock.json index 77f558f..c5e3486 100644 --- a/package-lock.json +++ b/package-lock.json @@ -234,7 +234,8 @@ "abab": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", - "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=" + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", + "dev": true }, "abbrev": { "version": "1.1.1", @@ -286,7 +287,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": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "object-assign": "4.1.1" } }, "agent-base": { @@ -365,11 +366,14 @@ "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==" }, "ansi-regex": { - "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, "ansi-styles": { - "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, @@ -605,11 +609,12 @@ } }, "argparse": { - "version": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", "dev": true, "requires": { - "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + "sprintf-js": "~1.0.2" } }, "argv": { @@ -647,15 +652,17 @@ "array-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true }, "array-includes": { - "version": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "dev": true, "requires": { - "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" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-union": { @@ -677,7 +684,8 @@ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" }, "arrify": { - "version": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, @@ -2526,8 +2534,10 @@ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, "balanced-match": { - "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true }, "bcrypt": { "version": "1.0.3", @@ -2548,11 +2558,6 @@ "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", @@ -2650,11 +2655,13 @@ "integrity": "sha1-FTn+656kduHRDRwwnWWb0WJZ/wo=" }, "brace-expansion": { - "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "dev": true, "requires": { - "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" + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" } }, "braces": { @@ -2714,7 +2721,8 @@ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "builtin-modules": { - "version": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, @@ -2754,14 +2762,6 @@ "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,6 +2982,35 @@ "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", @@ -3404,7 +3433,8 @@ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "co": { - "version": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "codecov": { @@ -3631,9 +3661,8 @@ } }, "color-name": { - "version": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "version": "1.1.3", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "colors": { "version": "0.5.1", @@ -3670,7 +3699,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + "delayed-stream": "1.0.0" } }, "commander": { @@ -3734,15 +3763,16 @@ } }, "concat-map": { - "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "version": "0.0.1", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "concat-stream": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "inherits": "2.0.3", "readable-stream": "2.3.3", "typedarray": "0.0.6" }, @@ -3757,13 +3787,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": "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", + "core-util-is": "1.0.2", + "inherits": "2.0.3", "isarray": "1.0.0", - "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "process-nextick-args": "1.0.7", "safe-buffer": "5.1.1", "string_decoder": "1.0.3", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "util-deprecate": "1.0.2" } }, "safe-buffer": { @@ -3795,7 +3825,8 @@ "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==" + "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", + "dev": true }, "convert-source-map": { "version": "1.5.1", @@ -3808,7 +3839,8 @@ "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" }, "core-util-is": { - "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "crc": { @@ -3831,8 +3863,8 @@ "integrity": "sha1-zx7RXxKq1/FO9fLf4F5sQvke8Co=", "requires": { "fbjs": "0.8.16", - "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" + "loose-envify": "1.3.1", + "object-assign": "4.1.1" }, "dependencies": { "asap": { @@ -3851,11 +3883,11 @@ "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", "requires": { "core-js": "1.2.7", - "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", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", "promise": "7.3.1", - "setimmediate": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "setimmediate": "1.0.5", "ua-parser-js": "0.7.17" } }, @@ -3881,7 +3913,7 @@ "requires": { "lru-cache": "4.1.1", "shebang-command": "1.2.0", - "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz" + "which": "1.2.14" } }, "cryptiles": { @@ -3977,12 +4009,14 @@ "cssom": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", - "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=" + "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", + "dev": true }, "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" } @@ -3992,134 +4026,6 @@ "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", @@ -4141,11 +4047,6 @@ "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", @@ -4214,7 +4115,7 @@ "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" }, "deep-is": { - "version": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "version": "0.1.3", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, @@ -4241,12 +4142,13 @@ } }, "define-properties": { - "version": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "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" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "del": { @@ -4258,9 +4160,9 @@ "globby": "5.0.0", "is-path-cwd": "1.0.0", "is-path-in-cwd": "1.0.0", - "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", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", "rimraf": "2.6.2" }, "dependencies": { @@ -4270,13 +4172,14 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" + "glob": "7.1.2" } } } }, "delayed-stream": { - "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { @@ -4310,7 +4213,7 @@ "integrity": "sha512-y0tm5Pq6ywp3qSTZ1vPgVdAnbDEoeoc5wlOHXoY1c4Wug/a7JvqHIl7BTvwodaHmejWkK/9dSb3sCYfyo/om8A==", "dev": true, "requires": { - "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz" + "esutils": "2.0.2" } }, "dom-align": { @@ -4427,10 +4330,11 @@ "dev": true }, "encoding": { - "version": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz" + "iconv-lite": "~0.4.13" } }, "end-of-stream": { @@ -4522,11 +4426,12 @@ } }, "error-ex": { - "version": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + "is-arrayish": "^0.2.1" } }, "error-stack-parser": { @@ -4538,25 +4443,27 @@ } }, "es-abstract": { - "version": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz", "integrity": "sha1-JRAyY9xN7L2mDgxzfKMjE1GAJ+4=", "dev": true, "requires": { - "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": "^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": { - "version": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "dev": true, "requires": { - "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" + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" } }, "es5-ext": { @@ -4632,14 +4539,14 @@ } }, "escape-string-regexp": { - "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "version": "1.0.5", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "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", @@ -4651,32 +4558,38 @@ "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=" + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true }, "esprima": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true }, "estraverse": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true }, "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" @@ -4686,6 +4599,7 @@ "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", @@ -4698,18 +4612,21 @@ "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true }, "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" } @@ -4717,7 +4634,8 @@ "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true } } }, @@ -4773,11 +4691,11 @@ "eslint-scope": "3.7.1", "espree": "3.5.2", "esquery": "1.0.0", - "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "estraverse": "4.2.0", + "esutils": "2.0.2", "file-entry-cache": "2.0.0", "functional-red-black-tree": "1.0.1", - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "glob": "7.1.2", "globals": "11.0.1", "ignore": "3.3.7", "imurmurhash": "0.1.4", @@ -4785,19 +4703,19 @@ "is-resolvable": "1.0.0", "js-yaml": "3.10.0", "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "levn": "0.3.0", "lodash": "4.17.4", - "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", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", "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": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "strip-json-comments": "2.0.1", "table": "4.0.2", "text-table": "0.2.0" }, @@ -4808,10 +4726,10 @@ "integrity": "sha1-s4u4h22ehr7plJVqBOch6IskjrI=", "dev": true, "requires": { - "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", + "co": "4.6.0", + "fast-deep-equal": "1.0.0", "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz" + "json-schema-traverse": "0.3.1" } }, "babel-code-frame": { @@ -4821,7 +4739,7 @@ "dev": true, "requires": { "chalk": "1.1.3", - "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "esutils": "2.0.2", "js-tokens": "3.0.2" }, "dependencies": { @@ -4831,11 +4749,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "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", + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", "strip-ansi": "3.0.1", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + "supports-color": "2.0.0" } }, "strip-ansi": { @@ -4844,7 +4762,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + "ansi-regex": "2.1.1" } } } @@ -4856,7 +4774,7 @@ "dev": true, "requires": { "ansi-styles": "3.2.0", - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "escape-string-regexp": "1.0.5", "supports-color": "4.5.0" }, "dependencies": { @@ -4886,7 +4804,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "color-name": "1.1.3" } }, "debug": { @@ -4895,7 +4813,7 @@ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "ms": "2.0.0" } }, "globals": { @@ -4916,8 +4834,8 @@ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "dev": true, "requires": { - "argparse": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "esprima": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz" + "argparse": "1.0.9", + "esprima": "4.0.0" } }, "semver": { @@ -4997,7 +4915,7 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "ms": "2.0.0" } }, "resolve": { @@ -5006,7 +4924,7 @@ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "path-parse": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz" + "path-parse": "1.0.5" } } } @@ -5027,7 +4945,7 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "ms": "2.0.0" } } } @@ -5038,15 +4956,15 @@ "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==", "dev": true, "requires": { - "builtin-modules": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "builtin-modules": "1.1.1", "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": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "has": "1.0.1", "lodash.cond": "4.5.2", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "minimatch": "3.0.4", "read-pkg-up": "2.0.0" }, "dependencies": { @@ -5056,7 +4974,7 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "ms": "2.0.0" } }, "doctrine": { @@ -5065,7 +4983,7 @@ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { - "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "esutils": "2.0.2", "isarray": "1.0.0" } }, @@ -5087,9 +5005,9 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "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", + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", "strip-bom": "3.0.0" } }, @@ -5100,9 +5018,9 @@ "dev": true, "requires": { "hosted-git-info": "2.5.0", - "is-builtin-module": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "is-builtin-module": "1.0.0", "semver": "5.4.1", - "validate-npm-package-license": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" + "validate-npm-package-license": "3.0.1" } }, "path-type": { @@ -5111,7 +5029,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + "pify": "2.3.0" } }, "read-pkg": { @@ -5131,7 +5049,7 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "find-up": "2.1.0", "read-pkg": "2.0.0" } }, @@ -5318,7 +5236,7 @@ "dev": true, "requires": { "doctrine": "2.0.2", - "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "has": "1.0.1", "jsx-ast-utils": "2.0.1", "prop-types": "15.6.0" }, @@ -5329,7 +5247,7 @@ "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "dev": true, "requires": { - "array-includes": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz" + "array-includes": "3.0.3" } } } @@ -5346,8 +5264,8 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", - "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz" + "esrecurse": "4.2.0", + "estraverse": "4.2.0" } }, "espree": { @@ -5361,7 +5279,8 @@ } }, "esprima": { - "version": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", "integrity": "sha1-RJnt3NERDgshi6zy+n9/WfVcqAQ=", "dev": true }, @@ -5371,25 +5290,28 @@ "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", "dev": true, "requires": { - "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz" + "estraverse": "4.2.0" } }, "esrecurse": { - "version": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", "dev": true, "requires": { - "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": "^4.1.0", + "object-assign": "^4.0.1" } }, "estraverse": { - "version": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", "dev": true }, "esutils": { - "version": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, @@ -5559,8 +5481,10 @@ "integrity": "sha1-HkW7vsxndLPBlfrSg1EJxtdIzD8=" }, "fast-deep-equal": { - "version": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "dev": true }, "fast-json-stable-stringify": { "version": "2.0.0", @@ -5568,7 +5492,7 @@ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "fast-levenshtein": { - "version": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "version": "2.0.6", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, @@ -5708,7 +5632,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + "escape-string-regexp": "1.0.5" } }, "file": { @@ -5723,7 +5647,7 @@ "dev": true, "requires": { "flat-cache": "1.3.0", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "object-assign": "4.1.1" } }, "filename-regex": { @@ -5849,11 +5773,11 @@ "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=" }, "find-up": { - "version": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "version": "2.1.0", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -5864,7 +5788,7 @@ "requires": { "circular-json": "0.3.3", "del": "2.2.2", - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "graceful-fs": "4.1.11", "write": "0.2.1" } }, @@ -5882,12 +5806,14 @@ } }, "foreach": { - "version": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", "dev": true }, "forever-agent": { - "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { @@ -5948,8 +5874,9 @@ } }, "fs.realpath": { - "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "version": "1.0.0", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true }, "fsevents": { "version": "1.1.3", @@ -6114,7 +6041,6 @@ "debug": { "version": "2.6.8", "bundled": true, - "dev": true, "optional": true, "requires": { "ms": "2.0.0" @@ -6164,7 +6090,6 @@ "form-data": { "version": "2.1.4", "bundled": true, - "dev": true, "optional": true, "requires": { "asynckit": "0.4.0", @@ -6250,7 +6175,6 @@ "har-validator": { "version": "4.2.1", "bundled": true, - "dev": true, "optional": true, "requires": { "ajv": "4.11.8", @@ -6306,7 +6230,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "dev": true, + "optional": true, "requires": { "number-is-nan": "1.0.1" } @@ -6375,7 +6299,6 @@ "assert-plus": { "version": "1.0.0", "bundled": true, - "dev": true, "optional": true } } @@ -6383,12 +6306,12 @@ "mime-db": { "version": "1.27.0", "bundled": true, - "dev": true + "optional": true }, "mime-types": { "version": "2.1.15", "bundled": true, - "dev": true, + "optional": true, "requires": { "mime-db": "1.27.0" } @@ -6396,7 +6319,7 @@ "minimatch": { "version": "3.0.4", "bundled": true, - "dev": true, + "optional": true, "requires": { "brace-expansion": "1.1.7" } @@ -6404,12 +6327,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "optional": true }, "mkdirp": { "version": "0.5.1", "bundled": true, - "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -6417,7 +6340,6 @@ "ms": { "version": "2.0.0", "bundled": true, - "dev": true, "optional": true }, "node-pre-gyp": { @@ -6461,18 +6383,16 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "optional": 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": { @@ -6485,7 +6405,6 @@ "os-homedir": { "version": "1.0.2", "bundled": true, - "dev": true, "optional": true }, "os-tmpdir": { @@ -6836,8 +6755,9 @@ } }, "function-bind": { - "version": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "function.prototype.name": { @@ -7004,15 +6924,17 @@ "integrity": "sha1-edzgTRIj6kO0hip2vlzo+JwSwyw=" }, "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "dev": true, "requires": { - "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" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -7044,11 +6966,11 @@ "dev": true, "requires": { "array-union": "1.0.2", - "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" + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "globule": { @@ -7151,8 +7073,10 @@ "integrity": "sha1-2ezc4OnvS+pIGZD05ZC0slg8jbo=" }, "graceful-fs": { - "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true }, "graceful-readlink": { "version": "1.0.1", @@ -7521,19 +7445,21 @@ } }, "has": { - "version": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "dev": true, "requires": { - "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + "function-bind": "^1.0.2" } }, "has-ansi": { - "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -7674,6 +7600,7 @@ "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" } @@ -7813,7 +7740,8 @@ "integrity": "sha512-9OLdC/9YxDvTFcgsH5t2BHCODHEotHCa6h7Ly0EUlUC7Y2GS09UeoHOGj3gWKQ3HCqXz8NlH4gOrK3NNc9vPuw==" }, "iconv-lite": { - "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz", + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz", "integrity": "sha1-T9qjs4rLwsAxsEXQ7c3+HsqxjI0=" }, "ignore": { @@ -7832,7 +7760,7 @@ "resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-2.6.0.tgz", "integrity": "sha512-Odw1bdKiHmOlmDWeJ/QY0fX1oZ21DxEhRQDQUdnnaozydt5RYkVoISGJn/LEkGUd4ADVheAU7jMtFU9JrdzvfA==", "requires": { - "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz" + "invariant": "2.2.2" } }, "imurmurhash": { @@ -7847,15 +7775,16 @@ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" }, "inflight": { - "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "version": "1.0.6", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, "requires": { - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "version": "2.0.3", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { @@ -7903,7 +7832,7 @@ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "requires": { "ansi-styles": "3.2.0", - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "escape-string-regexp": "1.0.5", "supports-color": "4.5.0" } }, @@ -7912,7 +7841,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "requires": { - "color-name": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "color-name": "1.1.3" } }, "is-fullwidth-code-point": { @@ -7948,10 +7877,10 @@ } }, "invariant": { - "version": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "version": "2.2.2", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "requires": { - "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -7993,7 +7922,7 @@ } }, "is-arrayish": { - "version": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "version": "0.2.1", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, @@ -8011,15 +7940,17 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-builtin-module": { - "version": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" + "builtin-modules": "^1.0.0" } }, "is-callable": { - "version": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", "dev": true }, @@ -8033,7 +7964,8 @@ } }, "is-date-object": { - "version": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", "dev": true }, @@ -8149,11 +8081,12 @@ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" }, "is-regex": { - "version": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz" + "has": "^1.0.1" } }, "is-resolvable": { @@ -8166,7 +8099,8 @@ } }, "is-stream": { - "version": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-subset": { @@ -8176,12 +8110,14 @@ "dev": true }, "is-symbol": { - "version": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", "dev": true }, "is-typedarray": { - "version": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-utf8": { @@ -8195,7 +8131,7 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { - "version": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "version": "2.0.0", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "ismobilejs": { @@ -8219,15 +8155,17 @@ } }, "isomorphic-fetch": { - "version": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "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" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" } }, "isstream": { - "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istanbul-api": { @@ -10050,7 +9988,7 @@ } }, "js-tokens": { - "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", + "version": "3.0.1", "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" }, "js-yaml": { @@ -10138,8 +10076,10 @@ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, "json-schema-traverse": { - "version": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true }, "json-stable-stringify": { "version": "1.0.1", @@ -10156,7 +10096,8 @@ "dev": true }, "json-stringify-safe": { - "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json5": { @@ -10309,92 +10250,6 @@ "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", @@ -10412,12 +10267,12 @@ "dev": true }, "levn": { - "version": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "version": "0.3.0", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "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" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -10479,12 +10334,12 @@ } }, "locate-path": { - "version": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "version": "2.0.0", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "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" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -10680,7 +10535,7 @@ "integrity": "sha1-TbcJ/IG8So/XEnpFilNGxc3OLGs=" }, "lodash.isobject": { - "version": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "version": "3.0.2", "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=" }, "lodash.istypedarray": { @@ -10805,10 +10660,10 @@ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" }, "loose-envify": { - "version": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "version": "1.3.1", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz" + "js-tokens": "^3.0.0" } }, "lower-case": { @@ -10923,7 +10778,7 @@ "process": "0.11.10", "punycode": "1.4.1", "querystring-es3": "0.2.1", - "readable-stream": "git+https://github.com/meteor/readable-stream.git#d64a64aa6061b9b6855feff4d09e58fb3b2e4502", + "readable-stream": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12", "stream-browserify": "2.0.1", "string_decoder": "1.0.3", "timers-browserify": "1.4.2", @@ -11438,9 +11293,9 @@ } }, "readable-stream": { - "version": "git+https://github.com/meteor/readable-stream.git#d64a64aa6061b9b6855feff4d09e58fb3b2e4502", + "version": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12", "requires": { - "inherits": "2.0.3", + "inherits": "2.0.4", "isarray": "1.0.0", "process-nextick-args": "1.0.7", "safe-buffer": "5.1.1", @@ -11449,9 +11304,9 @@ }, "dependencies": { "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" } } }, @@ -11492,7 +11347,7 @@ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "requires": { "inherits": "2.0.1", - "readable-stream": "git+https://github.com/meteor/readable-stream.git#d64a64aa6061b9b6855feff4d09e58fb3b2e4502" + "readable-stream": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12" } }, "string_decoder": { @@ -11614,10 +11469,12 @@ "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" }, "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, "requires": { - "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz" + "brace-expansion": "1.1.7" } }, "minimist": { @@ -11626,15 +11483,19 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "mkdirp": { - "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + "minimist": "0.0.8" }, "dependencies": { "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true } } }, @@ -11961,8 +11822,10 @@ } }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, "mute-stream": { "version": "0.0.7", @@ -11975,7 +11838,7 @@ "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=" }, "natural-compare": { - "version": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "version": "1.4.0", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, @@ -12004,11 +11867,12 @@ } }, "node-fetch": { - "version": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", "integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=", "requires": { - "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" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "node-gcm": { @@ -12036,7 +11900,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + "delayed-stream": "1.0.0" } }, "debug": { @@ -12072,15 +11936,15 @@ "caseless": "0.12.0", "combined-stream": "1.0.6", "extend": "3.0.2", - "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "forever-agent": "0.6.1", "form-data": "2.3.1", "har-validator": "5.0.3", "http-signature": "1.2.0", - "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", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", "mime-types": "2.1.17", - "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "oauth-sign": "0.8.2", "performance-now": "2.1.0", "qs": "6.5.1", "safe-buffer": "5.1.2", @@ -12351,16 +12215,16 @@ "caseless": "0.12.0", "combined-stream": "1.0.6", "extend": "3.0.2", - "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "forever-agent": "0.6.1", "form-data": "2.1.4", "har-validator": "4.2.1", "hawk": "3.1.3", "http-signature": "1.1.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", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", "mime-types": "2.1.17", - "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "oauth-sign": "0.8.2", "performance-now": "0.2.0", "qs": "6.4.0", "safe-buffer": "5.1.2", @@ -16465,14 +16329,16 @@ "nwmatcher": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", - "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==" + "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", + "dev": true }, "oauth-sign": { - "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" }, "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "version": "4.1.1", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-is": { @@ -16482,7 +16348,8 @@ "dev": true }, "object-keys": { - "version": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", "dev": true }, @@ -16736,10 +16603,11 @@ } }, "once": { - "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "version": "1.4.0", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, "requires": { - "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "wrappy": "1" } }, "onetime": { @@ -16767,20 +16635,22 @@ } }, "optionator": { - "version": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "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" + "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" }, "dependencies": { "wordwrap": { - "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true } @@ -16798,7 +16668,7 @@ } }, "os-tmpdir": { - "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "version": "1.0.2", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { @@ -16835,16 +16705,17 @@ "dev": true }, "p-limit": { - "version": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", "dev": true }, "p-locate": { - "version": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "version": "2.0.0", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz" + "p-limit": "^1.1.0" } }, "p-map": { @@ -16864,11 +16735,11 @@ } }, "parse-json": { - "version": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "version": "2.2.0", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz" + "error-ex": "^1.2.0" } }, "parse5": { @@ -16881,13 +16752,14 @@ } }, "path-exists": { - "version": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "version": "3.0.0", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { - "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "version": "1.0.1", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true }, "path-is-inside": { "version": "1.0.2", @@ -16900,7 +16772,8 @@ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { - "version": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, @@ -17209,21 +17082,23 @@ } }, "pify": { - "version": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "version": "2.3.0", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { - "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { - "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -17242,7 +17117,7 @@ "dev": true, "requires": { "path-exists": "2.1.0", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + "pinkie-promise": "2.0.1" } }, "path-exists": { @@ -17251,7 +17126,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + "pinkie-promise": "2.0.1" } } } @@ -17273,7 +17148,7 @@ "integrity": "sha1-DfvC3/lsRRuzMu3Pz6r1ZtMx1bM=" }, "prelude-ls": { - "version": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "version": "1.1.2", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, @@ -17543,7 +17418,7 @@ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" }, "process-nextick-args": { - "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "version": "1.0.7", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" }, "progress": { @@ -17573,8 +17448,8 @@ "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", "requires": { "fbjs": "0.8.16", - "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" + "loose-envify": "1.3.1", + "object-assign": "4.1.1" }, "dependencies": { "asap": { @@ -17593,11 +17468,11 @@ "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", "requires": { "core-js": "1.2.7", - "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", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", "promise": "7.3.1", - "setimmediate": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "setimmediate": "1.0.5", "ua-parser-js": "0.7.17" } }, @@ -17621,7 +17496,7 @@ "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.0.1.tgz", "integrity": "sha1-pXvUgQ6C0no/9DF+zBtK0AX3moI=", "requires": { - "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz" + "warning": "3.0.0" } }, "prr": { @@ -17772,7 +17647,7 @@ "rc-tooltip": "3.7.0", "rc-util": "4.3.1", "shallowequal": "1.0.2", - "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz" + "warning": "3.0.0" } }, "rc-tooltip": { @@ -17856,7 +17731,7 @@ "integrity": "sha1-a4P0C2s27kBzXL1hJes/E84c3ck=", "requires": { "fbjs": "0.8.16", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "object-assign": "4.1.1" }, "dependencies": { "asap": { @@ -17875,11 +17750,11 @@ "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", "requires": { "core-js": "1.2.7", - "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", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", "promise": "7.3.1", - "setimmediate": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "setimmediate": "1.0.5", "ua-parser-js": "0.7.17" } }, @@ -17906,13 +17781,13 @@ "babel-runtime": "6.26.0", "classnames": "2.2.5", "dom-helpers": "3.2.1", - "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "invariant": "2.2.2", "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": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz" + "warning": "3.0.0" } }, "react-confirm": { @@ -18056,7 +17931,7 @@ "dom-helpers": "3.2.1", "prop-types": "15.6.0", "prop-types-extra": "1.0.1", - "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz" + "warning": "3.0.0" } }, "react-places-autocomplete": { @@ -18236,9 +18111,9 @@ "chain-function": "1.0.0", "classnames": "2.2.5", "dom-helpers": "3.2.1", - "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "loose-envify": "1.3.1", "prop-types": "15.6.0", - "warning": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz" + "warning": "3.0.0" } }, "reactstrap": { @@ -18248,7 +18123,7 @@ "requires": { "classnames": "2.2.5", "lodash.isfunction": "3.0.8", - "lodash.isobject": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "lodash.isobject": "3.0.2", "lodash.tonumber": "4.0.3", "prop-types": "15.6.0", "react-popper": "0.7.4", @@ -18746,7 +18621,7 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { "onetime": "2.0.1", - "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz" + "signal-exit": "3.0.2" } }, "ret": { @@ -18952,16 +18827,8 @@ "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "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" - } + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true }, "selenium-standalone": { "version": "6.14.0", @@ -19270,7 +19137,8 @@ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" }, "setimmediate": { - "version": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "shallowequal": { @@ -19303,7 +19171,7 @@ "integrity": "sha1-1DYvyRTdKA3fblIr5AiyEgMgg0Y=" }, "signal-exit": { - "version": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "version": "3.0.2", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "simpl-schema": { @@ -19424,20 +19292,23 @@ "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=" }, "spdx-correct": { - "version": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "dev": true, "requires": { - "spdx-license-ids": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { - "version": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "version": "1.0.4", + "resolved": "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": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", "dev": true }, @@ -19455,7 +19326,7 @@ "integrity": "sha512-D50hKrjZgBzqD3FT2Ek53f2dcDLAQT8SSGrzj3vidNH5ISRgceeGVJ2dQIthKOuayqFXfFjXheHNo4bbt9LhRQ==" }, "sprintf-js": { - "version": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "version": "1.0.3", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, @@ -19650,18 +19521,21 @@ "dev": true }, "strip-json-comments": { - "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "version": "2.0.1", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true }, "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "version": "2.0.0", + "resolved": "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=" + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "dev": true }, "table": { "version": "4.0.2", @@ -19683,10 +19557,10 @@ "integrity": "sha1-s4u4h22ehr7plJVqBOch6IskjrI=", "dev": true, "requires": { - "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", + "co": "4.6.0", + "fast-deep-equal": "1.0.0", "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz" + "json-schema-traverse": "0.3.1" } }, "ansi-regex": { @@ -19711,7 +19585,7 @@ "dev": true, "requires": { "ansi-styles": "3.2.0", - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "escape-string-regexp": "1.0.5", "supports-color": "4.5.0" } }, @@ -19721,7 +19595,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "color-name": "1.1.3" } }, "is-fullwidth-code-point": { @@ -19877,7 +19751,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "os-tmpdir": "1.0.2" } }, "tmpl": { @@ -19909,7 +19783,8 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true }, "trim-right": { "version": "1.0.1", @@ -19946,11 +19821,11 @@ } }, "type-check": { - "version": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "version": "0.3.2", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -20003,7 +19878,7 @@ "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-4.1.0.tgz", "integrity": "sha1-4DWCkSUuGGUiLZCTmxny9J+Bwak=", "requires": { - "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz" + "invariant": "2.2.2" } }, "underscore": { @@ -20053,7 +19928,7 @@ "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=" }, "util-deprecate": { - "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "version": "1.0.2", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "valid-data-url": { @@ -20062,12 +19937,13 @@ "integrity": "sha512-p3bCVl3Vrz42TV37a1OjagyLLd6qQAXBDWarIazuo7NQzCt8Kw8ZZwSAbUVPGlz5ubgbgJmgT0KRjLeCFNrfoQ==" }, "validate-npm-package-license": { - "version": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "dev": true, "requires": { - "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" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "value-equal": { @@ -20107,10 +19983,10 @@ } }, "warning": { - "version": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "version": "3.0.0", "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", "requires": { - "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz" + "loose-envify": "^1.0.0" } }, "watch": { @@ -20359,6 +20235,7 @@ "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" }, @@ -20366,12 +20243,14 @@ "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==" + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true } } }, "whatwg-fetch": { - "version": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" }, "whatwg-url": { @@ -20393,10 +20272,10 @@ } }, "which": { - "version": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "version": "1.2.14", "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", "requires": { - "isexe": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + "isexe": "^2.0.0" } }, "which-module": { @@ -20516,8 +20395,9 @@ } }, "wrappy": { - "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "version": "1.0.2", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true }, "write": { "version": "0.2.1", @@ -20525,7 +20405,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + "mkdirp": "0.5.1" } }, "write-file-atomic": { @@ -20556,7 +20436,8 @@ "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=" + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "dev": true }, "xolvio-ddp": { "version": "0.12.3", diff --git a/packages/meteor-comments-ui b/packages/meteor-comments-ui index 3346b6d..4761da9 160000 --- a/packages/meteor-comments-ui +++ b/packages/meteor-comments-ui @@ -1 +1 @@ -Subproject commit 3346b6db70c153b1dd66e6a16a0ad28f10ebf740 +Subproject commit 4761da921f467838a2c01b34e84a7703ee49b12c From 39415808bfd2d5839d1ab682deb589387e760221 Mon Sep 17 00:00:00 2001 From: vjrj Date: Mon, 13 Jul 2026 00:10:39 +0200 Subject: [PATCH 19/19] Fase 1a: flag de cutover notifDisabledChannels en processNotif Guard reversible al inicio de processNotif: los canales listados en settings.private.notifDisabledChannels (p.ej. ['mobile','web']) los gestiona el microservicio tcef-notifications, y el observer/cron viejos los ignoran. Exclusion mutua por canal sin desplegar codigo (solo editar settings). ES5-compatible (Meteor 1.6 / Node 8). --- imports/modules/server/notificationsProcess.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/imports/modules/server/notificationsProcess.js b/imports/modules/server/notificationsProcess.js index e78f426..657aa2a 100644 --- a/imports/modules/server/notificationsProcess.js +++ b/imports/modules/server/notificationsProcess.js @@ -43,7 +43,18 @@ 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); const user = Meteor.users.findOne({ _id: notif.userId });