diff --git a/package.json b/package.json index 41b56f2..586d888 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^7.1.2", "@turf/points-within-polygon": "^5.1.5", + "@turf/turf": "^5.1.6", "alasql": "^0.5.4", "console": "^0.7.2", "date-fns": "^2.0.0", diff --git a/src/database.js b/src/database.js index b42f5c3..60ca1f9 100644 --- a/src/database.js +++ b/src/database.js @@ -1,9 +1,12 @@ import React, { useEffect, useState, useContext } from 'react'; import NodeEnvironment from 'jest-environment-node'; -import { add_geo_area_to_store, get_geo_area_from_store } from './geo_store.js'; -import * as turf from '@turf/turf' +import { + add_geo_area_to_store, get_geo_area_from_store, + initialize_image_index, image_in_area +} from './geo_store.js'; +import * as turf from '@turf/turf' import KDBush from 'kdbush'; export async function sqljs_async_queries(sqljs_object, queries) { @@ -52,11 +55,8 @@ export function regexp_match(string, regex) { return string.match(regex) != null; } -export function is_in_geo_polygon_from_store(lat, long, polygon_hash) { - const area = get_geo_area_from_store(polygon_hash); - var gju = require('geojson-utils'); - return gju.pointInPolygon({ "type": "Point", "coordinates": [long, lat] }, - area.geojson); +export function is_in_geo_polygon_from_store(image_id, lat, long, polygon_hash) { + return image_in_area(image_id, polygon_hash); } // Digikam stores its tree of tags as individual tags, @@ -109,15 +109,18 @@ export async function add_full_tag_info(db) { } function polygons_benchmark(database) { - var img_query = "SELECT Images.id, ImagePositions.latitudeNumber, ImagePositions.longitudeNumber FROM Images " - + "LEFT JOIN ImagePositions ON ImagePositions.imageid=Images.id WHERE ImagePositions.latitudeNumber NOT NULL GROUP BY Images.id;"; + var img_query = "SELECT GROUP_CONCAT(Images.id), ImagePositions.latitudeNumber, ImagePositions.longitudeNumber FROM Images " + + "LEFT JOIN ImagePositions ON ImagePositions.imageid=Images.id WHERE ImagePositions.latitudeNumber NOT NULL GROUP BY ImagePositions.latitudeNumber, ImagePositions.longitudeNumber;"; sqljs_async_queries(database, [img_query]).then(res => { + console.log("Images query result:", res); + fetch("https://nominatim.openstreetmap.org/search?polygon_geojson=1&polygon_threshold=0.001&format=json&limit=1&q=Australia") .then(res => res.json()) .then(jsonres => { var polies; - var points = []; + var points = []; // Contains all unique geometric points as [lat long] + var ids_per_point = []; // Contains a list of ids for each unique geometric point console.log("Nominatim geo answer:", jsonres); @@ -130,10 +133,12 @@ function polygons_benchmark(database) { var data = res[0].values; data.forEach(row => { points.push([parseFloat(row[cols.indexOf("longitudeNumber")]), parseFloat(row[cols.indexOf("latitudeNumber")])]); + ids_per_point.push(row[cols.indexOf("GROUP_CONCAT(Images.id)")].split(',').map(e => parseInt(e))); }); } console.log("Points: ", points); + console.log("IDs per point: ", ids_per_point); console.log("Nominatim GEOJSON: ", polies); { @@ -151,6 +156,8 @@ function polygons_benchmark(database) { const index = new KDBush(points, p => p[0], p => p[1], 16, Float64Array); console.timeEnd("Build KDBush index"); + console.time("Total KDBush search time"); + // Get bounding boxes for all subpolygons var boxes = []; console.time("Build KDBush poly boxes"); @@ -184,21 +191,26 @@ function polygons_benchmark(database) { // Test hit points exactly console.time("Get exact hits after KDBush"); var realhits = []; - var hitcache = {}; hits.forEach(hit => { const point = points[hit]; - if(point in hitcache && hitcache[point]) { - realhits.push(hit); - return; - } const is_real_hit = turf.booleanPointInPolygon(turf.point(points[hit]), polies); - hitcache[point] = is_real_hit; - if(is_real_hit){ + if (is_real_hit) { realhits.push(hit); } }); console.log("Real: ", realhits); console.timeEnd("Get exact hits after KDBush"); + + // Expand to all image IDs + console.time("Expand exact hits to IDs"); + var hit_ids = []; + realhits.forEach(idx => { + hit_ids = hit_ids.concat(ids_per_point[idx]); + }); + console.log("Real hit IDs: ", hit_ids); + console.timeEnd("Expand exact hits to IDs"); + + console.timeEnd("Total KDBush search time"); } }); }) @@ -213,13 +225,16 @@ export function ProvideDB(props) { useEffect(() => { fetch_sqljs_db_from_sqlite(db_url) .then(db => { - add_full_tag_info(db).then((newdb) => { - db.create_function("REGEXP", regexp_match); - db.create_function("IS_IN_GEO", is_in_geo_polygon_from_store); - polygons_benchmark(db); - setError(false); - setDb(newdb); - }) + add_full_tag_info(db) + .then((newdb) => { + initialize_image_index(newdb).then(() => { + db.create_function("REGEXP", regexp_match); + db.create_function("IS_IN_GEO", is_in_geo_polygon_from_store); + //polygons_benchmark(db); + setError(false); + setDb(newdb); + }) + }) }) .catch(error => { setError(error); }); }, []) diff --git a/src/geo_store.js b/src/geo_store.js index dab1de8..f116249 100644 --- a/src/geo_store.js +++ b/src/geo_store.js @@ -1,4 +1,13 @@ -var g_GeoStore = {}; +import KDBush from 'kdbush'; + +import { sqljs_async_queries } from './database.js'; +import * as turf from '@turf/turf'; + +var g_GeoStore = { + areas: {}, + area_query_results: {}, + image_index: {}, +}; export function hash_geo_area(geo_area) { var hash = require('object-hash'); @@ -7,16 +16,128 @@ export function hash_geo_area(geo_area) { export function add_geo_area_to_store(area) { var h = hash_geo_area(area); - if(!(h in g_GeoStore)) { - g_GeoStore[h] = area; + if (!(h in g_GeoStore)) { + g_GeoStore["areas"][h] = area; } return h; } export function get_geo_area_from_store(hash) { - if(hash in g_GeoStore) { - return g_GeoStore[hash]; + if (hash in g_GeoStore) { + return g_GeoStore["areas"][hash]; } throw new Error("Requested non-existent geo area from store."); +} + +export function initialize_image_index(database) { + return new Promise((resolve, reject) => { + var img_query = "SELECT GROUP_CONCAT(Images.id), ImagePositions.latitudeNumber, ImagePositions.longitudeNumber FROM Images " + + "LEFT JOIN ImagePositions ON ImagePositions.imageid=Images.id WHERE ImagePositions.latitudeNumber NOT NULL GROUP BY ImagePositions.latitudeNumber, ImagePositions.longitudeNumber;"; + + sqljs_async_queries(database, [img_query]) + .then(res => { + var points = []; // will contain a list of unique [long, lat] points + var ids_per_point = []; // will contain a list of image ids per point in "points", same indexing + if (res && Array.isArray(res) && res.length > 0) { + var cols = res[0].columns; + var data = res[0].values; + data.forEach(row => { + points.push([parseFloat(row[cols.indexOf("longitudeNumber")]), parseFloat(row[cols.indexOf("latitudeNumber")])]); + ids_per_point.push(row[cols.indexOf("GROUP_CONCAT(Images.id)")].split(',').map(e => parseInt(e))); + }); + } + + // Store all info we will need later into the image index. + g_GeoStore["image_index"] = { + points: points, + ids_per_point: ids_per_point, + kdbush: new KDBush(points, p => p[0], p => p[1], 16, Float64Array) + }; + + resolve(); + }) + .catch(e => { reject(e); }); + }); +} + +// Do a query whether an image is in an area. If not done before, this will +// calculate all images in said area and cache the result for later calls. +export function image_in_area(image_id, area_hash) { + if (area_hash in g_GeoStore["area_query_results"]) { + return g_GeoStore["area_query_results"][area_hash].includes(parseInt(image_id)); + } + if (!(area_hash in g_GeoStore["areas"])) { + throw new Error("Queried for images in an unknown area."); + } + + //console.time("Total KDBush search time"); + + // Get bounding boxes for all (sub-)polygons of the area + const full_area = g_GeoStore["areas"][area_hash]; + //console.log("Search area:", full_area); + const area = full_area.geojson; + var boxes = []; + const add_box = poly => { + var minx = Number.POSITIVE_INFINITY; + var miny = Number.POSITIVE_INFINITY; + var maxx = Number.NEGATIVE_INFINITY; + var maxy = Number.NEGATIVE_INFINITY; + for (let j = 0; j < poly.length; j++) { + minx = Math.min(minx, poly[j][0]); + miny = Math.min(miny, poly[j][1]); + maxx = Math.max(maxx, poly[j][0]); + maxy = Math.max(maxy, poly[j][1]); + } + boxes.push([minx, miny, maxx, maxy]); + } + if (area.type == "Polygon") { + add_box(area.coordinates[0]); + } else if (area.type == "MultiPolygon") { + for (let i = 0; i < area.coordinates.length; i++) { + add_box(area.coordinates[i][0]); + } + } + + // Test points in KD tree against each subpolygon bounding box + //console.time("Find box points in KDBush"); + let hits = new Set(); + const index = g_GeoStore["image_index"].kdbush; + for (let i = 0; i < boxes.length; i++) { + const idxs = index.range(boxes[i][0], boxes[i][1], boxes[i][2], boxes[i][3]); + idxs.forEach(e => hits.add(e)); + } + //console.timeEnd("Find box points in KDBush"); + //console.log("Hits: ", hits); + + // Test hit points exactly + // console.time("Get exact hits after KDBush"); + var realhits = []; + const points = g_GeoStore["image_index"].points; + hits.forEach(hit => { + const point = points[hit]; + const is_real_hit = turf.booleanPointInPolygon(turf.point(point), area); + if (is_real_hit) { + realhits.push(hit); + } + }); + //console.log("Real hits: ", realhits); + // console.timeEnd("Get exact hits after KDBush"); + + // Expand to all image IDs + // console.time("Expand exact hits to IDs"); + var hit_ids = []; + const ids_per_point = g_GeoStore["image_index"].ids_per_point; + realhits.forEach(idx => { + hit_ids = hit_ids.concat(ids_per_point[idx]); + }); + //console.log("Real hit ImageIds: ", hit_ids); + // console.timeEnd("Expand exact hits to IDs"); + + //console.timeEnd("Total KDBush search time"); + + g_GeoStore["area_query_results"][area_hash] = hit_ids; + + //console.log("Is ", parseInt(image_id), " inside ", g_GeoStore["area_query_results"][area_hash], "?"); + return g_GeoStore["area_query_results"][area_hash].includes(parseInt(image_id)); } \ No newline at end of file diff --git a/src/queries.js b/src/queries.js index f9eaf61..f0e6d09 100644 --- a/src/queries.js +++ b/src/queries.js @@ -13,7 +13,7 @@ export function do_image_query(query, database, collection_path, collection_thum var queries = []; queries.push(query); sqljs_async_queries(database, queries).then(res => { - //console.log("Query result: ", res); + console.log("Query result: ", res); var photos = []; if (res && Array.isArray(res) && res.length > 0) { var cols = res[0].columns; @@ -320,7 +320,7 @@ export class LocationFilter extends ResultFilter { // it will have access to said polygon. const hash = add_geo_area_to_store(this.geo_area); return '(ImagePositions.latitudeNumber NOT NULL AND ImagePositions.longitudeNumber NOT NULL AND ' - + 'IS_IN_GEO(ImagePositions.latitudeNumber, ImagePositions.longitudeNumber, "' + hash + '"))'; + + 'IS_IN_GEO(Images.id, ImagePositions.latitudeNumber, ImagePositions.longitudeNumber, "' + hash + '"))'; } simplify() { return this; } diff --git a/yarn.lock b/yarn.lock index 55c7275..954062e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1508,7 +1508,146 @@ resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-7.2.1.tgz#2ad4e844175a3738cb9e7064be5ea070b8863a1c" integrity sha512-oZ0Ib5I4Z2pUEcoo95cT1cr6slco9WY7yiPpG+RGNkj8YcYgJnM7pXmYmorNOReh8MIGcKSqXyeGjxnr8YiZbA== -"@turf/boolean-point-in-polygon@^5.1.5": +"@turf/along@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/along/-/along-5.1.5.tgz#61d6e6a6584acddab56ac5584e07bf8cbe5f8beb" + integrity sha1-YdbmplhKzdq1asVYTge/jL5fi+s= + dependencies: + "@turf/bearing" "^5.1.5" + "@turf/destination" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + +"@turf/area@5.1.x", "@turf/area@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/area/-/area-5.1.5.tgz#efd899bfd260cdbd1541b2a3c155f8a5d2eefa1d" + integrity sha1-79iZv9Jgzb0VQbKjwVX4pdLu+h0= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/bbox-clip@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/bbox-clip/-/bbox-clip-5.1.5.tgz#3364b5328dff9f3cf41d9e02edaff374d150cc84" + integrity sha1-M2S1Mo3/nzz0HZ4C7a/zdNFQzIQ= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + lineclip "^1.1.5" + +"@turf/bbox-polygon@5.1.x", "@turf/bbox-polygon@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/bbox-polygon/-/bbox-polygon-5.1.5.tgz#6aeba4ed51d85d296e0f7c38b88c339f01eee024" + integrity sha1-auuk7VHYXSluD3w4uIwznwHu4CQ= + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/bbox@5.1.x", "@turf/bbox@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/bbox/-/bbox-5.1.5.tgz#3051df514ad4c50f4a4f9b8a2d15fd8b6840eda3" + integrity sha1-MFHfUUrUxQ9KT5uKLRX9i2hA7aM= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/bearing@5.1.x", "@turf/bearing@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/bearing/-/bearing-5.1.5.tgz#7a0b790136c4ef4797f0246305d45cbe2d27b3f7" + integrity sha1-egt5ATbE70eX8CRjBdRcvi0ns/c= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/bearing@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/bearing/-/bearing-6.0.1.tgz#8da5d17092e571f170cde7bfb2e5b0d74923c92d" + integrity sha512-mXY1NozqV9EFfBTbUItujwfqfQF0G/Xe2fzvnZle90ekPEUfhi4Dgf5JswJTd96J9LiT8kcd6Jonp5khnx0wIg== + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/bezier-spline@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/bezier-spline/-/bezier-spline-5.1.5.tgz#59a27bba5d7b97ef15ab3fd5a40fbd2387049bca" + integrity sha1-WaJ7ul17l+8Vqz/VpA+9I4cEm8o= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/boolean-clockwise@5.1.x", "@turf/boolean-clockwise@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-clockwise/-/boolean-clockwise-5.1.5.tgz#3302b7dac62c5e291a0789e29af7283387fa9deb" + integrity sha1-MwK32sYsXikaB4nimvcoM4f6nes= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/boolean-contains@5.1.x", "@turf/boolean-contains@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-contains/-/boolean-contains-5.1.5.tgz#596d63aee636f7ad53ee99f9ff24c96994a0ef14" + integrity sha1-WW1jruY2961T7pn5/yTJaZSg7xQ= + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/boolean-point-on-line" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/boolean-crosses@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-crosses/-/boolean-crosses-5.1.5.tgz#01bfaea2596f164de4a4d325094dc7c255c715d6" + integrity sha1-Ab+uollvFk3kpNMlCU3HwlXHFdY= + dependencies: + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-intersect" "^5.1.5" + "@turf/polygon-to-line" "^5.1.5" + +"@turf/boolean-disjoint@5.1.x": + version "5.1.6" + resolved "https://registry.yarnpkg.com/@turf/boolean-disjoint/-/boolean-disjoint-5.1.6.tgz#3fbd87084b269133f5fd15725deb3c6675fb8a9d" + integrity sha512-KHvUS6SBNYHBCLIJEJrg04pF5Oy+Fqn8V5G9U+9pti5vI9tyX7Ln2g7RSB7iJ1Cxsz8QAi6OukhXjEF2/8ZpGg== + dependencies: + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/line-intersect" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/polygon-to-line" "^5.1.5" + +"@turf/boolean-equal@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-equal/-/boolean-equal-5.1.5.tgz#29f8f6d60bb84507dfd765b32254db8e72c938a4" + integrity sha1-Kfj21gu4RQff12WzIlTbjnLJOKQ= + dependencies: + "@turf/clean-coords" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + geojson-equality "0.1.6" + +"@turf/boolean-overlap@5.1.x", "@turf/boolean-overlap@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-overlap/-/boolean-overlap-5.1.5.tgz#0d4e64c52c770a28e93d9efcdf8a8b8373acce75" + integrity sha1-DU5kxSx3CijpPZ7834qLg3OsznU= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-intersect" "^5.1.5" + "@turf/line-overlap" "^5.1.5" + "@turf/meta" "^5.1.5" + geojson-equality "0.1.6" + +"@turf/boolean-parallel@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-parallel/-/boolean-parallel-5.1.5.tgz#739358475ea5b65c7e1827a3c3e0e8a687d3a85d" + integrity sha1-c5NYR16ltlx+GCejw+DopofTqF0= + dependencies: + "@turf/clean-coords" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/line-segment" "^5.1.5" + "@turf/rhumb-bearing" "^5.1.5" + +"@turf/boolean-point-in-polygon@5.1.x", "@turf/boolean-point-in-polygon@^5.1.5": version "5.1.5" resolved "https://registry.yarnpkg.com/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-5.1.5.tgz#f01cc194d1e030a548bfda981cba43cfd62941b7" integrity sha1-8BzBlNHgMKVIv9qYHLpDz9YpQbc= @@ -1516,26 +1655,622 @@ "@turf/helpers" "^5.1.5" "@turf/invariant" "^5.1.5" -"@turf/helpers@^5.1.5": +"@turf/boolean-point-on-line@5.1.x", "@turf/boolean-point-on-line@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-point-on-line/-/boolean-point-on-line-5.1.5.tgz#f633c5ff802ad24bb8f158dadbaf6ff4a023dd7b" + integrity sha1-9jPF/4Aq0ku48Vja269v9KAj3Xs= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/boolean-within@5.1.x", "@turf/boolean-within@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-within/-/boolean-within-5.1.5.tgz#47105d56d0752a9d0fbfcd43c36a5f9149dc8697" + integrity sha1-RxBdVtB1Kp0Pv81Dw2pfkUnchpc= + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/boolean-point-on-line" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/buffer@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/buffer/-/buffer-5.1.5.tgz#841c9627cfb974b122ac4e1a956f0466bc0231c4" + integrity sha1-hByWJ8+5dLEirE4alW8EZrwCMcQ= + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/center" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/projection" "^5.1.5" + d3-geo "1.7.1" + turf-jsts "*" + +"@turf/center-mean@5.1.x", "@turf/center-mean@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/center-mean/-/center-mean-5.1.5.tgz#8c8e9875391e5f09f0e6e78f5d661b88b2108a0a" + integrity sha1-jI6YdTkeXwnw5uePXWYbiLIQigo= + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/center-median@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/center-median/-/center-median-5.1.5.tgz#bb461bfe7a2a48601d8a4727685718723a14a872" + integrity sha1-u0Yb/noqSGAdikcnaFcYcjoUqHI= + dependencies: + "@turf/center-mean" "^5.1.5" + "@turf/centroid" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/center-of-mass@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/center-of-mass/-/center-of-mass-5.1.5.tgz#4d3bd79d88498dbab8324d4f69f0322f6520b9ca" + integrity sha1-TTvXnYhJjbq4Mk1PafAyL2Uguco= + dependencies: + "@turf/centroid" "^5.1.5" + "@turf/convex" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/center@5.1.x", "@turf/center@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/center/-/center-5.1.5.tgz#44ab2cd954f63c0d37757f7158a99c3ef5114b80" + integrity sha1-RKss2VT2PA03dX9xWKmcPvURS4A= + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/helpers" "^5.1.5" + +"@turf/centroid@5.1.x", "@turf/centroid@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/centroid/-/centroid-5.1.5.tgz#778ada74216335021ad8fd0e7a65a8349d53c769" + integrity sha1-d4radCFjNQIa2P0OemWoNJ1Tx2k= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/circle@5.1.x", "@turf/circle@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/circle/-/circle-5.1.5.tgz#9b1577835508ab52fb1c10b2a5065cba2b87b6a5" + integrity sha1-mxV3g1UIq1L7HBCypQZcuiuHtqU= + dependencies: + "@turf/destination" "^5.1.5" + "@turf/helpers" "^5.1.5" + +"@turf/clean-coords@5.1.x", "@turf/clean-coords@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/clean-coords/-/clean-coords-5.1.5.tgz#12800a98a78c9a452a72ec428493c43acf2ada1f" + integrity sha1-EoAKmKeMmkUqcuxChJPEOs8q2h8= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/clone@5.1.x", "@turf/clone@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/clone/-/clone-5.1.5.tgz#253e8d35477181976e33adfab50a0f02a7f0e367" + integrity sha1-JT6NNUdxgZduM636tQoPAqfw42c= + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/clone@6.x": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@turf/clone/-/clone-6.0.2.tgz#7563cebbb3e2e19f361599bb244467e0dcc205c9" + integrity sha512-UVpYPnW3wRj3bPncR6Z2PRbowBk+nEdVWgGewPxrKKLfvswtVtG9n/OIyvbU3E3ZOadBVxTH2uAMEMOz4800FA== + dependencies: + "@turf/helpers" "6.x" + +"@turf/clusters-dbscan@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/clusters-dbscan/-/clusters-dbscan-5.1.5.tgz#5781fb4e656c747a0b8e9937df73181c0309e26f" + integrity sha1-V4H7TmVsdHoLjpk333MYHAMJ4m8= + dependencies: + "@turf/clone" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + density-clustering "1.3.0" + +"@turf/clusters-kmeans@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/clusters-kmeans/-/clusters-kmeans-5.1.5.tgz#fd6dfea8b133ba8bdc2370ac3cacee1587a302f1" + integrity sha1-/W3+qLEzuovcI3CsPKzuFYejAvE= + dependencies: + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + skmeans "0.9.7" + +"@turf/clusters@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/clusters/-/clusters-5.1.5.tgz#673a5e5f1b19c9cababc57c908eeadd682224dd4" + integrity sha1-ZzpeXxsZycq6vFfJCO6t1oIiTdQ= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/collect@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/collect/-/collect-5.1.5.tgz#fe98c9a8c218ecf24ffc33d7029517b7c19b2a3e" + integrity sha1-/pjJqMIY7PJP/DPXApUXt8GbKj4= + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/helpers" "^5.1.5" + rbush "^2.0.1" + +"@turf/combine@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/combine/-/combine-5.1.5.tgz#bb14bdefa55504357195fc1a124cd7d53a8c8905" + integrity sha1-uxS976VVBDVxlfwaEkzX1TqMiQU= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/concave@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/concave/-/concave-5.1.5.tgz#23bbaac387d034b96574a1bd70d059237a9d2110" + integrity sha1-I7uqw4fQNLlldKG9cNBZI3qdIRA= + dependencies: + "@turf/clone" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/tin" "^5.1.5" + topojson-client "3.x" + topojson-server "3.x" + +"@turf/convex@5.1.x", "@turf/convex@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/convex/-/convex-5.1.5.tgz#0df9377dd002216ce9821b07f705e037dae3e01d" + integrity sha1-Dfk3fdACIWzpghsH9wXgN9rj4B0= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + concaveman "*" + +"@turf/destination@5.1.x", "@turf/destination@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/destination/-/destination-5.1.5.tgz#ed35381bdce83bbddcbd07a2e2bce2bddffbcc26" + integrity sha1-7TU4G9zoO73cvQei4rzivd/7zCY= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/difference@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/difference/-/difference-5.1.5.tgz#a24d690a7bca803f1090a9ee3b9d906fc4371f42" + integrity sha1-ok1pCnvKgD8QkKnuO52Qb8Q3H0I= + dependencies: + "@turf/area" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + turf-jsts "*" + +"@turf/dissolve@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/dissolve/-/dissolve-5.1.5.tgz#2cf133a9021d2163831c3d7a958d6507f9d81938" + integrity sha1-LPEzqQIdIWODHD16lY1lB/nYGTg= + dependencies: + "@turf/boolean-overlap" "^5.1.5" + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-intersect" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/union" "^5.1.5" + geojson-rbush "2.1.0" + get-closest "*" + +"@turf/distance@5.1.x", "@turf/distance@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/distance/-/distance-5.1.5.tgz#39cf18204bbf87587d707e609a60118909156409" + integrity sha1-Oc8YIEu/h1h9cH5gmmARiQkVZAk= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/distance@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/distance/-/distance-6.0.1.tgz#0761f28784286e7865a427c4e7e3593569c2dea8" + integrity sha512-q7t7rWIWfkg7MP1Vt4uLjSEhe5rPfCO2JjpKmk7JC+QZKEQkuvHEqy3ejW1iC7Kw5ZcZNR3qdMGGz+6HnVwqvg== + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/ellipse@5.1.x", "@turf/ellipse@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/ellipse/-/ellipse-5.1.5.tgz#d57cab853985920cde60228a78d80458025c54be" + integrity sha1-1XyrhTmFkgzeYCKKeNgEWAJcVL4= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/rhumb-destination" "^5.1.5" + "@turf/transform-rotate" "^5.1.5" + +"@turf/envelope@5.1.x", "@turf/envelope@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/envelope/-/envelope-5.1.5.tgz#5013309c53fdd43dfaf4b588a65c3fed7dbc108a" + integrity sha1-UBMwnFP91D369LWIplw/7X28EIo= + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/bbox-polygon" "^5.1.5" + "@turf/helpers" "^5.1.5" + +"@turf/explode@5.1.x", "@turf/explode@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/explode/-/explode-5.1.5.tgz#b12b2f774004a1b48f62ba95b20a1c655a3de118" + integrity sha1-sSsvd0AEobSPYrqVsgocZVo94Rg= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/flatten@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/flatten/-/flatten-5.1.5.tgz#da2927067133ed6169b0b9d607b9215688aa1358" + integrity sha1-2iknBnEz7WFpsLnWB7khVoiqE1g= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/flip@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/flip/-/flip-5.1.5.tgz#436f643a722f0ca53b9fce638e4693db3608a68a" + integrity sha1-Q29kOnIvDKU7n85jjkaT2zYIpoo= + dependencies: + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/great-circle@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/great-circle/-/great-circle-5.1.5.tgz#debfb671ce475509cb637301c15fcfccfa359a93" + integrity sha1-3r+2cc5HVQnLY3MBwV/PzPo1mpM= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/helpers@*", "@turf/helpers@6.x": + version "6.1.4" + resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-6.1.4.tgz#d6fd7ebe6782dd9c87dca5559bda5c48ae4c3836" + integrity sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g== + +"@turf/helpers@5.1.x", "@turf/helpers@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-5.1.5.tgz#153405227ab933d004a5bb9641a9ed999fcbe0cf" + integrity sha1-FTQFInq5M9AEpbuWQantmZ/L4M8= + +"@turf/hex-grid@5.1.x", "@turf/hex-grid@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/hex-grid/-/hex-grid-5.1.5.tgz#9b7ba5fecf5051f1e85892f713fce5c550502a6a" + integrity sha1-m3ul/s9QUfHoWJL3E/zlxVBQKmo= + dependencies: + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/intersect" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/interpolate@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/interpolate/-/interpolate-5.1.5.tgz#0f12f0ab756d6dd10afb290ca6e877bdef013eaa" + integrity sha1-DxLwq3VtbdEK+ykMpuh3ve8BPqo= + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/centroid" "^5.1.5" + "@turf/clone" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/hex-grid" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/point-grid" "^5.1.5" + "@turf/square-grid" "^5.1.5" + "@turf/triangle-grid" "^5.1.5" + +"@turf/intersect@5.1.x", "@turf/intersect@^5.1.5": + version "5.1.6" + resolved "https://registry.yarnpkg.com/@turf/intersect/-/intersect-5.1.6.tgz#13ffcceb7a529c2a7e5d6681ab3ba671f868e95f" + integrity sha512-KXyNv/GXdoGAOy03qZF53rgtXC2tNhF/4jLwTKiVRrBQH6kcEpipGStdJ+QkYIlarQPa8f7I9UlVAB19et4MfQ== + dependencies: + "@turf/clean-coords" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/truncate" "^5.1.5" + turf-jsts "*" + +"@turf/invariant@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-5.1.5.tgz#f59f4fefa09224b15dce1651f903c868d57a24e1" + integrity sha1-9Z9P76CSJLFdzhZR+QPIaNV6JOE= + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/invariant@6.x": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-6.1.2.tgz#6013ed6219f9ac2edada9b31e1dfa5918eb0a2f7" + integrity sha512-WU08Ph8j0J2jVGlQCKChXoCtI50BB3yEH21V++V0T4cR1T27HKCxkehV2sYMwTierfMBgjwSwDIsxnR4/2mWXg== + dependencies: + "@turf/helpers" "6.x" + +"@turf/invariant@^5.1.5": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-5.2.0.tgz#f0150ff7290b38577b73d088b7932c1ee0aa90a7" + integrity sha1-8BUP9ykLOFd7c9CIt5MsHuCqkKc= + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/isobands@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/isobands/-/isobands-5.1.5.tgz#6b44cef584d551a31304187af23b4a1582e3f08d" + integrity sha1-a0TO9YTVUaMTBBh68jtKFYLj8I0= + dependencies: + "@turf/area" "^5.1.5" + "@turf/bbox" "^5.1.5" + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/explode" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/isolines@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/isolines/-/isolines-5.1.5.tgz#8ab4e7f42bb3dfc54614e5bf155967f7e55d2de1" + integrity sha1-irTn9Cuz38VGFOW/FVln9+VdLeE= + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/kinks@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/kinks/-/kinks-5.1.5.tgz#8abb6961d9bb0107213baddf2c2c2640d0256980" + integrity sha1-irtpYdm7AQchO63fLCwmQNAlaYA= + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/length@5.1.x", "@turf/length@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/length/-/length-5.1.5.tgz#f3a5f864c2b996a8bb471794535a1faf12eebefb" + integrity sha1-86X4ZMK5lqi7RxeUU1ofrxLuvvs= + dependencies: + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/line-arc@5.1.x", "@turf/line-arc@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-arc/-/line-arc-5.1.5.tgz#0078a7447835a12ae414a211f9a64d1186150e15" + integrity sha1-AHinRHg1oSrkFKIR+aZNEYYVDhU= + dependencies: + "@turf/circle" "^5.1.5" + "@turf/destination" "^5.1.5" + "@turf/helpers" "^5.1.5" + +"@turf/line-chunk@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-chunk/-/line-chunk-5.1.5.tgz#910a85c05c06d9d0f9c38977a05e0818d5085c42" + integrity sha1-kQqFwFwG2dD5w4l3oF4IGNUIXEI= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/length" "^5.1.5" + "@turf/line-slice-along" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/line-intersect@5.1.x", "@turf/line-intersect@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-intersect/-/line-intersect-5.1.5.tgz#0e29071ae403295e491723bc49f5cfac8d11ddf3" + integrity sha1-DikHGuQDKV5JFyO8SfXPrI0R3fM= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-segment" "^5.1.5" + "@turf/meta" "^5.1.5" + geojson-rbush "2.1.0" + +"@turf/line-offset@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-offset/-/line-offset-5.1.5.tgz#2ab5b2f089f8c913e231d994378e79dca90b5a1e" + integrity sha1-KrWy8In4yRPiMdmUN4553KkLWh4= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/line-overlap@5.1.x", "@turf/line-overlap@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-overlap/-/line-overlap-5.1.5.tgz#943c6f87a0386dc43dfac11d2b3ff9c112cd3f60" + integrity sha1-lDxvh6A4bcQ9+sEdKz/5wRLNP2A= + dependencies: + "@turf/boolean-point-on-line" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-segment" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/nearest-point-on-line" "^5.1.5" + geojson-rbush "2.1.0" + +"@turf/line-segment@5.1.x", "@turf/line-segment@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-segment/-/line-segment-5.1.5.tgz#3207aaee546ab24c3d8dc3cc63f91c770b8013e5" + integrity sha1-Mgeq7lRqskw9jcPMY/kcdwuAE+U= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/line-slice-along@5.1.x", "@turf/line-slice-along@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-slice-along/-/line-slice-along-5.1.5.tgz#eddad0a21ef479f2968a11bd2dd7289a2132e9a5" + integrity sha1-7drQoh70efKWihG9LdcomiEy6aU= + dependencies: + "@turf/bearing" "^5.1.5" + "@turf/destination" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + +"@turf/line-slice@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-slice/-/line-slice-5.1.5.tgz#1ecfce1462a378579754cedf4464cde26829f2b5" + integrity sha1-Hs/OFGKjeFeXVM7fRGTN4mgp8rU= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/nearest-point-on-line" "^5.1.5" + +"@turf/line-split@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-split/-/line-split-5.1.5.tgz#5b2df4c37619b72ef725b5163cf9926d5540acb7" + integrity sha1-Wy30w3YZty73JbUWPPmSbVVArLc= + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-intersect" "^5.1.5" + "@turf/line-segment" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/nearest-point-on-line" "^5.1.5" + "@turf/square" "^5.1.5" + "@turf/truncate" "^5.1.5" + geojson-rbush "2.1.0" + +"@turf/line-to-polygon@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-to-polygon/-/line-to-polygon-5.1.5.tgz#213cf41a68f8224778ba39d3187dec3e8b81865a" + integrity sha1-ITz0Gmj4Ikd4ujnTGH3sPouBhlo= + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/mask@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/mask/-/mask-5.1.5.tgz#9ab0fef1a272c98fe3ef492f9ffb618206b242d5" + integrity sha1-mrD+8aJyyY/j70kvn/thggayQtU= + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/union" "^5.1.5" + rbush "^2.0.1" + +"@turf/meta@*", "@turf/meta@6.x": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-6.0.2.tgz#eb92951126d24a613ac1b7b99d733fcc20fd30cf" + integrity sha512-VA7HJkx7qF1l3+GNGkDVn2oXy4+QoLP6LktXAaZKjuT1JI0YESat7quUkbCMy4zP9lAUuvS4YMslLyTtr919FA== + dependencies: + "@turf/helpers" "6.x" + +"@turf/meta@5.1.x": + version "5.1.6" + resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-5.1.6.tgz#c20a863eded0869fb28548dee889341bccb46a46" + integrity sha1-wgqGPt7Qhp+yhUje6Ik0G8y0akY= + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/meta@^5.1.5": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-5.2.0.tgz#3b1ad485ee0c3b0b1775132a32c384d53e4ba53d" + integrity sha1-OxrUhe4MOwsXdRMqMsOE1T5LpT0= + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/midpoint@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/midpoint/-/midpoint-5.1.5.tgz#e261f6b2b0ea8124cceff552a262dd465c9d05f0" + integrity sha1-4mH2srDqgSTM7/VSomLdRlydBfA= + dependencies: + "@turf/bearing" "^5.1.5" + "@turf/destination" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + +"@turf/nearest-point-on-line@5.1.x", "@turf/nearest-point-on-line@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/nearest-point-on-line/-/nearest-point-on-line-5.1.5.tgz#5606ae297f15947524bea51a2a9ef51ec1bf9c36" + integrity sha1-VgauKX8VlHUkvqUaKp71HsG/nDY= + dependencies: + "@turf/bearing" "^5.1.5" + "@turf/destination" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-intersect" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/nearest-point-to-line@5.1.x": + version "5.1.6" + resolved "https://registry.yarnpkg.com/@turf/nearest-point-to-line/-/nearest-point-to-line-5.1.6.tgz#d30b7606e56a3dce97f4db6d45d352470e0b3f88" + integrity sha512-ZSvDIEiHhifn/vNwLXZI/E8xmEz5yBPqfUR7BVHRZrB1cP7jLhKZvkbidjG//uW8Fr1Ulc+PFOXczLspIcx/lw== + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + "@turf/meta" "6.x" + "@turf/point-to-line-distance" "^5.1.5" + object-assign "*" + +"@turf/nearest-point@5.1.x", "@turf/nearest-point@^5.1.5": version "5.1.5" - resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-5.1.5.tgz#153405227ab933d004a5bb9641a9ed999fcbe0cf" - integrity sha1-FTQFInq5M9AEpbuWQantmZ/L4M8= + resolved "https://registry.yarnpkg.com/@turf/nearest-point/-/nearest-point-5.1.5.tgz#12050de41c398443224c7978de0f6213900d34fb" + integrity sha1-EgUN5Bw5hEMiTHl43g9iE5ANNPs= + dependencies: + "@turf/clone" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" -"@turf/invariant@^5.1.5": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-5.2.0.tgz#f0150ff7290b38577b73d088b7932c1ee0aa90a7" - integrity sha1-8BUP9ykLOFd7c9CIt5MsHuCqkKc= +"@turf/planepoint@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/planepoint/-/planepoint-5.1.5.tgz#18bbdf006f759def5e42c6a006c9f9de81b2b7ff" + integrity sha1-GLvfAG91ne9eQsagBsn53oGyt/8= dependencies: "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" -"@turf/meta@^5.1.5": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-5.2.0.tgz#3b1ad485ee0c3b0b1775132a32c384d53e4ba53d" - integrity sha1-OxrUhe4MOwsXdRMqMsOE1T5LpT0= +"@turf/point-grid@5.1.x", "@turf/point-grid@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/point-grid/-/point-grid-5.1.5.tgz#305141248f50bafe36ce7e66ba4b97e7ab236887" + integrity sha1-MFFBJI9Quv42zn5mukuX56sjaIc= dependencies: + "@turf/boolean-within" "^5.1.5" + "@turf/distance" "^5.1.5" "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" -"@turf/points-within-polygon@^5.1.5": +"@turf/point-on-feature@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/point-on-feature/-/point-on-feature-5.1.5.tgz#30c7f032430277c6418d96d289e45b6bfb213fe7" + integrity sha1-MMfwMkMCd8ZBjZbSieRba/shP+c= + dependencies: + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/center" "^5.1.5" + "@turf/explode" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/nearest-point" "^5.1.5" + +"@turf/point-to-line-distance@5.1.x", "@turf/point-to-line-distance@^5.1.5": + version "5.1.6" + resolved "https://registry.yarnpkg.com/@turf/point-to-line-distance/-/point-to-line-distance-5.1.6.tgz#954f6cb68546420a030d8480392503264970d2d8" + integrity sha512-PE3hiTeeDEi4ZLPtI8XAzFYW9nHo1EVsZGm/4ZVV8jo39d3X1oLVHxY3e1PkCmWwRapXy4QLqvnTQ7nU4wspNw== + dependencies: + "@turf/bearing" "6.x" + "@turf/distance" "6.x" + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + "@turf/meta" "6.x" + "@turf/projection" "6.x" + "@turf/rhumb-bearing" "6.x" + "@turf/rhumb-distance" "6.x" + +"@turf/points-within-polygon@5.1.x", "@turf/points-within-polygon@^5.1.5": version "5.1.5" resolved "https://registry.yarnpkg.com/@turf/points-within-polygon/-/points-within-polygon-5.1.5.tgz#2b855a5df3aada57c2ee820a0754ab94928a2337" integrity sha1-K4VaXfOq2lfC7oIKB1SrlJKKIzc= @@ -1544,6 +2279,402 @@ "@turf/helpers" "^5.1.5" "@turf/meta" "^5.1.5" +"@turf/polygon-tangents@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/polygon-tangents/-/polygon-tangents-5.1.5.tgz#2bf00991473025b178e250dc7cb9ae5409bbd652" + integrity sha1-K/AJkUcwJbF44lDcfLmuVAm71lI= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/polygon-to-line@5.1.x", "@turf/polygon-to-line@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/polygon-to-line/-/polygon-to-line-5.1.5.tgz#23bb448d84dc4c651999ac611a36d91c5925036a" + integrity sha1-I7tEjYTcTGUZmaxhGjbZHFklA2o= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/polygonize@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/polygonize/-/polygonize-5.1.5.tgz#0493fa11879f39d10b9ad02ce6a23e942d08aa32" + integrity sha1-BJP6EYefOdELmtAs5qI+lC0IqjI= + dependencies: + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/envelope" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/projection@5.1.x", "@turf/projection@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/projection/-/projection-5.1.5.tgz#24517eeeb2f36816ba9f712e7ae6d6a368edf757" + integrity sha1-JFF+7rLzaBa6n3EueubWo2jt91c= + dependencies: + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/projection@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/projection/-/projection-6.0.1.tgz#bde70ae8441b9cefddf26d71c7db74bc3d9792b1" + integrity sha512-Y3RvGT6I53MjYKLG69e9sMk45wJXcLbrEO1t6P3WQQQGqA2gYhhMJyV41vE2Z2llrJpvs2dDx/tIeQzGd0HHMQ== + dependencies: + "@turf/clone" "6.x" + "@turf/helpers" "6.x" + "@turf/meta" "6.x" + +"@turf/random@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/random/-/random-5.1.5.tgz#b32efc934560ae8ba57e8ebb51f241c39fba2e7b" + integrity sha1-sy78k0Vgroulfo67UfJBw5+6Lns= + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/rewind@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/rewind/-/rewind-5.1.5.tgz#9ea3db4a68b73c1fd1dd11f57631b143cfefa1c9" + integrity sha1-nqPbSmi3PB/R3RH1djGxQ8/vock= + dependencies: + "@turf/boolean-clockwise" "^5.1.5" + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/rhumb-bearing@5.1.x", "@turf/rhumb-bearing@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/rhumb-bearing/-/rhumb-bearing-5.1.5.tgz#acf6a502427eb8c49e18cda6ae0effab0c5ddcd2" + integrity sha1-rPalAkJ+uMSeGM2mrg7/qwxd3NI= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/rhumb-bearing@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/rhumb-bearing/-/rhumb-bearing-6.0.1.tgz#182c4c21fe951e097fb468ae128dc22ef6078f3f" + integrity sha512-MVBra8OVfjM4+/N0B3o6cBIYg9p/uRKzA9uk05RfrzasEbUL1vdD23LkTooVL74Yw4UxL8BQD9hS5Re2COJFDA== + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/rhumb-destination@5.1.x", "@turf/rhumb-destination@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/rhumb-destination/-/rhumb-destination-5.1.5.tgz#b1b2aeb921547f2ac0c1a994b6a130f92463c742" + integrity sha1-sbKuuSFUfyrAwamUtqEw+SRjx0I= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/rhumb-distance@5.1.x", "@turf/rhumb-distance@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/rhumb-distance/-/rhumb-distance-5.1.5.tgz#1806857625f4225384dad413e69f39538ff5f765" + integrity sha1-GAaFdiX0IlOE2tQT5p85U4/192U= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/rhumb-distance@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/rhumb-distance/-/rhumb-distance-6.0.1.tgz#ae1c5c823b4b04f75cd7fc240f7f93647db8bdd4" + integrity sha512-3G45DQtQByzzfHFPcCyJdUZFwsd45zfZ7sAb1ddF7mhEj4G70+T2G3GKjInymqDNrbyh2gbG6wQiZSToC8Uf9g== + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/sample@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/sample/-/sample-5.1.5.tgz#e9cb448a4789cc56ee3de2dd6781e2343435b411" + integrity sha1-6ctEikeJzFbuPeLdZ4HiNDQ1tBE= + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/sector@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/sector/-/sector-5.1.5.tgz#ac2bb94c13edd6034f6fdc2b67008135d20f5e07" + integrity sha1-rCu5TBPt1gNPb9wrZwCBNdIPXgc= + dependencies: + "@turf/circle" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-arc" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/shortest-path@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/shortest-path/-/shortest-path-5.1.5.tgz#854ae8096f6bc3e1300faca77f3e8f67d8f935ab" + integrity sha1-hUroCW9rw+EwD6ynfz6PZ9j5Nas= + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/bbox-polygon" "^5.1.5" + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/clean-coords" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/transform-scale" "^5.1.5" + +"@turf/simplify@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/simplify/-/simplify-5.1.5.tgz#0ac8f27a2eb4218183edd9998c3275abe408b926" + integrity sha1-Csjyei60IYGD7dmZjDJ1q+QIuSY= + dependencies: + "@turf/clean-coords" "^5.1.5" + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/square-grid@5.1.x", "@turf/square-grid@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/square-grid/-/square-grid-5.1.5.tgz#1bd5f7b9eb14f0b60bc231fefe7351d1a32f1a51" + integrity sha1-G9X3uesU8LYLwjH+/nNR0aMvGlE= + dependencies: + "@turf/boolean-contains" "^5.1.5" + "@turf/boolean-overlap" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/intersect" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/square@5.1.x", "@turf/square@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/square/-/square-5.1.5.tgz#aa7b21e6033cc9252c3a5bd6f3d88dabd6fed180" + integrity sha1-qnsh5gM8ySUsOlvW89iNq9b+0YA= + dependencies: + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + +"@turf/standard-deviational-ellipse@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-5.1.5.tgz#85cd283b5e1aca58f21bd66412e414b56d852324" + integrity sha1-hc0oO14ayljyG9ZkEuQUtW2FIyQ= + dependencies: + "@turf/center-mean" "^5.1.5" + "@turf/ellipse" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/points-within-polygon" "^5.1.5" + +"@turf/tag@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/tag/-/tag-5.1.5.tgz#d1ee1a5088ecfd4a1411019c98239ccf2a497d20" + integrity sha1-0e4aUIjs/UoUEQGcmCOczypJfSA= + dependencies: + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/tesselate@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/tesselate/-/tesselate-5.1.5.tgz#32a594e9c21a00420a9f90d2c43df3e1166061cd" + integrity sha1-MqWU6cIaAEIKn5DSxD3z4RZgYc0= + dependencies: + "@turf/helpers" "^5.1.5" + earcut "^2.0.0" + +"@turf/tin@5.1.x", "@turf/tin@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/tin/-/tin-5.1.5.tgz#28223eafc5fbe9ae9acca81cdcfea5d1424c917d" + integrity sha1-KCI+r8X76a6azKgc3P6l0UJMkX0= + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/transform-rotate@5.1.x", "@turf/transform-rotate@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/transform-rotate/-/transform-rotate-5.1.5.tgz#d096edd9e300fe315069d54d8e458c409221edfb" + integrity sha1-0Jbt2eMA/jFQadVNjkWMQJIh7fs= + dependencies: + "@turf/centroid" "^5.1.5" + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/rhumb-bearing" "^5.1.5" + "@turf/rhumb-destination" "^5.1.5" + "@turf/rhumb-distance" "^5.1.5" + +"@turf/transform-scale@5.1.x", "@turf/transform-scale@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/transform-scale/-/transform-scale-5.1.5.tgz#70fd3ae01856cf7bae9f15ad561cdfe8f89001b9" + integrity sha1-cP064BhWz3uunxWtVhzf6PiQAbk= + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/center" "^5.1.5" + "@turf/centroid" "^5.1.5" + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/rhumb-bearing" "^5.1.5" + "@turf/rhumb-destination" "^5.1.5" + "@turf/rhumb-distance" "^5.1.5" + +"@turf/transform-translate@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/transform-translate/-/transform-translate-5.1.5.tgz#530a257fb1dc7268dadcab34e67901eb2a3dec63" + integrity sha1-Uwolf7Hccmja3Ks05nkB6yo97GM= + dependencies: + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/rhumb-destination" "^5.1.5" + +"@turf/triangle-grid@5.1.x", "@turf/triangle-grid@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/triangle-grid/-/triangle-grid-5.1.5.tgz#7b36762108554c14f28caff3c48b1cfc82c8dc81" + integrity sha1-ezZ2IQhVTBTyjK/zxIsc/ILI3IE= + dependencies: + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/intersect" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/truncate@5.1.x", "@turf/truncate@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/truncate/-/truncate-5.1.5.tgz#9eedfb3b18ba81f2c98d3ead09431cca1884ad89" + integrity sha1-nu37Oxi6gfLJjT6tCUMcyhiErYk= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/turf@^5.1.6": + version "5.1.6" + resolved "https://registry.yarnpkg.com/@turf/turf/-/turf-5.1.6.tgz#c3122592887ed234b75468b8a8c45bf886fbf8f6" + integrity sha1-wxIlkoh+0jS3VGi4qMRb+Ib7+PY= + dependencies: + "@turf/along" "5.1.x" + "@turf/area" "5.1.x" + "@turf/bbox" "5.1.x" + "@turf/bbox-clip" "5.1.x" + "@turf/bbox-polygon" "5.1.x" + "@turf/bearing" "5.1.x" + "@turf/bezier-spline" "5.1.x" + "@turf/boolean-clockwise" "5.1.x" + "@turf/boolean-contains" "5.1.x" + "@turf/boolean-crosses" "5.1.x" + "@turf/boolean-disjoint" "5.1.x" + "@turf/boolean-equal" "5.1.x" + "@turf/boolean-overlap" "5.1.x" + "@turf/boolean-parallel" "5.1.x" + "@turf/boolean-point-in-polygon" "5.1.x" + "@turf/boolean-point-on-line" "5.1.x" + "@turf/boolean-within" "5.1.x" + "@turf/buffer" "5.1.x" + "@turf/center" "5.1.x" + "@turf/center-mean" "5.1.x" + "@turf/center-median" "5.1.x" + "@turf/center-of-mass" "5.1.x" + "@turf/centroid" "5.1.x" + "@turf/circle" "5.1.x" + "@turf/clean-coords" "5.1.x" + "@turf/clone" "5.1.x" + "@turf/clusters" "5.1.x" + "@turf/clusters-dbscan" "5.1.x" + "@turf/clusters-kmeans" "5.1.x" + "@turf/collect" "5.1.x" + "@turf/combine" "5.1.x" + "@turf/concave" "5.1.x" + "@turf/convex" "5.1.x" + "@turf/destination" "5.1.x" + "@turf/difference" "5.1.x" + "@turf/dissolve" "5.1.x" + "@turf/distance" "5.1.x" + "@turf/ellipse" "5.1.x" + "@turf/envelope" "5.1.x" + "@turf/explode" "5.1.x" + "@turf/flatten" "5.1.x" + "@turf/flip" "5.1.x" + "@turf/great-circle" "5.1.x" + "@turf/helpers" "5.1.x" + "@turf/hex-grid" "5.1.x" + "@turf/interpolate" "5.1.x" + "@turf/intersect" "5.1.x" + "@turf/invariant" "5.1.x" + "@turf/isobands" "5.1.x" + "@turf/isolines" "5.1.x" + "@turf/kinks" "5.1.x" + "@turf/length" "5.1.x" + "@turf/line-arc" "5.1.x" + "@turf/line-chunk" "5.1.x" + "@turf/line-intersect" "5.1.x" + "@turf/line-offset" "5.1.x" + "@turf/line-overlap" "5.1.x" + "@turf/line-segment" "5.1.x" + "@turf/line-slice" "5.1.x" + "@turf/line-slice-along" "5.1.x" + "@turf/line-split" "5.1.x" + "@turf/line-to-polygon" "5.1.x" + "@turf/mask" "5.1.x" + "@turf/meta" "5.1.x" + "@turf/midpoint" "5.1.x" + "@turf/nearest-point" "5.1.x" + "@turf/nearest-point-on-line" "5.1.x" + "@turf/nearest-point-to-line" "5.1.x" + "@turf/planepoint" "5.1.x" + "@turf/point-grid" "5.1.x" + "@turf/point-on-feature" "5.1.x" + "@turf/point-to-line-distance" "5.1.x" + "@turf/points-within-polygon" "5.1.x" + "@turf/polygon-tangents" "5.1.x" + "@turf/polygon-to-line" "5.1.x" + "@turf/polygonize" "5.1.x" + "@turf/projection" "5.1.x" + "@turf/random" "5.1.x" + "@turf/rewind" "5.1.x" + "@turf/rhumb-bearing" "5.1.x" + "@turf/rhumb-destination" "5.1.x" + "@turf/rhumb-distance" "5.1.x" + "@turf/sample" "5.1.x" + "@turf/sector" "5.1.x" + "@turf/shortest-path" "5.1.x" + "@turf/simplify" "5.1.x" + "@turf/square" "5.1.x" + "@turf/square-grid" "5.1.x" + "@turf/standard-deviational-ellipse" "5.1.x" + "@turf/tag" "5.1.x" + "@turf/tesselate" "5.1.x" + "@turf/tin" "5.1.x" + "@turf/transform-rotate" "5.1.x" + "@turf/transform-scale" "5.1.x" + "@turf/transform-translate" "5.1.x" + "@turf/triangle-grid" "5.1.x" + "@turf/truncate" "5.1.x" + "@turf/union" "5.1.x" + "@turf/unkink-polygon" "5.1.x" + "@turf/voronoi" "5.1.x" + +"@turf/union@5.1.x", "@turf/union@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/union/-/union-5.1.5.tgz#53285b6094047fc58d96aac0ea90865ec34d454b" + integrity sha1-UyhbYJQEf8WNlqrA6pCGXsNNRUs= + dependencies: + "@turf/helpers" "^5.1.5" + turf-jsts "*" + +"@turf/unkink-polygon@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/unkink-polygon/-/unkink-polygon-5.1.5.tgz#7b01847c50fb574ae2579e19e44cba8526d213c3" + integrity sha1-ewGEfFD7V0riV54Z5Ey6hSbSE8M= + dependencies: + "@turf/area" "^5.1.5" + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + rbush "^2.0.1" + +"@turf/voronoi@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/voronoi/-/voronoi-5.1.5.tgz#e856e9406dcc2f25d66ddc898584e27c2ebfca66" + integrity sha1-6FbpQG3MLyXWbdyJhYTifC6/ymY= + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + d3-voronoi "1.1.2" + "@types/babel__core@^7.1.0": version "7.1.3" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.3.tgz#e441ea7df63cd080dfcd02ab199e6d16a735fc30" @@ -3085,16 +4216,16 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +commander@2, commander@^2.11.0, commander@^2.16.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commander@2.17.x, commander@~2.17.1: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== -commander@^2.11.0, commander@^2.16.0, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - commander@~2.14.1: version "2.14.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" @@ -3162,6 +4293,17 @@ concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" +concaveman@*: + version "1.1.1" + resolved "https://registry.yarnpkg.com/concaveman/-/concaveman-1.1.1.tgz#6c2482580b2523cef82fc2bec00a0415e6e68162" + integrity sha1-bCSCWAslI874L8K+wAoEFebmgWI= + dependencies: + monotone-convex-hull-2d "^1.0.1" + point-in-polygon "^1.0.1" + rbush "^2.0.1" + robust-orientation "^1.1.3" + tinyqueue "^1.1.0" + confusing-browser-globals@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd" @@ -3600,6 +4742,23 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= +d3-array@1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" + integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== + +d3-geo@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.7.1.tgz#44bbc7a218b1fd859f3d8fd7c443ca836569ce99" + integrity sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw== + dependencies: + d3-array "1" + +d3-voronoi@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.2.tgz#1687667e8f13a2d158c80c1480c5a29cb0d8973c" + integrity sha1-Fodmfo8TotFYyAwUgMWinLDYlzw= + d@1, d@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" @@ -3665,7 +4824,7 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -deep-equal@^1.0.1: +deep-equal@^1.0.0, deep-equal@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== @@ -3737,6 +4896,11 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= +density-clustering@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/density-clustering/-/density-clustering-1.3.0.tgz#dc9f59c8f0ab97e1624ac64930fd3194817dcac5" + integrity sha1-3J9ZyPCrl+FiSsZJMP0xlIF9ysU= + depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -3949,6 +5113,11 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +earcut@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.2.tgz#41b0bc35f63e0fe80da7cddff28511e7e2e80d11" + integrity sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -4868,6 +6037,22 @@ gensync@^1.0.0-beta.1: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== +geojson-equality@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/geojson-equality/-/geojson-equality-0.1.6.tgz#a171374ef043e5d4797995840bae4648e0752d72" + integrity sha1-oXE3TvBD5dR5eZWEC65GSOB1LXI= + dependencies: + deep-equal "^1.0.0" + +geojson-rbush@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/geojson-rbush/-/geojson-rbush-2.1.0.tgz#3bd73be391fc10b0ae693d9b8acea2aae0b83a8d" + integrity sha1-O9c745H8ELCuaT2bis6iquC4Oo0= + dependencies: + "@turf/helpers" "*" + "@turf/meta" "*" + rbush "*" + geojson-utils@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/geojson-utils/-/geojson-utils-1.1.0.tgz#e8ffb4c81c0a75b3e306f5187265d6f23040f50b" @@ -4883,6 +6068,11 @@ get-caller-file@^2.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-closest@*: + version "0.0.4" + resolved "https://registry.yarnpkg.com/get-closest/-/get-closest-0.0.4.tgz#269ac776d1e6022aa0fd586dd708e8a7d32269af" + integrity sha1-JprHdtHmAiqg/Vht1wjop9Miaa8= + get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" @@ -6606,6 +7796,11 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +lineclip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/lineclip/-/lineclip-1.1.5.tgz#2bf26067d94354feabf91e42768236db5616fd13" + integrity sha1-K/JgZ9lDVP6r+R5CdoI221YW/RM= + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -7032,6 +8227,13 @@ mkdirp@0.5.1, mkdirp@^0.5.1, mkdirp@~0.5.1: dependencies: minimist "0.0.8" +monotone-convex-hull-2d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/monotone-convex-hull-2d/-/monotone-convex-hull-2d-1.0.1.tgz#47f5daeadf3c4afd37764baa1aa8787a40eee08c" + integrity sha1-R/Xa6t88Sv03dkuqGqh4ekDu4Iw= + dependencies: + robust-orientation "^1.1.3" + move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -7279,7 +8481,7 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@*, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -7828,6 +9030,11 @@ pnp-webpack-plugin@1.5.0: dependencies: ts-pnp "^1.1.2" +point-in-polygon@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/point-in-polygon/-/point-in-polygon-1.0.1.tgz#d59b64e8fee41c49458aac82b56718c5957b2af7" + integrity sha1-1Ztk6P7kHElFiqyCtWcYxZV7Kvc= + popper.js@^1.14.1: version "1.16.1" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" @@ -8704,6 +9911,16 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== +quickselect@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-1.1.1.tgz#852e412ce418f237ad5b660d70cffac647ae94c2" + integrity sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ== + +quickselect@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-2.0.0.tgz#f19680a486a5eefb581303e023e98faaf25dd018" + integrity sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw== + raf@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" @@ -8741,6 +9958,20 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" +rbush@*: + version "3.0.1" + resolved "https://registry.yarnpkg.com/rbush/-/rbush-3.0.1.tgz#5fafa8a79b3b9afdfe5008403a720cc1de882ecf" + integrity sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w== + dependencies: + quickselect "^2.0.0" + +rbush@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/rbush/-/rbush-2.0.2.tgz#bb6005c2731b7ba1d5a9a035772927d16a614605" + integrity sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA== + dependencies: + quickselect "^1.0.1" + react-app-polyfill@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-1.0.5.tgz#59c7377a0b9ed25692eeaca7ad9b12ef2d064709" @@ -9327,6 +10558,34 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +robust-orientation@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/robust-orientation/-/robust-orientation-1.1.3.tgz#daff5b00d3be4e60722f0e9c0156ef967f1c2049" + integrity sha1-2v9bANO+TmByLw6cAVbvln8cIEk= + dependencies: + robust-scale "^1.0.2" + robust-subtract "^1.0.0" + robust-sum "^1.0.0" + two-product "^1.0.2" + +robust-scale@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/robust-scale/-/robust-scale-1.0.2.tgz#775132ed09542d028e58b2cc79c06290bcf78c32" + integrity sha1-d1Ey7QlULQKOWLLMecBikLz3jDI= + dependencies: + two-product "^1.0.2" + two-sum "^1.0.0" + +robust-subtract@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/robust-subtract/-/robust-subtract-1.0.0.tgz#e0b164e1ed8ba4e3a5dda45a12038348dbed3e9a" + integrity sha1-4LFk4e2LpOOl3aRaEgODSNvtPpo= + +robust-sum@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/robust-sum/-/robust-sum-1.0.0.tgz#16646e525292b4d25d82757a286955e0bbfa53d9" + integrity sha1-FmRuUlKStNJdgnV6KGlV4Lv6U9k= + rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" @@ -9616,6 +10875,11 @@ sisteransi@^1.0.3: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.4.tgz#386713f1ef688c7c0304dc4c0632898941cad2e3" integrity sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig== +skmeans@0.9.7: + version "0.9.7" + resolved "https://registry.yarnpkg.com/skmeans/-/skmeans-0.9.7.tgz#72670cebb728508f56e29c0e10d11e623529ce5d" + integrity sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg== + slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -10225,6 +11489,11 @@ tiny-warning@^1.0.2: resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== +tinyqueue@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/tinyqueue/-/tinyqueue-1.2.3.tgz#b6a61de23060584da29f82362e45df1ec7353f3d" + integrity sha512-Qz9RgWuO9l8lT+Y9xvbzhPT2efIUIFd69N7eF7tJ9lnQl0iLj1M7peK7IoUGZL9DJHw9XftqLreccfxcQgYLxA== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -10277,6 +11546,20 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +topojson-client@3.x: + version "3.1.0" + resolved "https://registry.yarnpkg.com/topojson-client/-/topojson-client-3.1.0.tgz#22e8b1ed08a2b922feeb4af6f53b6ef09a467b99" + integrity sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw== + dependencies: + commander "2" + +topojson-server@3.x: + version "3.0.1" + resolved "https://registry.yarnpkg.com/topojson-server/-/topojson-server-3.0.1.tgz#d2b3ec095b6732299be76a48406111b3201a34f5" + integrity sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw== + dependencies: + commander "2" + tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" @@ -10329,11 +11612,26 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" +turf-jsts@*: + version "1.2.3" + resolved "https://registry.yarnpkg.com/turf-jsts/-/turf-jsts-1.2.3.tgz#59757f542afbff9a577bbf411f183b8f48d38aa4" + integrity sha512-Ja03QIJlPuHt4IQ2FfGex4F4JAr8m3jpaHbFbQrgwr7s7L6U8ocrHiF3J1+wf9jzhGKxvDeaCAnGDot8OjGFyA== + tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= +two-product@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/two-product/-/two-product-1.0.2.tgz#67d95d4b257a921e2cb4bd7af9511f9088522eaa" + integrity sha1-Z9ldSyV6kh4stL16+VEfkIhSLqo= + +two-sum@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/two-sum/-/two-sum-1.0.0.tgz#31d3f32239e4f731eca9df9155e2b297f008ab64" + integrity sha1-MdPzIjnk9zHsqd+RVeKyl/AIq2Q= + type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"